diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-12-28 16:39:05 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-12-28 16:39:05 -0800 |
| commit | bef6b378ae5d6bbfedfb5e7e7f9f433310fac4e9 (patch) | |
| tree | a479cbe3e126ebbc63727f6b0e14627ddd61f9b0 /src/platform | |
| parent | 6a414614d906999bd4eb6e9b2f96ca972b437ffc (diff) | |
| download | nng-bef6b378ae5d6bbfedfb5e7e7f9f433310fac4e9.tar.gz nng-bef6b378ae5d6bbfedfb5e7e7f9f433310fac4e9.tar.bz2 nng-bef6b378ae5d6bbfedfb5e7e7f9f433310fac4e9.zip | |
tcp stream: add test for ESTATE getting port on unbound listener
Diffstat (limited to 'src/platform')
| -rw-r--r-- | src/platform/posix/posix_tcplisten.c | 11 | ||||
| -rw-r--r-- | src/platform/tcp_stream_test.c | 21 | ||||
| -rw-r--r-- | src/platform/windows/win_tcplisten.c | 10 |
3 files changed, 22 insertions, 20 deletions
diff --git a/src/platform/posix/posix_tcplisten.c b/src/platform/posix/posix_tcplisten.c index 6588fb78..6e7f4d14 100644 --- a/src/platform/posix/posix_tcplisten.c +++ b/src/platform/posix/posix_tcplisten.c @@ -377,17 +377,13 @@ static int tcp_listener_get_port(void *arg, void *buf, size_t *szp, nni_type t) { tcp_listener *l = arg; - int rv; nng_sockaddr sa; size_t sz; int port; uint8_t *paddr; sz = sizeof(sa); - rv = tcp_listener_get_locaddr(l, &sa, &sz, NNI_TYPE_SOCKADDR); - if (rv != 0) { - return (rv); - } + (void) tcp_listener_get_locaddr(l, &sa, &sz, NNI_TYPE_SOCKADDR); switch (sa.s_family) { case NNG_AF_INET: @@ -399,11 +395,6 @@ tcp_listener_get_port(void *arg, void *buf, size_t *szp, nni_type t) break; default: - paddr = NULL; - break; - } - - if (paddr == NULL) { return (NNG_ESTATE); } diff --git a/src/platform/tcp_stream_test.c b/src/platform/tcp_stream_test.c index 708120c3..e28fb46c 100644 --- a/src/platform/tcp_stream_test.c +++ b/src/platform/tcp_stream_test.c @@ -155,8 +155,27 @@ test_tcp_listen_accept_cancel(void) nng_stream_listener_free(l); } +void +test_tcp_listen_port_zero_not_bound(void) +{ + nng_stream_listener *l; + char *addr; + int p; + + nng_log_set_logger(nng_stderr_logger); + NUTS_ADDR_ZERO(addr, "tcp"); + + // start a listening stream listener but do not call accept + NUTS_PASS(nng_stream_listener_alloc(&l, addr)); + NUTS_FAIL(nng_stream_listener_get_int(l, NNG_OPT_TCP_BOUND_PORT, &p), + NNG_ESTATE); + nng_stream_listener_free(l); +} + NUTS_TESTS = { { "tcp stream", test_tcp_stream }, - { "tcp stream listen accept cancel", test_tcp_listen_accept_cancel }, + { "tcp listen accept cancel", test_tcp_listen_accept_cancel }, + { "tcp listen port zero not bound", + test_tcp_listen_port_zero_not_bound }, { NULL, NULL }, }; diff --git a/src/platform/windows/win_tcplisten.c b/src/platform/windows/win_tcplisten.c index 9366be59..c247ed4f 100644 --- a/src/platform/windows/win_tcplisten.c +++ b/src/platform/windows/win_tcplisten.c @@ -410,10 +410,7 @@ tcp_listener_get_port(void *arg, void *buf, size_t *szp, nni_type t) uint8_t *paddr; sz = sizeof(sa); - rv = tcp_listener_get_locaddr(l, &sa, &sz, NNI_TYPE_SOCKADDR); - if (rv != 0) { - return (rv); - } + (void) tcp_listener_get_locaddr(l, &sa, &sz, NNI_TYPE_SOCKADDR); switch (sa.s_family) { case NNG_AF_INET: @@ -425,11 +422,6 @@ tcp_listener_get_port(void *arg, void *buf, size_t *szp, nni_type t) break; default: - paddr = NULL; - break; - } - - if (paddr == NULL) { return (NNG_ESTATE); } |
