summary refs log tree commit diff stats
path: root/lib/pure/httpclient.nim
diff options
context:
space:
mode:
authorOscar Campbell <oscar@campbell.nu>2015-06-10 19:08:45 +0200
committerOscar Campbell <oscar@campbell.nu>2015-06-10 19:08:45 +0200
commitb3eb8ab81c325d21dd234e945224b0e14a1b88f4 (patch)
tree58217a7430f79b3215b3f44fd89eabb9ecc5422d /lib/pure/httpclient.nim
parentf0b6c03b2686aca85670cd35f84c6b0bdc3ff23d (diff)
parentd892887c937a1e07418afb620098d4cd98275b2a (diff)
downloadNim-b3eb8ab81c325d21dd234e945224b0e14a1b88f4.tar.gz
Merge branch 'devel' into bugfix-2858-testament-sources-system-wide
Diffstat (limited to 'lib/pure/httpclient.nim')
-rw-r--r--lib/pure/httpclient.nim6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim
index e083d44ea..6a2913713 100644
--- a/lib/pure/httpclient.nim
+++ b/lib/pure/httpclient.nim
@@ -569,7 +569,7 @@ proc downloadFile*(url: string, outputFilename: string,
     fileError("Unable to open file")
 
 proc generateHeaders(r: Uri, httpMethod: string,
-                     headers: StringTableRef): string =
+                     headers: StringTableRef, body: string): string =
   # TODO: Use this in the blocking HttpClient once it supports proxies.
   result = substr(httpMethod, len("http"))
   # TODO: Proxies
@@ -582,6 +582,8 @@ proc generateHeaders(r: Uri, httpMethod: string,
 
   add(result, "Host: " & r.hostname & "\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")
   for key, val in headers:
     add(result, key & ": " & val & "\c\L")
 
@@ -786,7 +788,7 @@ proc request*(client: AsyncHttpClient, url: string, httpMethod: string,
   if not client.headers.hasKey("user-agent") and client.userAgent != "":
     client.headers["User-Agent"] = client.userAgent
 
-  var headers = generateHeaders(r, $httpMethod, client.headers)
+  var headers = generateHeaders(r, $httpMethod, client.headers, body)
 
   await client.socket.send(headers)
   if body != "":