diff options
author | Alexandr Anikin <may@telecom-service.ru> | 2011-08-09 17:12:27 +0000 |
---|---|---|
committer | Alexandr Anikin <may@telecom-service.ru> | 2011-08-09 17:12:27 +0000 |
commit | 1626b29f6faf09b4655c2695a3cf89afc0c72bda (patch) | |
tree | 7cddee7d820a7327b805b048c66bf98a8f3a37a5 /addons/ooh323c/src | |
parent | c3bd5892a66db3391c55465d16bf121c736beb80 (diff) |
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
Diffstat (limited to 'addons/ooh323c/src')
-rw-r--r-- | addons/ooh323c/src/ooGkClient.c | 7 | ||||
-rw-r--r-- | addons/ooh323c/src/ooLogChan.c | 3 | ||||
-rw-r--r-- | addons/ooh323c/src/ooq931.c | 3 |
3 files changed, 9 insertions, 4 deletions
diff --git a/addons/ooh323c/src/ooGkClient.c b/addons/ooh323c/src/ooGkClient.c index e1c57cb5b..36ef8d0c3 100644 --- a/addons/ooh323c/src/ooGkClient.c +++ b/addons/ooh323c/src/ooGkClient.c @@ -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; } diff --git a/addons/ooh323c/src/ooLogChan.c b/addons/ooh323c/src/ooLogChan.c index 63c8fc6f7..d5e8db178 100644 --- a/addons/ooh323c/src/ooLogChan.c +++ b/addons/ooh323c/src/ooLogChan.c @@ -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; } diff --git a/addons/ooh323c/src/ooq931.c b/addons/ooh323c/src/ooq931.c index 352f85ed2..efef2747c 100644 --- a/addons/ooh323c/src/ooq931.c +++ b/addons/ooh323c/src/ooq931.c @@ -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 - " |