summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDoran <samanthadoran3@gmail.com>2015-09-04 02:30:17 -0400
committerDoran <samanthadoran3@gmail.com>2015-09-04 16:10:32 -0400
commit619ab0bcf0d4d56a86af88715117aed472edfe70 (patch)
tree91478bb12ff5093594d1dda771fa937c4d57008a
parent4fefdb4d916447e5378e8ac97d6cc6c20d4667b7 (diff)
downloadNim-619ab0bcf0d4d56a86af88715117aed472edfe70.tar.gz
Include port in host header as expected
-rw-r--r--lib/pure/httpclient.nim12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim
index 98687359b..30b838b7e 100644
--- a/lib/pure/httpclient.nim
+++ b/lib/pure/httpclient.nim
@@ -402,7 +402,11 @@ proc request*(url: string, httpMethod: string, extraHeaders = "",
 
   headers.add(" HTTP/1.1\c\L")
 
-  add(headers, "Host: " & parseUri(url).hostname & "\c\L")
+  if r.port == "":
+    add(headers, "Host: " & r.hostname & "\c\L")
+  else:
+    add(headers, "Host: " & r.hostname & ":" & r.port & "\c\L")
+
   if userAgent != "":
     add(headers, "User-Agent: " & userAgent & "\c\L")
   if proxy != nil and proxy.auth != "":
@@ -580,7 +584,11 @@ proc generateHeaders(r: Uri, httpMethod: string,
     result.add("?" & r.query)
   result.add(" HTTP/1.1\c\L")
 
-  add(result, "Host: " & r.hostname & "\c\L")
+  if r.port == "":
+    add(result, "Host: " & r.hostname & "\c\L")
+  else:
+    add(result, "Host: " & r.hostname & ":" & r.port & "\c\L")
+
   add(result, "Connection: Keep-Alive\c\L")
   if body.len > 0 and not headers.hasKey("Content-Length"):
     add(result, "Content-Length: " & $body.len & "\c\L")