http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6a56fd27/proxy/http/HttpSM.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 1de4acc..a978548 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -3935,14 +3935,18 @@ HttpSM::do_hostdb_lookup()
   } else { /* we aren't using SRV stuff... */
     DebugSM("http_seq", "[HttpSM::do_hostdb_lookup] Doing DNS Lookup");
 
+    // If there is not a current server, we must be looking up the origin
+    //  server at the beginning of the transaction
+    int server_port = t_state.current.server ? t_state.current.server->port : 
t_state.server_info.port;
+
     if (t_state.api_txn_dns_timeout_value != -1) {
       DebugSM("http_timeout", "beginning DNS lookup. allowing %d mseconds for 
DNS lookup", t_state.api_txn_dns_timeout_value);
     }
 
     HostDBProcessor::Options opt;
-
-    opt.flags = (t_state.cache_info.directives.does_client_permit_dns_storing) 
? HostDBProcessor::HOSTDB_DO_NOT_FORCE_DNS :
-                                                                               
  HostDBProcessor::HOSTDB_FORCE_DNS_RELOAD;
+    opt.port = server_port;
+opt.flags = (t_state.cache_info.directives.does_client_permit_dns_storing) ? 
HostDBProcessor::HOSTDB_DO_NOT_FORCE_DNS :
+                                                                             
HostDBProcessor::HOSTDB_FORCE_DNS_RELOAD;
     opt.timeout = (t_state.api_txn_dns_timeout_value != -1) ? 
t_state.api_txn_dns_timeout_value : 0;
     opt.host_res_style = ua_session->host_res_style;
 

Reply via email to