diff --git a/NEWS b/NEWS index 12a0c3693659b60c7e95551d54fa4cef6c1ed77d_TkVXUw==..e53caa0c2162c57570fafd07aab5209482e03879_TkVXUw== 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,10 @@ v1.8.1 (DD MM YYYY) ------------------- +* #90: Ensure that callbacks handed to `SFTPClient.get()` always fire at least + once, even for zero-length files downloaded. Thanks to Github user `@enB` for + the catch. + v1.8.0 (3rd Oct 2012) --------------------- diff --git a/paramiko/sftp_client.py b/paramiko/sftp_client.py index 12a0c3693659b60c7e95551d54fa4cef6c1ed77d_cGFyYW1pa28vc2Z0cF9jbGllbnQucHk=..e53caa0c2162c57570fafd07aab5209482e03879_cGFyYW1pa28vc2Z0cF9jbGllbnQucHk= 100644 --- a/paramiko/sftp_client.py +++ b/paramiko/sftp_client.py @@ -612,9 +612,7 @@ size = 0 while True: data = fr.read(32768) - if len(data) == 0: - break fl.write(data) size += len(data) if callback is not None: callback(size, file_size) @@ -617,7 +615,9 @@ fl.write(data) size += len(data) if callback is not None: callback(size, file_size) + if len(data) == 0: + break finally: fl.close() finally: