aboutsummaryrefslogtreecommitdiff
path: root/src/sp/transport/tcp
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-04-21 12:23:07 -0700
committerGitHub <noreply@github.com>2024-04-21 12:23:07 -0700
commit56507ab5c4db009be5251bde832f594fe5ed3d5e (patch)
treec70e7d669c3548a5c58ab27c0fc6118a96580863 /src/sp/transport/tcp
parent3593eba5272bf627b99a2521b3f025141a49bcad (diff)
downloadnng-56507ab5c4db009be5251bde832f594fe5ed3d5e.tar.gz
nng-56507ab5c4db009be5251bde832f594fe5ed3d5e.tar.bz2
nng-56507ab5c4db009be5251bde832f594fe5ed3d5e.zip
Logging improvements (#1816)
* Add nng_str_sockaddr to get string representation of socket address. * Added nng_log_get_level() is meant to allow users to obtain the current level and avoid some possibly expensive operations just to collect debugging information when debugging is not in effect. We use a custom logger for NUTS, and this fits within the NUTS test framework well, so that if -v is supplied we get more content. All tests now get this by default.
Diffstat (limited to 'src/sp/transport/tcp')
-rw-r--r--src/sp/transport/tcp/tcp.c16
-rw-r--r--src/sp/transport/tcp/tcp_test.c27
2 files changed, 25 insertions, 18 deletions
diff --git a/src/sp/transport/tcp/tcp.c b/src/sp/transport/tcp/tcp.c
index dfc3d20c..5aead15d 100644
--- a/src/sp/transport/tcp/tcp.c
+++ b/src/sp/transport/tcp/tcp.c
@@ -13,6 +13,7 @@
#include <string.h>
#include "core/nng_impl.h"
+#include "nng/nng.h"
// TCP transport. Platform specific TCP operations must be
// supplied as well.
@@ -384,9 +385,20 @@ tcptran_pipe_recv_cb(void *arg)
// Make sure the message payload is not too big. If it is
// the caller will shut down the pipe.
if ((len > p->rcvmax) && (p->rcvmax > 0)) {
+ nng_sockaddr_storage ss;
+ nng_sockaddr *sa = (nng_sockaddr *) &ss;
+ char peername[64] = "unknown";
+ if ((rv = nng_stream_get_addr(
+ p->conn, NNG_OPT_REMADDR, sa)) == 0) {
+ (void) nng_str_sockaddr(
+ sa, peername, sizeof(peername));
+ }
nng_log_warn("NNG-RCVMAX",
- "Rejected oversize message of %lu bytes on TCP",
- (unsigned long) len);
+ "Oversize message of %lu bytes (> %lu) "
+ "on socket<%u> pipe<%u> from TCP %s",
+ (unsigned long) len, (unsigned long) p->rcvmax,
+ nni_pipe_sock_id(p->npipe), nni_pipe_id(p->npipe),
+ peername);
rv = NNG_EMSGSIZE;
goto recv_error;
}
diff --git a/src/sp/transport/tcp/tcp_test.c b/src/sp/transport/tcp/tcp_test.c
index 16c70d7d..005fd2b0 100644
--- a/src/sp/transport/tcp/tcp_test.c
+++ b/src/sp/transport/tcp/tcp_test.c
@@ -1,5 +1,5 @@
//
-// Copyright 2020 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2024 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
// Copyright 2018 Devolutions <info@devolutions.net>
// Copyright 2018 Cody Piersall <cody.piersall@gmail.com>
@@ -10,7 +10,6 @@
// found online at https://opensource.org/licenses/MIT.
//
-
#include <nuts.h>
// TCP tests.
@@ -75,7 +74,7 @@ test_tcp_port_zero_bind(void)
nng_socket s2;
nng_sockaddr sa;
nng_listener l;
- char * addr;
+ char *addr;
NUTS_OPEN(s1);
NUTS_OPEN(s2);
@@ -96,7 +95,7 @@ void
test_tcp_bad_local_interface(void)
{
nng_socket s1;
- int rv;
+ int rv;
NUTS_OPEN(s1);
rv = nng_dial(s1, "tcp://bogus1;127.0.0.1:80", NULL, 0),
@@ -122,12 +121,9 @@ test_tcp_malformed_address(void)
nng_socket s1;
NUTS_OPEN(s1);
- NUTS_FAIL(
- nng_dial(s1, "tcp://127.0.0.1", NULL, 0), NNG_EADDRINVAL);
- NUTS_FAIL(
- nng_dial(s1, "tcp://127.0.0.1.32", NULL, 0), NNG_EADDRINVAL);
- NUTS_FAIL(
- nng_dial(s1, "tcp://127.0.x.1.32", NULL, 0), NNG_EADDRINVAL);
+ NUTS_FAIL(nng_dial(s1, "tcp://127.0.0.1", NULL, 0), NNG_EADDRINVAL);
+ NUTS_FAIL(nng_dial(s1, "tcp://127.0.0.1.32", NULL, 0), NNG_EADDRINVAL);
+ NUTS_FAIL(nng_dial(s1, "tcp://127.0.x.1.32", NULL, 0), NNG_EADDRINVAL);
NUTS_FAIL(
nng_listen(s1, "tcp://127.0.0.1.32", NULL, 0), NNG_EADDRINVAL);
NUTS_FAIL(
@@ -143,7 +139,7 @@ test_tcp_no_delay_option(void)
nng_listener l;
bool v;
int x;
- char *addr;
+ char *addr;
NUTS_ADDR(addr, "tcp");
@@ -161,8 +157,7 @@ test_tcp_no_delay_option(void)
NUTS_FAIL(
nng_dialer_get_int(d, NNG_OPT_TCP_NODELAY, &x), NNG_EBADTYPE);
x = 0;
- NUTS_FAIL(
- nng_dialer_set_int(d, NNG_OPT_TCP_NODELAY, x), NNG_EBADTYPE);
+ NUTS_FAIL(nng_dialer_set_int(d, NNG_OPT_TCP_NODELAY, x), NNG_EBADTYPE);
// This assumes sizeof (bool) != sizeof (int)
if (sizeof(bool) != sizeof(int)) {
NUTS_FAIL(
@@ -205,7 +200,7 @@ test_tcp_keep_alive_option(void)
nng_listener l;
bool v;
int x;
- char *addr;
+ char *addr;
NUTS_ADDR(addr, "tcp");
NUTS_OPEN(s);
@@ -258,7 +253,7 @@ test_tcp_recv_max(void)
nng_socket s1;
nng_listener l;
size_t sz;
- char *addr;
+ char *addr;
NUTS_ADDR(addr, "tcp");
@@ -296,4 +291,4 @@ NUTS_TESTS = {
{ "tcp keep alive option", test_tcp_keep_alive_option },
{ "tcp recv max", test_tcp_recv_max },
{ NULL, NULL },
-}; \ No newline at end of file
+};