Browse Source

get_proxy() is using "http://" which fools get_proxies_by_url() into thinking
the empty servername matches the unspecified (and empty) directhost
(when no directhosts are specified) which messes up the proxy code.
Fixed.

Joseph Lee 22 years ago
parent
commit
499d5a095f
1 changed files with 6 additions and 4 deletions
  1. 6 4
      panda/src/downloader/httpClient.cxx

+ 6 - 4
panda/src/downloader/httpClient.cxx

@@ -449,11 +449,13 @@ get_proxies_for_url(const URLSpec &url, pvector<URLSpec> &proxies) const {
   // First, check if the hostname matches any listed in direct_hosts.
   string hostname = url.get_server();
 
-  DirectHosts::const_iterator si;
-  for (si = _direct_hosts.begin(); si != _direct_hosts.end(); ++si) {
-    if ((*si).matches(hostname)) {
+  if (!hostname.empty()) { // skip if hostname is just an empty 'http://' scheme
+    DirectHosts::const_iterator si;
+    for (si = _direct_hosts.begin(); si != _direct_hosts.end(); ++si) {
+      if ((*si).matches(hostname)) {
       // It matches, so don't use any proxies.
-      return;
+        return;
+      }
     }
   }