diff options
Diffstat (limited to 'src/transport')
| -rw-r--r-- | src/transport/tls/tls.c | 10 | ||||
| -rw-r--r-- | src/transport/ws/websocket.c | 28 |
2 files changed, 28 insertions, 10 deletions
diff --git a/src/transport/tls/tls.c b/src/transport/tls/tls.c index 8fd59fd7..a8f196f7 100644 --- a/src/transport/tls/tls.c +++ b/src/transport/tls/tls.c @@ -1149,10 +1149,14 @@ tlstran_ep_set_config(void *arg, const void *data, size_t sz, nni_opt_type t) static int tlstran_ep_get_config(void *arg, void *v, size_t *szp, nni_opt_type t) { - tlstran_ep *ep = arg; - int rv; + tlstran_ep * ep = arg; + nng_tls_config *cfg; + int rv; nni_mtx_lock(&ep->mtx); - rv = nni_copyout_ptr(ep->cfg, v, szp, t); + if ((cfg = ep->cfg) != NULL) { + nni_tls_config_hold(cfg); + } + rv = nni_copyout_ptr(cfg, v, szp, t); nni_mtx_unlock(&ep->mtx); return (rv); } diff --git a/src/transport/ws/websocket.c b/src/transport/ws/websocket.c index baa9ea34..73dd8234 100644 --- a/src/transport/ws/websocket.c +++ b/src/transport/ws/websocket.c @@ -1060,7 +1060,9 @@ wss_dialer_set_cert_key_file( ((rv = nni_ws_dialer_get_tls(d->dialer, &tls)) != 0)) { return (rv); } - return (nng_tls_config_cert_key_file(tls, v, NULL)); + rv = nng_tls_config_cert_key_file(tls, v, NULL); + nni_tls_config_fini(tls); + return (rv); } static int @@ -1075,7 +1077,9 @@ wss_listener_set_cert_key_file( ((rv = nni_ws_listener_get_tls(l->listener, &tls)) != 0)) { return (rv); } - return (nng_tls_config_cert_key_file(tls, v, NULL)); + rv = nng_tls_config_cert_key_file(tls, v, NULL); + nni_tls_config_fini(tls); + return (rv); } static int @@ -1089,7 +1093,9 @@ wss_dialer_set_ca_file(void *arg, const void *v, size_t sz, nni_opt_type t) ((rv = nni_ws_dialer_get_tls(d->dialer, &tls)) != 0)) { return (rv); } - return (nng_tls_config_ca_file(tls, v)); + rv = nng_tls_config_ca_file(tls, v); + nni_tls_config_fini(tls); + return (rv); } static int @@ -1103,7 +1109,9 @@ wss_listener_set_ca_file(void *arg, const void *v, size_t sz, nni_opt_type t) ((rv = nni_ws_listener_get_tls(l->listener, &tls)) != 0)) { return (rv); } - return (nng_tls_config_ca_file(tls, v)); + rv = nng_tls_config_ca_file(tls, v); + nni_tls_config_fini(tls); + return (rv); } static int @@ -1128,7 +1136,9 @@ wss_dialer_set_auth_mode(void *arg, const void *v, size_t sz, nni_opt_type t) ((rv = nni_ws_dialer_get_tls(d->dialer, &tls)) != 0)) { return (rv); } - return (nng_tls_config_auth_mode(tls, mode)); + rv = nng_tls_config_auth_mode(tls, mode); + nni_tls_config_fini(tls); + return (rv); } static int @@ -1146,7 +1156,9 @@ wss_listener_set_auth_mode(void *arg, const void *v, size_t sz, nni_opt_type t) ((rv = nni_ws_listener_get_tls(l->listener, &tls)) != 0)) { return (rv); } - return (nng_tls_config_auth_mode(tls, mode)); + rv = nng_tls_config_auth_mode(tls, mode); + nni_tls_config_fini(tls); + return (rv); } static int @@ -1162,7 +1174,9 @@ wss_dialer_set_tls_server_name( return (rv); } - return (nng_tls_config_server_name(tls, v)); + rv = nng_tls_config_server_name(tls, v); + nni_tls_config_fini(tls); + return (rv); } static nni_tran_option wss_dialer_options[] = { |
