HTTP chunking should work now
This commit is contained in:
parent
c7bd3f94cd
commit
bdcf1ec1f7
2 changed files with 8 additions and 13 deletions
|
|
@ -68,7 +68,6 @@ proc parseChunks(d: var string, start: int, s: TSocket): string =
|
||||||
while true:
|
while true:
|
||||||
var chunkSize = 0
|
var chunkSize = 0
|
||||||
var digitFound = false
|
var digitFound = false
|
||||||
echo "number: ", copy(d, i, i + 10)
|
|
||||||
while true:
|
while true:
|
||||||
case d[i]
|
case d[i]
|
||||||
of '0'..'9':
|
of '0'..'9':
|
||||||
|
|
@ -85,12 +84,8 @@ proc parseChunks(d: var string, start: int, s: TSocket): string =
|
||||||
i = -1
|
i = -1
|
||||||
else: break
|
else: break
|
||||||
inc(i)
|
inc(i)
|
||||||
|
if not digitFound: httpError("Chunksize expected")
|
||||||
echo "chunksize: ", chunkSize
|
if chunkSize <= 0: break
|
||||||
if chunkSize <= 0:
|
|
||||||
echo copy(d, i)
|
|
||||||
assert digitFound
|
|
||||||
break
|
|
||||||
while charAt(d, i, s) notin {'\C', '\L', '\0'}: inc(i)
|
while charAt(d, i, s) notin {'\C', '\L', '\0'}: inc(i)
|
||||||
if charAt(d, i, s) == '\C': inc(i)
|
if charAt(d, i, s) == '\C': inc(i)
|
||||||
if charAt(d, i, s) == '\L': inc(i)
|
if charAt(d, i, s) == '\L': inc(i)
|
||||||
|
|
@ -99,7 +94,7 @@ proc parseChunks(d: var string, start: int, s: TSocket): string =
|
||||||
var x = copy(d, i, i+chunkSize-1)
|
var x = copy(d, i, i+chunkSize-1)
|
||||||
var size = x.len
|
var size = x.len
|
||||||
result.add(x)
|
result.add(x)
|
||||||
|
inc(i, size)
|
||||||
if size < chunkSize:
|
if size < chunkSize:
|
||||||
# read in the rest:
|
# read in the rest:
|
||||||
var missing = chunkSize - size
|
var missing = chunkSize - size
|
||||||
|
|
@ -109,7 +104,6 @@ proc parseChunks(d: var string, start: int, s: TSocket): string =
|
||||||
var bytesRead = s.recv(addr(result[L]), missing)
|
var bytesRead = s.recv(addr(result[L]), missing)
|
||||||
inc(L, bytesRead)
|
inc(L, bytesRead)
|
||||||
dec(missing, bytesRead)
|
dec(missing, bytesRead)
|
||||||
|
|
||||||
# next chunk:
|
# next chunk:
|
||||||
d = s.recv()
|
d = s.recv()
|
||||||
i = 0
|
i = 0
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ Additions
|
||||||
---------
|
---------
|
||||||
- Added ``system.cstringArrayToSeq``.
|
- Added ``system.cstringArrayToSeq``.
|
||||||
- Added ``system.lines(f: TFile)`` iterator.
|
- Added ``system.lines(f: TFile)`` iterator.
|
||||||
|
- Added ``system.delete``, ``system.del`` and ``system.insert`` for sequences.
|
||||||
- Added ``cgi.decodeData(data: string): tuple[key, value: string]``.
|
- Added ``cgi.decodeData(data: string): tuple[key, value: string]``.
|
||||||
- Added ``ropes`` module.
|
- Added ``ropes`` module.
|
||||||
- Added ``sockets`` module.
|
- Added ``sockets`` module.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue