aboutsummaryrefslogtreecommitdiff
path: root/src/nng.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/nng.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/nng.c')
-rw-r--r--src/nng.c43
1 files changed, 25 insertions, 18 deletions
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)
@@ -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)