res_pjsip: On partial transport reload also move factories.

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
This commit is contained in:
Joshua C. Colp 2021-05-24 15:38:26 -03:00 committed by Joshua Colp
parent 033c2a2283
commit 16e4a9d8cf
1 changed files with 2 additions and 0 deletions

View 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) {