diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2013-03-27 23:57:39 +0000 |
---|---|---|
committer | Dominik Picheta <dominikpicheta@googlemail.com> | 2013-03-27 23:57:39 +0000 |
commit | b21dda385c0cc82fb102ed014f6a343fbea8fd4b (patch) | |
tree | 2a7c2c1f2bc5086a97b317f88efce8bd86259243 /lib | |
parent | 1beaca29bbf5bccb6fdc2f5bf3d17cda616ef87d (diff) | |
download | Nim-b21dda385c0cc82fb102ed014f6a343fbea8fd4b.tar.gz |
Fixed some recvLine deprecation warnings in httpserver module.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/httpserver.nim | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/lib/pure/httpserver.nim b/lib/pure/httpserver.nim index ce816b7d4..61399c2d8 100644 --- a/lib/pure/httpserver.nim +++ b/lib/pure/httpserver.nim @@ -121,7 +121,7 @@ proc executeCgi(client: TSocket, path, query: string, meth: TRequestMethod) = var buf = TaintedString"" var dataAvail = false while dataAvail: - dataAvail = recvLine(client, buf) + dataAvail = recvLine(client, buf) # TODO: This is incorrect. var L = toLower(buf.string) if L.startsWith("content-length:"): var i = len("content-length:") @@ -256,7 +256,7 @@ proc next*(s: var TServer) = s.headers = newStringTable(modeCaseInsensitive) #headers(s.client, "") var data = "" - while not s.client.recvLine(data): nil + s.client.readLine(data) if data == "": # Socket disconnected s.client.close() @@ -264,21 +264,21 @@ proc next*(s: var TServer) = return var header = "" while true: - if s.client.recvLine(header): - if header == "\c\L": break - if header != "": - var i = 0 - var key = "" - var value = "" - i = header.parseUntil(key, ':') - inc(i) # skip : - i += header.skipWhiteSpace(i) - i += header.parseUntil(value, {'\c', '\L'}, i) - s.headers[key] = value - else: - s.client.close() - next(s) - return + s.client.readLine(header) + if header == "\c\L": break + if header != "": + var i = 0 + var key = "" + var value = "" + i = header.parseUntil(key, ':') + inc(i) # skip : + i += header.skipWhiteSpace(i) + i += header.parseUntil(value, {'\c', '\L'}, i) + s.headers[key] = value + else: + s.client.close() + next(s) + return var i = skipWhitespace(data) if skipIgnoreCase(data, "GET") > 0: @@ -382,27 +382,27 @@ proc nextAsync(s: PAsyncHTTPServer) = s.headers = newStringTable(modeCaseInsensitive) #headers(s.client, "") var data = "" - while not s.client.recvLine(data): nil + s.client.readLine(data) if data == "": # Socket disconnected s.client.close() return var header = "" while true: - if s.client.recvLine(header): - if header == "\c\L": break - if header != "": - var i = 0 - var key = "" - var value = "" - i = header.parseUntil(key, ':') - inc(i) # skip : - i += header.skipWhiteSpace(i) - i += header.parseUntil(value, {'\c', '\L'}, i) - s.headers[key] = value - else: - s.client.close() - return + s.client.readLine(header) # TODO: Very inefficient here. Prone to DOS. + if header == "\c\L": break + if header != "": + var i = 0 + var key = "" + var value = "" + i = header.parseUntil(key, ':') + inc(i) # skip : + i += header.skipWhiteSpace(i) + i += header.parseUntil(value, {'\c', '\L'}, i) + s.headers[key] = value + else: + s.client.close() + return var i = skipWhitespace(data) if skipIgnoreCase(data, "GET") > 0: |