aboutsummaryrefslogtreecommitdiff
path: root/src/sp/transport
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2025-07-13 14:56:10 -0700
committerGarrett D'Amore <garrett@damore.org>2025-07-13 14:56:10 -0700
commitd0f6672ee3fb5f3a30a0051120c6b043d8baff98 (patch)
treeacc80a47eaa37e4ccfb83b4c3b5075b5b931901f /src/sp/transport
parent3eb6dd56853b84893180b07a5cea9888dbe4c6f5 (diff)
downloadnng-d0f6672ee3fb5f3a30a0051120c6b043d8baff98.tar.gz
nng-d0f6672ee3fb5f3a30a0051120c6b043d8baff98.tar.bz2
nng-d0f6672ee3fb5f3a30a0051120c6b043d8baff98.zip
DTLS: hold tls configuration
Diffstat (limited to 'src/sp/transport')
-rw-r--r--src/sp/transport/dtls/dtls.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sp/transport/dtls/dtls.c b/src/sp/transport/dtls/dtls.c
index 43c2a7cd..a4b1a6fb 100644
--- a/src/sp/transport/dtls/dtls.c
+++ b/src/sp/transport/dtls/dtls.c
@@ -1077,6 +1077,9 @@ dtls_ep_fini(void *arg)
{
dtls_ep *ep = arg;
+ if (ep->tlscfg != NULL) {
+ nng_tls_config_free(ep->tlscfg);
+ }
nni_aio_fini(&ep->timeaio);
nni_aio_fini(&ep->resaio);
nni_aio_fini(&ep->tx_aio);
@@ -1578,7 +1581,12 @@ dtls_ep_set_tls(void *arg, nng_tls_config *cfg)
nni_mtx_unlock(&ep->mtx);
return (NNG_EBUSY);
}
- ep->tlscfg = cfg;
+ nng_tls_config *old = ep->tlscfg;
+ ep->tlscfg = cfg;
+ nng_tls_config_hold(cfg);
+ if (old != NULL) {
+ nng_tls_config_free(old);
+ }
nni_mtx_unlock(&ep->mtx);
return (NNG_OK);
}