]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_pjsip: On partial transport reload also move factories.
authorJoshua C. Colp <jcolp@sangoma.com>
Mon, 24 May 2021 18:38:26 +0000 (15:38 -0300)
committerFriendly Automation <jenkins2@gerrit.asterisk.org>
Wed, 26 May 2021 16:24:15 +0000 (11:24 -0500)
For connection oriented transports PJSIP uses factories to
produce transports. When doing a partial transport reload
we need to also move the factory of the transport over so
that anything referencing the transport (such as an endpoint)
has the factory available.

ASTERISK-29441

Change-Id: Ieae0fb98eab2d9257cad996a1136e5a62d307161

res/res_pjsip/config_transport.c

index 830b03832d9f1278afb593016e5027c96383e4f3..502ad5b1ce04b09437f9e13dd6488f1e2d27bc48 100644 (file)
@@ -739,6 +739,8 @@ static int transport_apply(const struct ast_sorcery *sorcery, void *obj)
                ast_log(LOG_WARNING, "Transport '%s' is not fully reloadable, not reloading: protocol, bind, TLS, TCP, ToS, or CoS options.\n", transport_id);
                temp_state->state->transport = perm_state->state->transport;
                perm_state->state->transport = NULL;
+               temp_state->state->factory = perm_state->state->factory;
+               perm_state->state->factory = NULL;
                res = PJ_SUCCESS;
        } else if (transport->type == AST_TRANSPORT_UDP) {