From: Alexandr Anikin Date: Tue, 9 Aug 2011 16:36:39 +0000 (+0000) Subject: Setup IP proto version for call in GK mode X-Git-Tag: 10.0.0-beta2~146 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c646db5742f17691d5af7b045f7122942098271;p=thirdparty%2Fasterisk.git 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/branches/10@331200 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/addons/ooh323c/src/ooGkClient.c b/addons/ooh323c/src/ooGkClient.c index 7252195b57..36ef8d0c3b 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) diff --git a/addons/ooh323c/src/ooq931.c b/addons/ooh323c/src/ooq931.c index 352f85ed2c..efef2747c9 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 - "