From 62994531e28f8a00e559908d70ee2ccbe6442737 Mon Sep 17 00:00:00 2001 From: Alexandr Anikin Date: Sun, 26 Feb 2012 18:25:23 +0000 Subject: 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 --- addons/ooh323c/src/ooGkClient.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'addons/ooh323c/src') diff --git a/addons/ooh323c/src/ooGkClient.c b/addons/ooh323c/src/ooGkClient.c index dff3e751b..c91b9ed95 100644 --- a/addons/ooh323c/src/ooGkClient.c +++ b/addons/ooh323c/src/ooGkClient.c @@ -170,23 +170,25 @@ void ooGkClientPrintConfig(ooGkClient *pGkClient) int ooGkClientDestroy(void) { + ooGkClient *pGkClient = 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"); - if(ooGkClientSendURQ(gH323ep.gkClient, NULL)!=OO_OK) + if(ooGkClientSendURQ(pGkClient, NULL)!=OO_OK) OOTRACEERR1("Error:Failed to send URQ to gatekeeper\n"); } OOTRACEINFO1("Destroying Gatekeeper Client\n"); - ooGkClientCloseChannel(gH323ep.gkClient); - freeContext(&gH323ep.gkClient->msgCtxt); - freeContext(&gH323ep.gkClient->ctxt); - ast_mutex_lock(&gH323ep.gkClient->Lock); - ast_mutex_unlock(&gH323ep.gkClient->Lock); - ast_mutex_destroy(&gH323ep.gkClient->Lock); - memFreePtr(&gH323ep.ctxt, gH323ep.gkClient); - gH323ep.gkClient = NULL; + ooGkClientCloseChannel(pGkClient); + freeContext(&pGkClient->msgCtxt); + freeContext(&pGkClient->ctxt); + ast_mutex_unlock(&pGkClient->Lock); + ast_mutex_destroy(&pGkClient->Lock); + memFreePtr(&gH323ep.ctxt, pGkClient); } return OO_OK; } -- cgit v1.2.3