diff options
author | perter lee <liyang1025@gmail.com> | 2020-01-13 17:16:19 +0800 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2020-01-13 10:16:19 +0100 |
commit | 1f27a2f8ab696bbbfcf4d8f0bf2748dfc1cc86ad (patch) | |
tree | 28a3ed0dfa60333c79ac942ae710e25b08105164 /lib/pure | |
parent | ee1563ef33795b5ccac37921e3e4771c47c5d3fa (diff) | |
download | Nim-1f27a2f8ab696bbbfcf4d8f0bf2748dfc1cc86ad.tar.gz |
fix the ftp store function read the local file bug (#13108) [backport]
* Update asyncftpclient.nim When use newStringOfCap function not have assign memory for the string data,so if use this address the fault is rasise. * complelete the bugfix
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/asyncftpclient.nim | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/pure/asyncftpclient.nim b/lib/pure/asyncftpclient.nim index ce31542b1..c1cfc6cc6 100644 --- a/lib/pure/asyncftpclient.nim +++ b/lib/pure/asyncftpclient.nim @@ -351,15 +351,13 @@ proc doUpload(ftp: AsyncFtpClient, file: File, assert ftp.dsockConnected let total = file.getFileSize() - var data = newStringOfCap(4000) + var data = newString(4000) var progress = 0 var progressInSecond = 0 var countdownFut = sleepAsync(1000) var sendFut: Future[void] = nil while ftp.dsockConnected: - if sendFut == nil or sendFut.finished: - progress.inc(data.len) - progressInSecond.inc(data.len) + if sendFut == nil or sendFut.finished: # TODO: Async file reading. let len = file.readBuffer(addr(data[0]), 4000) setLen(data, len) @@ -370,6 +368,8 @@ proc doUpload(ftp: AsyncFtpClient, file: File, assertReply(await(ftp.expectReply()), "226") else: + progress.inc(len) + progressInSecond.inc(len) sendFut = ftp.dsock.send(data) if countdownFut.finished: |