mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 11:42:33 +00:00
Previously, the 4th character of `result` was checked for `'-'` every time, instead of each new line. Also made it work for taint mode.
This commit is contained in:
@@ -131,12 +131,13 @@ type
|
||||
const multiLineLimit = 10000
|
||||
|
||||
proc expectReply(ftp: AsyncFtpClient): Future[TaintedString] {.async.} =
|
||||
result = await ftp.csock.recvLine()
|
||||
var line = await ftp.csock.recvLine()
|
||||
result = TaintedString(line)
|
||||
var count = 0
|
||||
while result[3] == '-':
|
||||
while line[3] == '-':
|
||||
## Multi-line reply.
|
||||
let line = await ftp.csock.recvLine()
|
||||
result.add("\n" & line)
|
||||
line = await ftp.csock.recvLine()
|
||||
string(result).add("\n" & line)
|
||||
count.inc()
|
||||
if count >= multiLineLimit:
|
||||
raise newException(ReplyError, "Reached maximum multi-line reply count.")
|
||||
@@ -178,7 +179,7 @@ proc connect*(ftp: AsyncFtpClient) {.async.} =
|
||||
await ftp.csock.connect(ftp.address, ftp.port)
|
||||
|
||||
var reply = await ftp.expectReply()
|
||||
if reply.startsWith("120"):
|
||||
if string(reply).startsWith("120"):
|
||||
# 120 Service ready in nnn minutes.
|
||||
# We wait until we receive 220.
|
||||
reply = await ftp.expectReply()
|
||||
|
||||
Reference in New Issue
Block a user