From d792937686dac6a0a5217a589d8a2ba3ec083f51 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 22 Aug 2006 21:21:01 +0000 Subject: Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP code when doing pure ipv6 EPRT connections. --- CHANGES | 4 ++++ RELEASE-NOTES | 4 +++- lib/ftp.c | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 470039344..ceffd3609 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,10 @@ Changelog +Daniel (22 August 2006) +- Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP + code when doing pure ipv6 EPRT connections. + Daniel (19 August 2006) - Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE command on subsequent requests on a re-used connection unless it has to. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 104296537..7b74752db 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -16,6 +16,7 @@ This release includes the following changes: This release includes the following bugfixes: + p (FTP) EPRT transfers with IPv6 didn't work properly o (FTP) SINGLECWD mode and using files in the root dir o (HTTP) Expect: header disabling work better o (HTTP) "Expect: 100-continue" disable on second POST on re-used connection @@ -32,6 +33,7 @@ New curl mirrors: This release would not have looked like this without help, code, reports and advice from friends like these: - Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs + Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs, + Peter Sylvester Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/ftp.c b/lib/ftp.c index 62c941e5d..bfa34bae8 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -215,8 +215,12 @@ static CURLcode AllowServerConnect(struct connectdata *conn) /* we have received data here */ { curl_socket_t s = CURL_SOCKET_BAD; - socklen_t size = (socklen_t) sizeof(struct sockaddr_in); +#ifdef ENABLE_IPV6 + struct Curl_sockaddr_storage add; +#else struct sockaddr_in add; +#endif + socklen_t size = (socklen_t) sizeof(add); if(0 == getsockname(sock, (struct sockaddr *) &add, &size)) s=accept(sock, (struct sockaddr *) &add, &size); -- cgit v1.2.3