Merged revisions 328428-328429 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.10 ................ r328428 | may | 2011-07-15 23:31:09 +0400 (Fri, 15 Jul 2011) | 13 lines Merged revisions 328427 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r328427 | may | 2011-07-15 23:22:24 +0400 (Fri, 15 Jul 2011) | 7 lines small gk processing fixes: - decrease for 1 second registration ttl for very low expirations (some providers expire few earlier than TTL) - delete rrq and registration expire timers on URQ received as we make new registration. ........ ................ r328429 | may | 2011-07-15 23:35:50 +0400 (Fri, 15 Jul 2011) | 2 lines delete unproperly changed svn props ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@328502 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
d44b47240b
commit
7f5a82e677
|
@ -1211,8 +1211,11 @@ int ooGkClientHandleRegistrationConfirm
|
|||
|
||||
if(pGkClient->regTimeout > DEFAULT_TTL_OFFSET)
|
||||
regTTL = pGkClient->regTimeout - DEFAULT_TTL_OFFSET;
|
||||
else
|
||||
regTTL = pGkClient->regTimeout;
|
||||
else {
|
||||
regTTL = pGkClient->regTimeout - 1; /* -1 due to some ops expire us few earlier */
|
||||
if (regTTL <= 0)
|
||||
regTTL = 1;
|
||||
}
|
||||
|
||||
cbData = (ooGkClientTimerCb*) memAlloc
|
||||
(&pGkClient->ctxt, sizeof(ooGkClientTimerCb));
|
||||
|
@ -1260,7 +1263,6 @@ int ooGkClientHandleRegistrationConfirm
|
|||
memFreePtr(&pGkClient->ctxt, pTimer->cbData);
|
||||
ooTimerDelete(&pGkClient->ctxt, &pGkClient->timerList, pTimer);
|
||||
OOTRACEDBGA1("Deleted RRQ Timer.\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
pGkClient->state = GkClientRegistered;
|
||||
|
@ -1505,8 +1507,10 @@ int ooGkClientSendURQ(ooGkClient *pGkClient, ooAliases *aliases)
|
|||
int ooGkClientHandleUnregistrationRequest
|
||||
(ooGkClient *pGkClient, H225UnregistrationRequest * punregistrationRequest)
|
||||
{
|
||||
int iRet=0;
|
||||
|
||||
int iRet=0, x;
|
||||
OOTimer *pTimer = NULL;
|
||||
DListNode *pNode = NULL;
|
||||
|
||||
/* Lets first send unregistration confirm message back to gatekeeper*/
|
||||
ooGkClientSendUnregistrationConfirm(pGkClient,
|
||||
punregistrationRequest->requestSeqNum);
|
||||
|
@ -1528,6 +1532,24 @@ int ooGkClientHandleUnregistrationRequest
|
|||
pGkClient->rrqRetries = 0;
|
||||
pGkClient->state = GkClientDiscovered;
|
||||
|
||||
|
||||
/* delete the corresponding RRQ & REG timers */
|
||||
pNode = NULL;
|
||||
for(x=0; x<pGkClient->timerList.count; x++) {
|
||||
pNode = dListFindByIndex(&pGkClient->timerList, x);
|
||||
pTimer = (OOTimer*)pNode->data;
|
||||
if(((ooGkClientTimerCb*)pTimer->cbData)->timerType & OO_RRQ_TIMER) {
|
||||
memFreePtr(&pGkClient->ctxt, pTimer->cbData);
|
||||
ooTimerDelete(&pGkClient->ctxt, &pGkClient->timerList, pTimer);
|
||||
OOTRACEDBGA1("Deleted RRQ Timer.\n");
|
||||
}
|
||||
if(((ooGkClientTimerCb*)pTimer->cbData)->timerType & OO_REG_TIMER) {
|
||||
memFreePtr(&pGkClient->ctxt, pTimer->cbData);
|
||||
ooTimerDelete(&pGkClient->ctxt, &pGkClient->timerList, pTimer);
|
||||
OOTRACEDBGA1("Deleted REG Timer.\n");
|
||||
}
|
||||
}
|
||||
|
||||
iRet = ooGkClientSendRRQ(pGkClient, 0);
|
||||
if(iRet != OO_OK)
|
||||
{
|
||||
|
|
Reference in New Issue