mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 16:21:01 +00:00
Add support change gatekeeper mode or ip per ooh323 reload command
(issue ASTERISK-19298) Reported by: Dmitry Melekhov Patches: change_gk_on_reload-1.patch (License #5415) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@356848 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2571,12 +2571,27 @@ static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v,
|
|||||||
|
|
||||||
static int ooh323_do_reload(void)
|
static int ooh323_do_reload(void)
|
||||||
{
|
{
|
||||||
|
extern OOH323EndPoint gH323ep;
|
||||||
|
|
||||||
if (gH323Debug) {
|
if (gH323Debug) {
|
||||||
ast_verb(0, "--- ooh323_do_reload\n");
|
ast_verb(0, "--- ooh323_do_reload\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Gatekeeper */
|
||||||
|
if (gH323ep.gkClient) {
|
||||||
|
ooGkClientDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
reload_config(1);
|
reload_config(1);
|
||||||
|
|
||||||
|
/* Gatekeeper */
|
||||||
|
if (gRasGkMode == RasUseSpecificGatekeeper ||
|
||||||
|
gRasGkMode == RasDiscoverGatekeeper) {
|
||||||
|
ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ?
|
||||||
|
gGatekeeper : 0, 0);
|
||||||
|
ooGkClientStart(gH323ep.gkClient);
|
||||||
|
}
|
||||||
|
|
||||||
if (gH323Debug) {
|
if (gH323Debug) {
|
||||||
ast_verb(0, "+++ ooh323_do_reload\n");
|
ast_verb(0, "+++ ooh323_do_reload\n");
|
||||||
}
|
}
|
||||||
|
@@ -170,23 +170,25 @@ void ooGkClientPrintConfig(ooGkClient *pGkClient)
|
|||||||
|
|
||||||
int ooGkClientDestroy(void)
|
int ooGkClientDestroy(void)
|
||||||
{
|
{
|
||||||
|
ooGkClient *pGkClient = gH323ep.gkClient;
|
||||||
|
|
||||||
if(gH323ep.gkClient)
|
if(gH323ep.gkClient)
|
||||||
{
|
{
|
||||||
if(gH323ep.gkClient->state == GkClientRegistered)
|
ast_mutex_lock(&pGkClient->Lock);
|
||||||
|
gH323ep.gkClient = NULL;
|
||||||
|
if(pGkClient->state == GkClientRegistered)
|
||||||
{
|
{
|
||||||
OOTRACEINFO1("Unregistering from Gatekeeper\n");
|
OOTRACEINFO1("Unregistering from Gatekeeper\n");
|
||||||
if(ooGkClientSendURQ(gH323ep.gkClient, NULL)!=OO_OK)
|
if(ooGkClientSendURQ(pGkClient, NULL)!=OO_OK)
|
||||||
OOTRACEERR1("Error:Failed to send URQ to gatekeeper\n");
|
OOTRACEERR1("Error:Failed to send URQ to gatekeeper\n");
|
||||||
}
|
}
|
||||||
OOTRACEINFO1("Destroying Gatekeeper Client\n");
|
OOTRACEINFO1("Destroying Gatekeeper Client\n");
|
||||||
ooGkClientCloseChannel(gH323ep.gkClient);
|
ooGkClientCloseChannel(pGkClient);
|
||||||
freeContext(&gH323ep.gkClient->msgCtxt);
|
freeContext(&pGkClient->msgCtxt);
|
||||||
freeContext(&gH323ep.gkClient->ctxt);
|
freeContext(&pGkClient->ctxt);
|
||||||
ast_mutex_lock(&gH323ep.gkClient->Lock);
|
ast_mutex_unlock(&pGkClient->Lock);
|
||||||
ast_mutex_unlock(&gH323ep.gkClient->Lock);
|
ast_mutex_destroy(&pGkClient->Lock);
|
||||||
ast_mutex_destroy(&gH323ep.gkClient->Lock);
|
memFreePtr(&gH323ep.ctxt, pGkClient);
|
||||||
memFreePtr(&gH323ep.ctxt, gH323ep.gkClient);
|
|
||||||
gH323ep.gkClient = NULL;
|
|
||||||
}
|
}
|
||||||
return OO_OK;
|
return OO_OK;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user