aboutsummaryrefslogtreecommitdiff
path: root/src/sp/transport/ipc
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/ipc
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/ipc')
-rw-r--r--src/sp/transport/ipc/ipc.c14
-rw-r--r--src/sp/transport/ipc/ipc_test.c32
2 files changed, 28 insertions, 18 deletions
diff --git a/src/sp/transport/ipc/ipc.c b/src/sp/transport/ipc/ipc.c
index fc817d1a..61c25da3 100644
--- a/src/sp/transport/ipc/ipc.c
+++ b/src/sp/transport/ipc/ipc.c
@@ -382,9 +382,19 @@ ipc_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->rcv_max) && (p->rcv_max > 0)) {
+ uint64_t pid;
+ char peer[64] = "";
+ if (nng_stream_get_uint64(
+ p->conn, NNG_OPT_PEER_PID, &pid) == 0) {
+ snprintf(peer, sizeof(peer), " from PID %lu",
+ (unsigned long) pid);
+ }
nng_log_warn("NNG-RCVMAX",
- "Rejected oversize message of %lu bytes on IPC",
- (unsigned long) len);
+ "Oversize message of %lu bytes (> %lu) "
+ "on socket<%u> pipe<%u> from IPC%s",
+ (unsigned long) len, (unsigned long) p->rcv_max,
+ nni_pipe_sock_id(p->pipe), nni_pipe_id(p->pipe),
+ peer);
rv = NNG_EMSGSIZE;
goto error;
}
diff --git a/src/sp/transport/ipc/ipc_test.c b/src/sp/transport/ipc/ipc_test.c
index b39aa937..3936a750 100644
--- a/src/sp/transport/ipc/ipc_test.c
+++ b/src/sp/transport/ipc/ipc_test.c
@@ -42,7 +42,7 @@ test_ipc_dialer_perms(void)
{
nng_socket s;
nng_dialer d;
- char * addr;
+ char *addr;
NUTS_ADDR(addr, "ipc");
NUTS_OPEN(s);
@@ -59,7 +59,7 @@ test_ipc_dialer_properties(void)
nng_dialer d;
nng_sockaddr sa;
size_t z;
- char *addr;
+ char *addr;
NUTS_ADDR(addr, "ipc");
NUTS_OPEN(s);
@@ -84,10 +84,10 @@ test_ipc_listener_perms(void)
{
nng_socket s;
nng_listener l;
- char *addr;
+ char *addr;
#ifndef _WIN32
- char * path;
+ char *path;
struct stat st;
#endif
@@ -125,7 +125,7 @@ test_ipc_listener_properties(void)
nng_listener l;
nng_sockaddr sa;
size_t z;
- char *addr;
+ char *addr;
NUTS_ADDR(addr, "ipc");
NUTS_OPEN(s);
@@ -154,8 +154,9 @@ test_ipc_recv_max(void)
nng_socket s1;
nng_listener l;
size_t sz;
- char *addr;
+ char *addr;
+ NUTS_ENABLE_LOG(NNG_LOG_INFO);
NUTS_ADDR(addr, "ipc");
NUTS_OPEN(s0);
NUTS_PASS(nng_socket_set_ms(s0, NNG_OPT_RECVTIMEO, 100));
@@ -184,12 +185,12 @@ test_abstract_sockets(void)
#ifdef NNG_HAVE_ABSTRACT_SOCKETS
nng_socket s1;
nng_socket s2;
- char *addr;
+ char *addr;
nng_pipe p1;
nng_pipe p2;
nng_sockaddr sa1;
nng_sockaddr sa2;
- char * prefix = "abstract://";
+ char *prefix = "abstract://";
NUTS_ADDR(addr, "abstract");
NUTS_OPEN(s1);
@@ -341,7 +342,7 @@ test_unix_alias(void)
char rng[20];
nng_sockaddr sa1;
nng_sockaddr sa2;
- nng_msg * msg;
+ nng_msg *msg;
nng_pipe p;
// Presumes /tmp.
@@ -385,11 +386,11 @@ test_ipc_pipe_peer(void)
#ifdef NNG_PLATFORM_POSIX
// this test verifies that closing a socket peer
// during negotiation is ok.
- nng_socket s0, s1;
- nng_msg *msg;
- nng_pipe p;
- uint64_t id;
- char *addr;
+ nng_socket s0, s1;
+ nng_msg *msg;
+ nng_pipe p;
+ uint64_t id;
+ char *addr;
NUTS_ADDR(addr, "ipc");
NUTS_OPEN(s0);
@@ -432,7 +433,6 @@ test_ipc_pipe_peer(void)
#endif // NNG_PLATFORM_POSIX
}
-
TEST_LIST = {
{ "ipc path too long", test_path_too_long },
{ "ipc dialer perms", test_ipc_dialer_perms },
@@ -447,4 +447,4 @@ TEST_LIST = {
{ "ipc unix alias", test_unix_alias },
{ "ipc peer id", test_ipc_pipe_peer },
{ NULL, NULL },
-}; \ No newline at end of file
+};