aboutsummaryrefslogtreecommitdiff
path: root/src/core/sockaddr.c
diff options
context:
space:
mode:
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);
+ }
+}