aboutsummaryrefslogtreecommitdiff
path: root/src/sp/transport/ipc
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2025-10-26 10:54:58 -0700
committerGarrett D'Amore <garrett@damore.org>2025-10-27 07:13:40 -0700
commitbe13c2e8845423cec17af429fc4e16a5d9749e47 (patch)
tree82614e403a41aac6581a9a223ef9eba5be557222 /src/sp/transport/ipc
parent11c53f3d7f747d14fd69ce98c63d629bc821ef68 (diff)
downloadnng-be13c2e8845423cec17af429fc4e16a5d9749e47.tar.gz
nng-be13c2e8845423cec17af429fc4e16a5d9749e47.tar.bz2
nng-be13c2e8845423cec17af429fc4e16a5d9749e47.zip
Replace nng_pipe_get_addr, nng_stream_get_addr, and the NNG_OPT_REMADDR option.
More direct access methods are provided instead. This results in much lower friction when using, and is a step on the path to removing NNG_OPT_LOCADDR as well. We need to figure a solution for NNG_OPT_LOCADDR for dialers; for listeners there is little use in it either, and it will be removed. (Dialers will probably get a new NNG_OPT_BIND_IP option.)
Diffstat (limited to 'src/sp/transport/ipc')
-rw-r--r--src/sp/transport/ipc/ipc_test.c80
1 files changed, 4 insertions, 76 deletions
diff --git a/src/sp/transport/ipc/ipc_test.c b/src/sp/transport/ipc/ipc_test.c
index 30ac6fb3..3131e774 100644
--- a/src/sp/transport/ipc/ipc_test.c
+++ b/src/sp/transport/ipc/ipc_test.c
@@ -69,10 +69,7 @@ test_ipc_dialer_properties(void)
NUTS_PASS(nng_dial(s, addr, &d, NNG_FLAG_NONBLOCK));
// Dialers don't have local addresses.
NUTS_FAIL(nng_dialer_get_addr(d, NNG_OPT_LOCADDR, &sa), NNG_ENOTSUP);
-
NUTS_FAIL(nng_dialer_set_addr(d, NNG_OPT_LOCADDR, &sa), NNG_ENOTSUP);
- NUTS_PASS(nng_dialer_get_addr(d, NNG_OPT_REMADDR, &sa));
- NUTS_TRUE(sa.s_family == NNG_AF_IPC);
z = 8192;
NUTS_PASS(nng_dialer_set_size(d, NNG_OPT_RECVMAXSZ, z));
@@ -126,19 +123,13 @@ test_ipc_listener_properties(void)
{
nng_socket s;
nng_listener l;
- nng_sockaddr sa;
size_t z;
char *addr;
NUTS_ADDR(addr, "ipc");
NUTS_OPEN(s);
NUTS_PASS(nng_listen(s, addr, &l, 0));
- NUTS_PASS(nng_listener_get_addr(l, NNG_OPT_LOCADDR, &sa));
- NUTS_TRUE(sa.s_ipc.sa_family == NNG_AF_IPC);
- NUTS_MATCH(sa.s_ipc.sa_path, addr + strlen("ipc://"));
- NUTS_FAIL(
- nng_listener_set_addr(l, NNG_OPT_LOCADDR, &sa), NNG_EREADONLY);
z = 8192;
NUTS_PASS(nng_listener_set_size(l, NNG_OPT_RECVMAXSZ, z));
z = 0;
@@ -419,8 +410,8 @@ test_abstract_sockets(void)
NUTS_OPEN(s1);
NUTS_OPEN(s2);
NUTS_MARRY_EX(s1, s2, addr, &p1, &p2);
- NUTS_PASS(nng_pipe_get_addr(p1, NNG_OPT_REMADDR, &sa1));
- NUTS_PASS(nng_pipe_get_addr(p2, NNG_OPT_LOCADDR, &sa2));
+ NUTS_PASS(nng_pipe_peer_addr(p1, &sa1));
+ NUTS_PASS(nng_pipe_self_addr(p2, &sa2));
NUTS_TRUE(sa1.s_family == sa2.s_family);
NUTS_TRUE(sa1.s_family == NNG_AF_ABSTRACT);
NUTS_TRUE(sa1.s_abstract.sa_len == strlen(addr) - strlen(prefix));
@@ -435,55 +426,6 @@ test_abstract_sockets(void)
}
void
-test_abstract_auto_bind(void)
-{
-#ifdef NNG_HAVE_ABSTRACT_SOCKETS
- nng_socket s1;
- nng_socket s2;
- char addr[40];
- char name[12];
- nng_sockaddr sa;
- nng_listener l;
- size_t len;
-
- snprintf(addr, sizeof(addr), "abstract://");
-
- NUTS_OPEN(s1);
- NUTS_OPEN(s2);
- NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_SENDTIMEO, 1000));
- NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_SENDTIMEO, 1000));
- NUTS_PASS(nng_socket_set_ms(s1, NNG_OPT_RECVTIMEO, 1000));
- NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECVTIMEO, 1000));
- NUTS_PASS(nng_listen(s1, addr, &l, 0));
-
- NUTS_PASS(nng_listener_get_addr(l, NNG_OPT_LOCADDR, &sa));
- // Under linux there are either 8 or 5 hex characters.
- NUTS_TRUE(sa.s_family == NNG_AF_ABSTRACT);
- NUTS_TRUE(sa.s_abstract.sa_len < 10);
-
- len = sa.s_abstract.sa_len;
- memcpy(name, sa.s_abstract.sa_name, len);
- name[len] = '\0';
- NUTS_TRUE(strlen(name) == len);
-
- (void) snprintf(addr, sizeof(addr), "abstract://%s", name);
- NUTS_PASS(nng_dial(s2, addr, NULL, 0));
-
- // first send the ping
- NUTS_SEND(s1, "ping");
- NUTS_RECV(s2, "ping");
-
- NUTS_SEND(s2, "pong");
- NUTS_RECV(s1, "pong");
-
- NUTS_CLOSE(s1);
- NUTS_CLOSE(s2);
-#else
- NUTS_SKIP("No abstract sockets.");
-#endif
-}
-
-void
test_abstract_too_long(void)
{
#ifdef NNG_HAVE_ABSTRACT_SOCKETS
@@ -518,7 +460,6 @@ test_abstract_null(void)
char name[40];
char rng[20];
- nng_sockaddr sa;
nng_listener l;
size_t len;
@@ -534,18 +475,6 @@ test_abstract_null(void)
NUTS_PASS(nng_socket_set_ms(s2, NNG_OPT_RECVTIMEO, 1000));
NUTS_PASS(nng_listen(s1, addr, &l, 0));
- NUTS_PASS(nng_listener_get_addr(l, NNG_OPT_LOCADDR, &sa));
- // Under linux there are either 8 or 5 hex characters.
- NUTS_TRUE(sa.s_family == NNG_AF_ABSTRACT);
- NUTS_TRUE(sa.s_abstract.sa_len < 32);
- len = sa.s_abstract.sa_len;
- NUTS_TRUE(len == 20);
- NUTS_TRUE(sa.s_abstract.sa_name[0] == 'a');
- NUTS_TRUE(sa.s_abstract.sa_name[1] == '\0');
- NUTS_TRUE(sa.s_abstract.sa_name[2] == 'b');
- NUTS_TRUE(sa.s_abstract.sa_name[3] == '_');
- NUTS_TRUE(memcmp(&sa.s_abstract.sa_name[4], rng, 16) == 0);
-
NUTS_PASS(nng_dial(s2, addr, NULL, 0));
// first send the ping
@@ -599,8 +528,8 @@ test_unix_alias(void)
NUTS_TRUE(nng_msg_len(msg) == 5);
NUTS_MATCH(nng_msg_body(msg), "ping");
p = nng_msg_get_pipe(msg);
- NUTS_PASS(nng_pipe_get_addr(p, NNG_OPT_REMADDR, &sa1));
- NUTS_PASS(nng_pipe_get_addr(p, NNG_OPT_REMADDR, &sa2));
+ NUTS_PASS(nng_pipe_peer_addr(p, &sa1));
+ NUTS_PASS(nng_pipe_self_addr(p, &sa2));
NUTS_TRUE(sa1.s_family == sa2.s_family);
NUTS_TRUE(sa1.s_family == NNG_AF_IPC);
NUTS_MATCH(sa1.s_ipc.sa_path, sa2.s_ipc.sa_path);
@@ -704,7 +633,6 @@ TEST_LIST = {
{ "ipc listen duplicate", test_ipc_listen_duplicate },
{ "ipc listen accept cancel", test_ipc_listen_accept_cancel },
{ "ipc abstract sockets", test_abstract_sockets },
- { "ipc abstract auto bind", test_abstract_auto_bind },
{ "ipc abstract name too long", test_abstract_too_long },
{ "ipc abstract embedded null", test_abstract_null },
{ "ipc unix alias", test_unix_alias },