aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/listener.c2
-rw-r--r--src/core/sockaddr.c18
2 files changed, 19 insertions, 1 deletions
diff --git a/src/core/listener.c b/src/core/listener.c
index c6c37abe..3ef142c2 100644
--- a/src/core/listener.c
+++ b/src/core/listener.c
@@ -393,7 +393,7 @@ nni_listener_start(nni_listener *l, int flags)
return (NNG_ESTATE);
}
- if ((rv = l->l_ops.l_bind(l->l_data)) != 0) {
+ if ((rv = l->l_ops.l_bind(l->l_data, &l->l_url)) != 0) {
nng_log_warn("NNG-BIND-FAIL", "Failed binding socket<%u>: %s",
nni_sock_id(l->l_sock), nng_strerror(rv));
nni_listener_bump_error(l, rv);
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);
+ }
+}