On Wed, 7 Jan 2015, Vojtěch Král wrote:

The attached patch fixes the problem in a very simple way: In EPSV handling, the original hostname is simply copied and resolved again when the data connection is being established. It is the same code as if there was a proxy so I simply merged the two branches. I'm not sure it's okay to have the hostname resolved again - let me know if not.

Thanks for this! I first thought it was a bad idea to resolve the name again - and the code was written like that to avoid it - but it struck me that for almost every possible case the name is already resolved and thus in our own DNS cache anyway so it is a decent fix and simplification of the code.

It also made me aware of another bug: the newhost buffer is of limited size so if you try this on a very long host name it'll instead try to resolve a cut off host name and fail in mysterious ways.

I have a slightly larger patch in progress for this, inspired by your version. I'll just make sure it runs the test suite fine before I post it.

(Also, it might be a good idea not to fallback to PASV on IPv6 since PASV is technically illegal on IPv6.)

Indeed. I'll address that too in a follow-up fix.

--

 / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to