summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2013-03-27 23:57:39 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2013-03-27 23:57:39 +0000
commitb21dda385c0cc82fb102ed014f6a343fbea8fd4b (patch)
tree2a7c2c1f2bc5086a97b317f88efce8bd86259243 /lib
parent1beaca29bbf5bccb6fdc2f5bf3d17cda616ef87d (diff)
downloadNim-b21dda385c0cc82fb102ed014f6a343fbea8fd4b.tar.gz
Fixed some recvLine deprecation warnings in httpserver module.
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/httpserver.nim64
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: