aboutsummaryrefslogtreecommitdiff
path: root/src/core/sockaddr.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-11-21 22:48:32 -0800
committerGarrett D'Amore <garrett@damore.org>2024-11-21 22:48:32 -0800
commit925ac884f8bce34ad27fe18e851ebcecfe311356 (patch)
treef5ef6ed18876688a695af49a89df12114505f65f /src/core/sockaddr.c
parent7ea8abadec355eb7ea9f71fc2e2bdd73c1c77c62 (diff)
downloadnng-925ac884f8bce34ad27fe18e851ebcecfe311356.tar.gz
nng-925ac884f8bce34ad27fe18e851ebcecfe311356.tar.bz2
nng-925ac884f8bce34ad27fe18e851ebcecfe311356.zip
Collect the bound port as part of the URL at bind time.
This is a step on cleaning up our logic around NNG_OPT_URL.
Diffstat (limited to 'src/core/sockaddr.c')
-rw-r--r--src/core/sockaddr.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/core/sockaddr.c b/src/core/sockaddr.c
index 50fd4214..d55db156 100644
--- a/src/core/sockaddr.c
+++ b/src/core/sockaddr.c
@@ -163,3 +163,21 @@ nng_str_sockaddr(const nng_sockaddr *sa, char *buf, size_t bufsz)
return ("unknown");
}
}
+
+uint32_t
+nng_sockaddr_port(const nng_sockaddr *sa)
+{
+ uint16_t port16;
+ switch (sa->s_family) {
+ case NNG_AF_INET:
+ NNI_GET16(&sa->s_in.sa_port, port16);
+ return (port16);
+ case NNG_AF_INET6:
+ NNI_GET16(&sa->s_in6.sa_port, port16);
+ return (port16);
+ case NNG_AF_ZT:
+ return (sa->s_zt.sa_port);
+ default:
+ return (0);
+ }
+}