diff options
author | Alexandr Anikin <may@telecom-service.ru> | 2012-02-26 18:25:23 +0000 |
---|---|---|
committer | Alexandr Anikin <may@telecom-service.ru> | 2012-02-26 18:25:23 +0000 |
commit | 62994531e28f8a00e559908d70ee2ccbe6442737 (patch) | |
tree | 105db973238f40686f6f6ede5068c447400299d6 /addons/ooh323c | |
parent | 5e40f2cd98143c2e3997375db24beee54e1e70a9 (diff) |
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
Diffstat (limited to 'addons/ooh323c')
-rw-r--r-- | addons/ooh323c/src/ooGkClient.c | 22 |
1 files changed, 12 insertions, 10 deletions
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; } |