mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-06 21:09:47 +00:00
Merged revisions 331147,331200 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10 ................ r331147 | may | 2011-08-09 20:16:55 +0400 (Tue, 09 Aug 2011) | 11 lines Merged revisions 331146 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r331146 | may | 2011-08-09 20:13:09 +0400 (Tue, 09 Aug 2011) | 4 lines move ast_cond_signal for admitted call after all data filled/freed clear all log channels by pointed number not only first free allocated callToken in ooh323_answer ........ ................ r331200 | may | 2011-08-09 20:36:39 +0400 (Tue, 09 Aug 2011) | 9 lines Setup IP proto version for call in GK mode Added additional check for IP semantics before parse destination by ast_parse_args due to it can parse numeric as IP. (closes issue ASTERISK-18218) Reported by: slesru Patch: ASTERISK-18218.patch ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@331202 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1123,6 +1123,9 @@ static int ooh323_answer(struct ast_channel *ast)
|
||||
ast_channel_unlock(ast);
|
||||
ooAnswerCall(p->callToken);
|
||||
}
|
||||
if (callToken) {
|
||||
free(callToken);
|
||||
}
|
||||
ast_mutex_unlock(&p->lock);
|
||||
}
|
||||
|
||||
|
@@ -1947,8 +1947,11 @@ int ooGkClientHandleAdmissionConfirm
|
||||
ipAddress->ip.data[1],
|
||||
ipAddress->ip.data[2],
|
||||
ipAddress->ip.data[3]);
|
||||
if(strcmp(ip, "0.0.0.0"))
|
||||
if(strcmp(ip, "0.0.0.0")) {
|
||||
/* fix this when gk client will adopt to work with IPv6 */
|
||||
pCallAdmInfo->call->versionIP = 4;
|
||||
strcpy(pCallAdmInfo->call->remoteIP, ip);
|
||||
}
|
||||
pCallAdmInfo->call->remotePort = ipAddress->port;
|
||||
/* Update call model */
|
||||
if(pAdmissionConfirm->callModel.t == T_H225CallModel_direct)
|
||||
@@ -1997,13 +2000,13 @@ int ooGkClientHandleAdmissionConfirm
|
||||
pCallAdmInfo->call->callToken);
|
||||
|
||||
pCallAdmInfo->call->callState = OO_CALL_CONNECTING;
|
||||
ast_cond_signal(&pCallAdmInfo->call->gkWait);
|
||||
/* ooH323CallAdmitted( pCallAdmInfo->call); */
|
||||
|
||||
dListRemove(&pGkClient->callsPendingList, pNode);
|
||||
dListAppend(&pGkClient->ctxt, &pGkClient->callsAdmittedList,
|
||||
pNode->data);
|
||||
memFreePtr(&pGkClient->ctxt, pNode);
|
||||
ast_cond_signal(&pCallAdmInfo->call->gkWait);
|
||||
return OO_OK;
|
||||
break;
|
||||
}
|
||||
|
@@ -284,7 +284,7 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
|
||||
call->callType, call->callToken);
|
||||
|
||||
pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo);
|
||||
if(!pLogicalChannel)
|
||||
do { if(!pLogicalChannel)
|
||||
{
|
||||
OOTRACEWARN4("Logical Channel %d doesn't exist, in clearLogicalChannel."
|
||||
" (%s, %s)\n",
|
||||
@@ -326,6 +326,7 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
|
||||
ooRemoveLogicalChannel(call, channelNo);/* TODO: efficiency - This causes re-search of
|
||||
of logical channel in the list. Can be
|
||||
easily improved.*/
|
||||
} while ((pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo)));
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
|
@@ -3624,7 +3624,8 @@ int ooParseDestination
|
||||
return OO_OK;
|
||||
}
|
||||
|
||||
if (!ast_parse_arg(dest, PARSE_ADDR, &tmpaddr)) {
|
||||
/* parse direct IP dest */
|
||||
if ((strchr(dest, ':') || strchr(dest,'[') || strchr(dest,'.')) && !ast_parse_arg(dest, PARSE_ADDR, &tmpaddr)) {
|
||||
if(strlen(dest)+7>len)
|
||||
{
|
||||
OOTRACEERR1("Error:Insufficient buffer space for parsed ip - "
|
||||
|
Reference in New Issue
Block a user