aboutsummaryrefslogtreecommitdiff
path: root/src/transport/tls
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/tls')
-rw-r--r--src/transport/tls/tls.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/transport/tls/tls.c b/src/transport/tls/tls.c
index b1bdddb8..e6701f5f 100644
--- a/src/transport/tls/tls.c
+++ b/src/transport/tls/tls.c
@@ -913,9 +913,9 @@ tlstran_listener_bind(void *arg)
tlstran_listener *l = arg;
int rv;
- l->bsa = l->sa;
nni_mtx_lock(&l->ep.mtx);
- rv = nni_tcp_listener_listen(l->listener, &l->bsa);
+ l->bsa = l->sa;
+ rv = nni_tcp_listener_listen(l->listener, &l->bsa);
nni_mtx_unlock(&l->ep.mtx);
return (rv);
@@ -1122,6 +1122,18 @@ tlstran_listener_get_url(void *arg, void *v, size_t *szp, nni_opt_type t)
}
static int
+tlstran_listener_get_locaddr(void *arg, void *buf, size_t *szp, nni_opt_type t)
+{
+ tlstran_listener *l = arg;
+ int rv;
+
+ nni_mtx_lock(&l->ep.mtx);
+ rv = nni_copyout_sockaddr(&l->bsa, buf, szp, t);
+ nni_mtx_unlock(&l->ep.mtx);
+ return (rv);
+}
+
+static int
tlstran_check_recvmaxsz(const void *v, size_t sz, nni_opt_type t)
{
return (nni_copyin_size(NULL, v, sz, 0, NNI_MAXSZ, t));
@@ -1381,6 +1393,11 @@ static nni_tran_option tlstran_listener_options[] = {
.o_get = tlstran_listener_get_url,
},
{
+ .o_name = NNG_OPT_LOCADDR,
+ .o_type = NNI_TYPE_SOCKADDR,
+ .o_get = tlstran_listener_get_locaddr,
+ },
+ {
.o_name = NNG_OPT_TLS_CONFIG,
.o_type = NNI_TYPE_POINTER,
.o_get = tlstran_ep_get_config,