aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2025-10-25 23:02:17 -0700
committerGarrett D'Amore <garrett@damore.org>2025-10-25 23:02:17 -0700
commitf9ff44ce0f0c73f05c182bb07c76bf6b51470560 (patch)
treebc37e151ab8527ca6df85ccb079c2b03673ba319 /src/supplemental
parentc2aa8c12e705ba77f3d2d28c5ba0a9ec7efb7632 (diff)
downloadnng-f9ff44ce0f0c73f05c182bb07c76bf6b51470560.tar.gz
nng-f9ff44ce0f0c73f05c182bb07c76bf6b51470560.tar.bz2
nng-f9ff44ce0f0c73f05c182bb07c76bf6b51470560.zip
Plumb sockaddrs all the way through pipes, make them failsafe.
These functions can no longer fail.
Diffstat (limited to 'src/supplemental')
-rw-r--r--src/supplemental/http/http_api.h4
-rw-r--r--src/supplemental/http/http_conn.c12
-rw-r--r--src/supplemental/http/http_public.c16
-rw-r--r--src/supplemental/tls/tls_stream.c18
-rw-r--r--src/supplemental/websocket/websocket.c16
-rw-r--r--src/supplemental/websocket/websocket_test.c4
6 files changed, 31 insertions, 39 deletions
diff --git a/src/supplemental/http/http_api.h b/src/supplemental/http/http_api.h
index ca13bd09..458621a1 100644
--- a/src/supplemental/http/http_api.h
+++ b/src/supplemental/http/http_api.h
@@ -72,8 +72,8 @@ extern void nni_http_read_chunks(
extern nni_http_req *nni_http_conn_req(nni_http_conn *);
extern nni_http_res *nni_http_conn_res(nni_http_conn *);
-extern nng_err nni_http_peer_addr(nni_http_conn *, const nng_sockaddr **);
-extern nng_err nni_http_self_addr(nni_http_conn *, const nng_sockaddr **);
+extern const nng_sockaddr *nni_http_peer_addr(nni_http_conn *);
+extern const nng_sockaddr *nni_http_self_addr(nni_http_conn *);
// Private to the server. (Used to support session hijacking.)
extern void nni_http_conn_set_ctx(nni_http_conn *, void *);
diff --git a/src/supplemental/http/http_conn.c b/src/supplemental/http/http_conn.c
index bb3a0882..949194a9 100644
--- a/src/supplemental/http/http_conn.c
+++ b/src/supplemental/http/http_conn.c
@@ -160,16 +160,16 @@ nni_http_conn_close(nni_http_conn *conn)
nni_mtx_unlock(&conn->mtx);
}
-nng_err
-nni_http_peer_addr(nni_http_conn *conn, const nng_sockaddr **sap)
+const nng_sockaddr *
+nni_http_peer_addr(nni_http_conn *conn)
{
- return nng_stream_peer_addr(conn->sock, sap);
+ return (nng_stream_peer_addr(conn->sock));
}
-nng_err
-nni_http_self_addr(nni_http_conn *conn, const nng_sockaddr **sap)
+const nng_sockaddr *
+nni_http_self_addr(nni_http_conn *conn)
{
- return nng_stream_self_addr(conn->sock, sap);
+ return (nng_stream_self_addr(conn->sock));
}
// http_buf_pull_up pulls the content of the read buffer back to the
diff --git a/src/supplemental/http/http_public.c b/src/supplemental/http/http_public.c
index edf5e609..c5ace172 100644
--- a/src/supplemental/http/http_public.c
+++ b/src/supplemental/http/http_public.c
@@ -309,23 +309,15 @@ nng_http_read_response(nng_http *conn, nng_aio *aio)
nng_err
nng_http_remote_address(nng_http *conn, nng_sockaddr *addrp)
{
- const nng_sockaddr *sap;
- nng_err rv;
- if ((rv = nni_http_peer_addr(conn, &sap)) == NNG_OK) {
- *addrp = *sap;
- }
- return (rv);
+ *addrp = *(nni_http_peer_addr(conn));
+ return (NNG_OK);
}
nng_err
nng_http_local_address(nng_http *conn, nng_sockaddr *addrp)
{
- const nng_sockaddr *sap;
- nng_err rv;
- if ((rv = nni_http_self_addr(conn, &sap)) == NNG_OK) {
- *addrp = *sap;
- }
- return (rv);
+ *addrp = *(nni_http_self_addr(conn));
+ return (NNG_OK);
}
nng_err
diff --git a/src/supplemental/tls/tls_stream.c b/src/supplemental/tls/tls_stream.c
index 169e8fb0..d0a1fabd 100644
--- a/src/supplemental/tls/tls_stream.c
+++ b/src/supplemental/tls/tls_stream.c
@@ -143,9 +143,9 @@ tls_stream_conn_cb(void *arg)
static nng_err tls_stream_get(
void *arg, const char *name, void *buf, size_t *szp, nni_type t);
-static nng_err tls_stream_self_addr(void *arg, const nng_sockaddr **);
-static nng_err tls_stream_peer_addr(void *arg, const nng_sockaddr **);
-static nng_err tls_stream_peer_cert(void *arg, nng_tls_cert **);
+static const nng_sockaddr *tls_stream_self_addr(void *arg);
+static const nng_sockaddr *tls_stream_peer_addr(void *arg);
+static nng_err tls_stream_peer_cert(void *arg, nng_tls_cert **);
int
nni_tls_stream_alloc(tls_stream **tsp, nng_tls_config *cfg, nng_aio *user_aio)
@@ -241,16 +241,16 @@ tls_stream_get(void *arg, const char *name, void *buf, size_t *szp, nni_type t)
return (nni_getopt(tls_stream_options, name, ts, buf, szp, t));
}
-static nng_err
-tls_stream_self_addr(void *arg, const nng_sockaddr **sap)
+static const nng_sockaddr *
+tls_stream_self_addr(void *arg)
{
tls_stream *ts = arg;
- return (nng_stream_self_addr(ts->conn.bio, sap));
+ return (nng_stream_self_addr(ts->conn.bio));
}
-static nng_err
-tls_stream_peer_addr(void *arg, const nng_sockaddr **sap)
+static const nng_sockaddr *
+tls_stream_peer_addr(void *arg)
{
tls_stream *ts = arg;
- return (nng_stream_peer_addr(ts->conn.bio, sap));
+ return (nng_stream_peer_addr(ts->conn.bio));
}
diff --git a/src/supplemental/websocket/websocket.c b/src/supplemental/websocket/websocket.c
index 2ff126e3..82cac05e 100644
--- a/src/supplemental/websocket/websocket.c
+++ b/src/supplemental/websocket/websocket.c
@@ -193,8 +193,8 @@ static void ws_str_send(void *, nng_aio *);
static void ws_str_recv(void *, nng_aio *);
static nng_err ws_str_get(void *, const char *, void *, size_t *, nni_type);
static nng_err ws_str_peer_cert(void *, nng_tls_cert **);
-static nng_err ws_str_self_addr(void *, const nng_sockaddr **);
-static nng_err ws_str_peer_addr(void *, const nng_sockaddr **);
+static const nng_sockaddr *ws_str_self_addr(void *);
+static const nng_sockaddr *ws_str_peer_addr(void *);
static void ws_listener_close(void *);
static void ws_listener_free(void *);
@@ -2846,16 +2846,16 @@ ws_str_peer_cert(void *arg, nng_tls_cert **certp)
return (nni_http_conn_peer_cert(ws->http, certp));
}
-static nng_err
-ws_str_peer_addr(void *arg, const nng_sockaddr **sap)
+static const nng_sockaddr *
+ws_str_peer_addr(void *arg)
{
nni_ws *ws = arg;
- return (nni_http_peer_addr(ws->http, sap));
+ return (nni_http_peer_addr(ws->http));
}
-static nng_err
-ws_str_self_addr(void *arg, const nng_sockaddr **sap)
+static const nng_sockaddr *
+ws_str_self_addr(void *arg)
{
nni_ws *ws = arg;
- return (nni_http_self_addr(ws->http, sap));
+ return (nni_http_self_addr(ws->http));
}
diff --git a/src/supplemental/websocket/websocket_test.c b/src/supplemental/websocket/websocket_test.c
index 66c9617e..ffce8019 100644
--- a/src/supplemental/websocket/websocket_test.c
+++ b/src/supplemental/websocket/websocket_test.c
@@ -184,8 +184,8 @@ test_websocket_conn_props(void)
NUTS_TRUE(c2 != NULL);
// Let's compare the peer addresses
- NUTS_PASS(nng_stream_self_addr(c1, &sap1));
- NUTS_PASS(nng_stream_peer_addr(c2, &sap2));
+ 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);