]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup ip based acl parser to be more explicit about what it does and properly detec...
authorHenrik Nordstrom <henrik@henriknordstrom.net>
Wed, 13 Aug 2008 14:49:32 +0000 (16:49 +0200)
committerHenrik Nordstrom <henrik@henriknordstrom.net>
Wed, 13 Aug 2008 14:49:32 +0000 (16:49 +0200)
src/ACLIP.cc

index 999986629ec6f373d257070b9f5e63974db26cb7..28c65348799e87c996e0a4eda0fec505e01f4948 100644 (file)
@@ -372,22 +372,22 @@ acl_ip_data::FactoryParse(const char *t)
 #endif
 
     /* Decode addr1 */
-    if (!*addr1) {
+    if (!*addr1 || !(q->addr1 = addr1)) {
         debugs(28, 0, "aclIpParseIpData: unknown first address in '" << t << "'");
         delete q;
         self_destruct();
         return NULL;
     }
-    else q->addr1 = addr1;
 
     /* Decode addr2 */
-    if (*addr2 && !(q->addr2=addr2) ) {
+    if (!*addr2)
+       q->addr2.SetAnyAddr();
+    else if (!(q->addr2=addr2) ) {
         debugs(28, 0, "aclIpParseIpData: unknown second address in '" << t << "'");
         delete q;
         self_destruct();
         return NULL;
     }
-    else q->addr2 = addr1;
 
     /* Decode mask (NULL or empty means a exact host mask) */
     if (!DecodeMask(mask, q->mask, iptype)) {