[svn-commits] mmichelson: branch 1.6.2 r279784 - /branches/1.6.2/channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Jul 27 10:13:29 CDT 2010


Author: mmichelson
Date: Tue Jul 27 10:13:24 2010
New Revision: 279784

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=279784
Log:
Fix bad behavior of dynamic_exclude_static option in sip.conf.

We were attempting to create a contactdeny rule based on the peer's
IP address before the peer's IP address had been set. By moving the
processing further down in the function, we can ensure stuff works
as we expect for it to.

(closes issue #17717)
Reported by: mmichelson
Patches: 
      17717.patch uploaded by mmichelson (license 60)
Tested by: DennisD


Modified:
    branches/1.6.2/channels/chan_sip.c

Modified: branches/1.6.2/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/channels/chan_sip.c?view=diff&rev=279784&r1=279783&r2=279784
==============================================================================
--- branches/1.6.2/channels/chan_sip.c (original)
+++ branches/1.6.2/channels/chan_sip.c Tue Jul 27 10:13:24 2010
@@ -24004,13 +24004,6 @@
 					peer->addr.sin_port = 0;
 					peer->host_dynamic = FALSE;
 					srvlookup = v->value;
-					if (global_dynamic_exclude_static) {
-						int err = 0;
-						global_contact_ha = ast_append_ha("deny", (char *)ast_inet_ntoa(peer->addr.sin_addr), global_contact_ha, &err);
-						if (err) {
-							ast_log(LOG_ERROR, "Bad ACL entry in configuration line %d : %s\n", v->lineno, v->value);
-						}
-					}
 				}
 			} else if (!strcasecmp(v->name, "defaultip")) {
 				if (!ast_strlen_zero(v->value) && ast_get_ip(&peer->defaddr, v->value)) {
@@ -24316,6 +24309,13 @@
 		}
 
 		ast_string_field_set(peer, tohost, srvlookup);
+		if (global_dynamic_exclude_static) {
+			int err = 0;
+			global_contact_ha = ast_append_ha("deny", (char *)ast_inet_ntoa(peer->addr.sin_addr), global_contact_ha, &err);
+			if (err) {
+				ast_log(LOG_ERROR, "Bad ACL entry in configuration line %d : %s\n", v->lineno, v->value);
+			}
+		}
 	}
 
 	if (!peer->addr.sin_port) {




More information about the svn-commits mailing list