[asterisk-commits] may: branch 1.8 r371011 - /branches/1.8/addons/ooh323c/src/ooGkClient.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Aug 9 13:58:12 CDT 2012


Author: may
Date: Thu Aug  9 13:58:08 2012
New Revision: 371011

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=371011
Log:
Fix to resend GRQ/RRQ if RRJ (registration reject) is received

(close issue ASTERISK-20094)

Patches:
   ASTERISK-20094.patch


Modified:
    branches/1.8/addons/ooh323c/src/ooGkClient.c

Modified: branches/1.8/addons/ooh323c/src/ooGkClient.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/addons/ooh323c/src/ooGkClient.c?view=diff&rev=371011&r1=371010&r2=371011
==============================================================================
--- branches/1.8/addons/ooh323c/src/ooGkClient.c (original)
+++ branches/1.8/addons/ooh323c/src/ooGkClient.c Thu Aug  9 13:58:08 2012
@@ -809,6 +809,9 @@
    if(pGatekeeperConfirm->m.gatekeeperIdentifierPresent) 
    {
       pGkClient->gkId.nchars = pGatekeeperConfirm->gatekeeperIdentifier.nchars;
+      if (pGkClient->gkId.data) {
+         memFreePtr(&pGkClient->ctxt, pGkClient->gkId.data);
+      }
       pGkClient->gkId.data = (ASN116BITCHAR*)memAlloc(&pGkClient->ctxt,
                               sizeof(ASN116BITCHAR)*pGkClient->gkId.nchars);
       if(!pGkClient->gkId.data)
@@ -1368,7 +1371,20 @@
    default:
       OOTRACEINFO1("RRQ Rejected - Invalid Reason\n");
    }
-   pGkClient->state = GkClientGkErr;
+
+   /* send again GRQ/RRQ's */
+   ast_mutex_lock(&pGkClient->Lock);
+   pGkClient->state = GkClientUnregistered;
+   pGkClient->rrqRetries = 0;
+   pGkClient->grqRetries = 0;
+   pGkClient->discoveryComplete = FALSE;
+   ast_mutex_unlock(&pGkClient->Lock);
+
+   iRet = ooGkClientSendGRQ(pGkClient);
+   if(iRet != OO_OK){
+      OOTRACEERR1("\nError: Transmission of rediscovery of GK failed\n");
+      return OO_FAILED;
+   }
    return OO_OK;
 }
 




More information about the asterisk-commits mailing list