From b63be74b165206e39a3576d3ad377c1cc0bf6887 Mon Sep 17 00:00:00 2001
From: William Welliver <william@welliver.org>
Date: Fri, 2 Jun 2017 19:22:10 -0400
Subject: [PATCH] Protocols.HTTP: allow connection reuse when server is a
 hostname.

---
 lib/modules/Protocols.pmod/HTTP.pmod/Query.pike | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
index ec81fef28e..0b3bd4d008 100644
--- a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
+++ b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
@@ -588,6 +588,7 @@ string dns_lookup(string hostname)
        //  Prefer IPv4 addresses
        array(string) v6 = filter(ip, has_value, ":");
        array(string) v4 = ip - v6;
+       
        if (sizeof(v4))
 	 return v4[random(sizeof(v4))];
        return sizeof(v6) && v6[random(sizeof(v6))];
@@ -727,6 +728,9 @@ this_program sync_request(string server, int port, string query,
         this::host, this::port);
     close_connection();	// Close any old connection.
 
+    this::host = server;
+    this::port = port;
+
     string ip = dns_lookup( server );
     if(ip) server = ip; // cheaty, if host doesn't exist
 
@@ -738,9 +742,6 @@ this_program sync_request(string server, int port, string query,
       error("HTTP.Query(): can't open socket; "+strerror(errno)+"\n");
     }
     con = new_con;
-
-    this::host = server;
-    this::port = port;
   }
 
   // prepare the request
-- 
GitLab