aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental/websocket/websocket_test.c
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/supplemental/websocket/websocket_test.c
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/supplemental/websocket/websocket_test.c')
-rw-r--r--src/supplemental/websocket/websocket_test.c63
1 files changed, 27 insertions, 36 deletions
diff --git a/src/supplemental/websocket/websocket_test.c b/src/supplemental/websocket/websocket_test.c
index ffce8019..368ef3ec 100644
--- a/src/supplemental/websocket/websocket_test.c
+++ b/src/supplemental/websocket/websocket_test.c
@@ -18,10 +18,8 @@
void
test_websocket_wildcard(void)
{
- nng_stream_dialer *d = NULL;
- nng_stream_listener *l = NULL;
- nng_sockaddr sa1;
- nng_sockaddr sa2;
+ nng_stream_dialer *d = NULL;
+ nng_stream_listener *l = NULL;
nng_aio *daio = NULL;
nng_aio *laio = NULL;
nng_aio *aio1 = NULL;
@@ -32,20 +30,19 @@ test_websocket_wildcard(void)
char buf1[8];
char buf2[8];
char uri[64];
+ const nng_sockaddr *sap1;
+ const nng_sockaddr *sap2;
+ int port;
NUTS_PASS(nng_stream_listener_alloc(&l, "ws://127.0.0.1:0/test"));
NUTS_PASS(nng_stream_listener_listen(l));
- // Let's get the address we're going to use to dial -- also check
- // that it is correct.
- NUTS_PASS(nng_stream_listener_get_addr(l, NNG_OPT_LOCADDR, &sa1));
- NUTS_TRUE(sa1.s_in.sa_port != 0);
- NUTS_TRUE(sa1.s_family == NNG_AF_INET);
- NUTS_TRUE(nuts_be32(sa1.s_in.sa_addr) == 0x7F000001u);
+ // Let's get the port we're going to use to dial.
+ NUTS_PASS(nng_stream_listener_get_int(l, NNG_OPT_BOUND_PORT, &port));
+ NUTS_TRUE(port != 0);
- (void) snprintf(uri, sizeof(uri), "ws://127.0.0.1:%d/test",
- nuts_be16(sa1.s_in.sa_port));
+ (void) snprintf(uri, sizeof(uri), "ws://127.0.0.1:%d/test", port);
NUTS_PASS(nng_stream_dialer_alloc(&d, uri));
NUTS_PASS(nng_aio_alloc(&daio, NULL, NULL));
@@ -71,16 +68,16 @@ test_websocket_wildcard(void)
NUTS_TRUE(c2 != NULL);
// Let's compare the peer addresses
- NUTS_PASS(nng_stream_get_addr(c2, NNG_OPT_REMADDR, &sa2));
- NUTS_TRUE(sa1.s_family == sa2.s_family);
- NUTS_TRUE(sa1.s_in.sa_addr == sa2.s_in.sa_addr);
- NUTS_TRUE(sa1.s_in.sa_port == sa2.s_in.sa_port);
+ sap2 = nng_stream_peer_addr(c2);
+ NUTS_TRUE(sap2->s_family == NNG_AF_INET);
+ NUTS_TRUE(nuts_be32(sap2->s_in.sa_addr) == 0x7F000001u);
+ NUTS_TRUE(sap2->s_in.sa_port != 0);
- NUTS_PASS(nng_stream_get_addr(c1, NNG_OPT_REMADDR, &sa1));
- NUTS_PASS(nng_stream_get_addr(c2, NNG_OPT_LOCADDR, &sa2));
- NUTS_TRUE(sa1.s_family == sa2.s_family);
- NUTS_TRUE(sa1.s_in.sa_addr == sa2.s_in.sa_addr);
- NUTS_TRUE(sa1.s_in.sa_port == sa2.s_in.sa_port);
+ sap1 = nng_stream_peer_addr(c1);
+ sap2 = nng_stream_self_addr(c2);
+ NUTS_TRUE(sap1->s_family == sap2->s_family);
+ NUTS_TRUE(sap1->s_in.sa_addr == sap2->s_in.sa_addr);
+ NUTS_TRUE(sap1->s_in.sa_port == sap2->s_in.sa_port);
// This relies on send completing for for just 5 bytes, and on
// recv doing the same. Technically this isn't/ guaranteed, but
@@ -129,8 +126,6 @@ test_websocket_conn_props(void)
{
nng_stream_dialer *d = NULL;
nng_stream_listener *l = NULL;
- nng_sockaddr sa1;
- nng_sockaddr sa2;
const nng_sockaddr *sap1;
const nng_sockaddr *sap2;
size_t sz;
@@ -186,19 +181,15 @@ test_websocket_conn_props(void)
// Let's compare the peer addresses
sap1 = nng_stream_self_addr(c1);
sap2 = nng_stream_peer_addr(c2);
- NUTS_PASS(nng_stream_get_addr(c1, NNG_OPT_LOCADDR, &sa1));
- NUTS_PASS(nng_stream_get_addr(c2, NNG_OPT_REMADDR, &sa2));
- NUTS_TRUE(sa1.s_family == sa2.s_family);
- NUTS_TRUE(sa1.s_in.sa_addr == sa2.s_in.sa_addr);
- NUTS_TRUE(sa1.s_in.sa_port == sa2.s_in.sa_port);
- NUTS_TRUE(memcmp(sap1, &sa1, sizeof(sa1)) == 0);
- NUTS_TRUE(memcmp(sap2, &sa2, sizeof(sa2)) == 0);
-
- NUTS_PASS(nng_stream_get_addr(c1, NNG_OPT_REMADDR, &sa1));
- NUTS_PASS(nng_stream_get_addr(c2, NNG_OPT_LOCADDR, &sa2));
- NUTS_TRUE(sa1.s_family == sa2.s_family);
- NUTS_TRUE(sa1.s_in.sa_addr == sa2.s_in.sa_addr);
- NUTS_TRUE(sa1.s_in.sa_port == sa2.s_in.sa_port);
+ NUTS_TRUE(sap1->s_family == sap2->s_family);
+ NUTS_TRUE(sap1->s_in.sa_addr == sap2->s_in.sa_addr);
+ NUTS_TRUE(sap1->s_in.sa_port == sap2->s_in.sa_port);
+
+ sap1 = nng_stream_peer_addr(c1);
+ sap2 = nng_stream_self_addr(c2);
+ NUTS_TRUE(sap1->s_family == sap2->s_family);
+ NUTS_TRUE(sap1->s_in.sa_addr == sap2->s_in.sa_addr);
+ NUTS_TRUE(sap1->s_in.sa_port == sap2->s_in.sa_port);
NUTS_PASS(nng_stream_get_bool(c1, NNG_OPT_TCP_NODELAY, &on));
NUTS_TRUE(on == true);