From be13c2e8845423cec17af429fc4e16a5d9749e47 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 26 Oct 2025 10:54:58 -0700 Subject: 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.) --- src/nng.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'src/nng.c') diff --git a/src/nng.c b/src/nng.c index d8cceae0..82b1eb91 100644 --- a/src/nng.c +++ b/src/nng.c @@ -9,6 +9,7 @@ // #include "core/nng_impl.h" +#include "core/pipe.h" #include "core/platform.h" #include "core/socket.h" @@ -868,12 +869,6 @@ nng_listener_set_string(nng_listener id, const char *n, const char *v) id, n, v, v == NULL ? 0 : strlen(v) + 1, NNI_TYPE_STRING)); } -int -nng_listener_set_addr(nng_listener id, const char *n, const nng_sockaddr *v) -{ - return (listener_set(id, n, v, sizeof(*v), NNI_TYPE_SOCKADDR)); -} - static int listener_get( nng_listener lid, const char *name, void *v, size_t *szp, nni_type t) @@ -919,12 +914,6 @@ nng_listener_get_ms(nng_listener id, const char *n, nng_duration *v) return (listener_get(id, n, v, NULL, NNI_TYPE_DURATION)); } -int -nng_listener_get_addr(nng_listener id, const char *n, nng_sockaddr *v) -{ - return (listener_get(id, n, v, NULL, NNI_TYPE_SOCKADDR)); -} - int nng_listener_get_tls(nng_listener id, nng_tls_config **cfgp) { @@ -1428,12 +1417,6 @@ nng_pipe_get_ms(nng_pipe id, const char *n, nng_duration *v) return (pipe_get(id, n, v, NULL, NNI_TYPE_DURATION)); } -nng_err -nng_pipe_get_addr(nng_pipe id, const char *n, nng_sockaddr *v) -{ - return (pipe_get(id, n, v, NULL, NNI_TYPE_SOCKADDR)); -} - nng_err nng_pipe_peer_cert(nng_pipe p, nng_tls_cert **certp) { @@ -1505,6 +1488,30 @@ nng_pipe_id(nng_pipe p) return (((int) p.id > 0) ? (int) p.id : -1); } +nng_err +nng_pipe_peer_addr(nng_pipe p, nng_sockaddr *sap) +{ + nng_err rv; + nni_pipe *pipe; + if ((rv = nni_pipe_find(&pipe, p.id)) == NNG_OK) { + *sap = *(nni_pipe_peer_addr(pipe)); + nni_pipe_rele(pipe); + } + return (rv); +} + +nng_err +nng_pipe_self_addr(nng_pipe p, nng_sockaddr *sap) +{ + nng_err rv; + nni_pipe *pipe; + if ((rv = nni_pipe_find(&pipe, p.id)) == NNG_OK) { + *sap = *(nni_pipe_self_addr(pipe)); + nni_pipe_rele(pipe); + } + return (rv); +} + // Message handling. int nng_msg_alloc(nng_msg **msgp, size_t size) -- cgit v1.2.3-70-g09d2