From: Jeremy McNamara Date: Thu, 20 May 2004 21:56:12 +0000 (+0000) Subject: backout code optimization, add more explict error reporting X-Git-Tag: 1.0.0-rc1~419 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89dbeddcfce5bc16d7b1a26599dbab746c43c433;p=thirdparty%2Fasterisk.git backout code optimization, add more explict error reporting git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3030 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_h323.c b/channels/chan_h323.c index 1f64e45a48..ec2e0a4c86 100755 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -717,7 +717,7 @@ static struct ast_channel *oh323_new(struct oh323_pvt *i, int state, const char ch->pvt->write = oh323_write; ch->pvt->indicate = oh323_indicate; ch->pvt->fixup = oh323_fixup; -// ch->pvt->bridge = ast_rtp_bridge; + /* ch->pvt->bridge = ast_rtp_bridge; */ /* Set the owner of this channel */ i->owner = ch; @@ -990,11 +990,9 @@ struct rtp_info *create_connection(unsigned call_reference) ast_rtp_get_us(p->rtp, &us); ast_rtp_get_peer(p->rtp, &them); - info->addr = inet_ntoa(us.sin_addr); info->port = ntohs(us.sin_port); - return info; } @@ -1067,23 +1065,25 @@ int setup_incoming_call(call_details_t cd) strncpy(p->exten, cd.call_dest_alias, sizeof(p->exten)-1); } if (ast_strlen_zero(default_context)) { - ast_log(LOG_ERROR, "Call from user '%s' rejected due to no default context\n", p->cd.call_source_aliases); + ast_log(LOG_ERROR, "Call from '%s' rejected due to no default context\n", p->cd.call_source_aliases); return 0; } strncpy(p->context, default_context, sizeof(p->context)-1); ast_log(LOG_DEBUG, "Sending %s to context [%s]\n", cd.call_source_aliases, p->context); } else { if (user->host) { - if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){ - - if(ast_strlen_zero(default_context)) { - ast_log(LOG_ERROR, "Call from user '%s' rejected due to non-matching IP address of '%s'\n", user->name, cd.sourceIp); - return 0; + if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){ + if (ast_strlen_zero(user->context)) { + if (ast_strlen_zero(default_context)) { + ast_log(LOG_ERROR, "Call from '%s' rejected due to non-matching IP address (%s) and no default context\n", user->name, cd.sourceIp); + return 0; + } + strncpy(p->context, default_context, sizeof(p->context)-1); + } else { + strncpy(p->context, user->context, sizeof(p->context)-1); } - - strncpy(p->context, default_context, sizeof(p->context)-1); - sprintf(p->exten,"i"); - + sprintf(p->exten, "i"); + ast_log(LOG_ERROR, "Call from '%s' rejected due to non-matching IP address (%s)s\n", user->name, cd.sourceIp); goto exit; } } @@ -1095,7 +1095,7 @@ int setup_incoming_call(call_details_t cd) } strncpy(p->context, user->context, sizeof(p->context)-1); p->bridge = user->bridge; - p->nat = user->nat; + p->nat = user->nat; if (!ast_strlen_zero(user->callerid)) { strncpy(p->callerid, user->callerid, sizeof(p->callerid) - 1); @@ -1799,7 +1799,6 @@ static int oh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, str ast_rtp_get_peer(rtp, &them); ast_rtp_get_us(rtp, &us); - h323_native_bridge(p->cd.call_token, inet_ntoa(them.sin_addr), mode); return 0; diff --git a/channels/h323/ast_h323.cpp b/channels/h323/ast_h323.cpp index 16a63ac3da..b021e1d90d 100755 --- a/channels/h323/ast_h323.cpp +++ b/channels/h323/ast_h323.cpp @@ -520,6 +520,7 @@ BOOL MyH323Connection::OnReceivedSignalSetup(const H323SignalPDU & setupPDU) PString sourceName; PString sourceAliases; PString destAliases; + PString sourceIp; PIPSocket::Address Ip; WORD sourcePort; char *s, *s1; @@ -555,8 +556,11 @@ BOOL MyH323Connection::OnReceivedSignalSetup(const H323SignalPDU & setupPDU) cd.call_source_name = (const char *)sourceName; GetSignallingChannel()->GetRemoteAddress().GetIpAndPort(Ip, sourcePort); - cd.sourceIp = (const char *)Ip.AsString(); - + sourceIp = Ip.AsString(); + cd.sourceIp = (const char *)sourceIp; + + + /* Notify Asterisk of the request */ int res = on_incoming_call(cd); @@ -695,7 +699,7 @@ H323Channel * MyH323Connection::CreateRealTimeLogicalChannel(const H323Capabilit return NULL; } - GetControlChannel().GetLocalAddress().GetIpAndPort(externalIpAddress, port); + GetControlChannel().GetLocalAddress().GetIpAndPort(externalIpAddress, port); externalPort = info->port; if (h323debug) {