Ivan Pozdeev added the comment:

The solution for the OP's problem is:

* after closing the data socket (whether it was returned by 
`transfercmd()'/`ntransfercmd()' or opened manually), an additional 
`FTP.getresp()'/`FTP.voidresp()' is required to process the 226 response.

The built-in `retrbinary()' and `retrlines()' do implement this logic.

But the documentation doesn't mention this requirement in 
`transfercmd()'/ntransfercmd()` entries (and `getresp()'/`voidresp()' are 
undocumented outright).

`urllib' authors have fallen into this same trap: they use `transfercmd' 
directly but don't call `voidresp()' afterwards.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25458>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to