This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Ivan.Pozdeev
Recipients Ivan.Pozdeev, giampaolo.rodola, peterpan
Date 2016-12-09.19:09:00
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1481310540.43.0.289514798463.issue25458@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2016-12-09 19:09:00Ivan.Pozdeevsetrecipients: + Ivan.Pozdeev, giampaolo.rodola, peterpan
2016-12-09 19:09:00Ivan.Pozdeevsetmessageid: <1481310540.43.0.289514798463.issue25458@psf.upfronthosting.co.za>
2016-12-09 19:09:00Ivan.Pozdeevlinkissue25458 messages
2016-12-09 19:09:00Ivan.Pozdeevcreate