diff options
Diffstat (limited to 'src/transport/tls')
| -rw-r--r-- | src/transport/tls/tls.c | 21 |
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, |
