]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
correct use of host field.
authorAmos Jeffries <squid3@treenet.co.nz>
Sun, 27 Jun 2010 13:01:22 +0000 (01:01 +1200)
committerAmos Jeffries <squid3@treenet.co.nz>
Sun, 27 Jun 2010 13:01:22 +0000 (01:01 +1200)
skip IPcache marking if host is empty, it is not always set.

src/comm/ConnOpener.cc

index 06cf7a3b9ccf383a8e58983862db2d2a1ece928f..62b82e6b85d6b5568525cfea1f6544397f73b491 100644 (file)
@@ -29,11 +29,13 @@ ConnOpener::~ConnOpener()
 void
 ConnOpener::setHost(const char * new_host)
 {
-    if (host == NULL) {
-        safe_free(host); // unset and erase if already set.
-    } else {
+    // unset and erase if already set.
+    if (host != NULL)
+        safe_free(host);
+
+    // set the new one if given.
+    if (new_host != NULL)
         host = xstrdup(new_host);
-    }
 }
 
 const char *
@@ -118,14 +120,16 @@ ConnOpener::start()
         fd_table[solo->fd].flags.open = 1;
         solo->local.SetPort(comm_local_port(solo->fd));
 
-        ipcacheMarkGoodAddr(host, solo->remote);
+        if (host != NULL)
+            ipcacheMarkGoodAddr(host, solo->remote);
         callCallback(COMM_OK, 0);
         break;
 
     default:
         debugs(5, 5, HERE "FD " << solo->fd << ": * - try again");
         fail_retries++;
-        ipcacheMarkBadAddr(host, solo->remote);
+        if (host != NULL)
+            ipcacheMarkBadAddr(host, solo->remote);
 #if USE_ICMP
         if (Config.onoff.test_reachability)
             netdbDeleteAddrNetwork(solo->remote);