Added fix for handling TaintedStrings in streams and httpclient (#12969)

* Added fix for taint mode in streams and httpclient

* Removed taintMode export from system.nim
This commit is contained in:
Sam Wang 2019-12-29 08:37:22 -08:00 • committed by Andreas Rumpf
commit 441cacf70f
2 changed files with 14 additions and 6 deletions

View file

@ -367,7 +367,7 @@ proc addFiles*(p: var MultipartData, xs: openArray[tuple[name, file: string]]):
let (_, fName, ext) = splitFile(file)
if ext.len > 0:
contentType = m.getMimetype(ext[1..ext.high], "")
p.add(name, readFile(file), fName & ext, contentType)
p.add(name, readFile(file).string, fName & ext, contentType)
result = p
proc `[]=`*(p: var MultipartData, name, content: string) =
@ -634,7 +634,7 @@ proc parseChunks(client: HttpClient | AsyncHttpClient): Future[void]
{.multisync.} =
while true:
var chunkSize = 0
var chunkSizeStr = await client.socket.recvLine()
var chunkSizeStr = (await client.socket.recvLine()).string
var i = 0
if chunkSizeStr == "":
httpError("Server terminated connection prematurely")
@ -734,9 +734,9 @@ proc parseResponse(client: HttpClient | AsyncHttpClient,
while true:
linei = 0
when client is HttpClient:
line = await client.socket.recvLine(client.timeout)
line = (await client.socket.recvLine(client.timeout)).string
else:
line = await client.socket.recvLine()
line = (await client.socket.recvLine()).string
if line == "":
# We've been disconnected.
client.close()