diff options
| author | Garrett D'Amore <garrett@damore.org> | 2025-10-26 10:54:58 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2025-10-27 07:13:40 -0700 |
| commit | be13c2e8845423cec17af429fc4e16a5d9749e47 (patch) | |
| tree | 82614e403a41aac6581a9a223ef9eba5be557222 /src/nng.c | |
| parent | 11c53f3d7f747d14fd69ce98c63d629bc821ef68 (diff) | |
| download | nng-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/nng.c')
| -rw-r--r-- | src/nng.c | 43 |
1 files changed, 25 insertions, 18 deletions
@@ -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) @@ -920,12 +915,6 @@ nng_listener_get_ms(nng_listener id, const char *n, nng_duration *v) } 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) { int rv; @@ -1429,12 +1418,6 @@ nng_pipe_get_ms(nng_pipe id, const char *n, nng_duration *v) } 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) { nng_err rv; @@ -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) |
