Commit 14424f70 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Modified the FTP server to use the new 'sockfilt' program to do all the socket

level stuff. The FTP server communicates with sockfilt using perl's open2().
This enables easier IPv6 support and hopefully FTP-SSL support in the future.
Added four test cases for FTP-ipv6.
parent 6063dff8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -26,7 +26,8 @@ PDFPAGES = testcurl.pdf runtests.pdf

EXTRA_DIST = ftpserver.pl httpserver.pl httpsserver.pl runtests.pl	\
 ftpsserver.pl getpart.pm FILEFORMAT README stunnel.pem memanalyze.pl	\
 testcurl.pl valgrind.pm testcurl.1 runtests.1 $(HTMLPAGES) $(PDFPAGES)
 testcurl.pl valgrind.pm testcurl.1 runtests.1 $(HTMLPAGES) $(PDFPAGES) \
 ftp.pm

SUBDIRS = data server libtest

+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
 test199 test225 test226 test227 test230 test231 test232 test228	\
 test229 test233 test234 test235 test236 test520 test237 test238 \
 test239 test243 test245 test246 test247 test248 test249 test250 \
 test251
 test251 test252 test253 test254 test255

# The following tests have been removed from the dist since they no longer
# work. We need to fix the test suite's FTPS server first, then bring them
+4 −2
Original line number Diff line number Diff line
@@ -26,8 +26,8 @@ ftp://%HOSTIP:%FTPPORT/a/path/103 -P -
# Verify data after the test has been "shot"
<verify>
<strippart>
s/^LPRT.*[\n]//
s/^EPRT.*[\n]//
s/^LPRT.*/LPRT/
s/^EPRT.*/EPRT/
s/^(PORT 127,0,0,1,)([0-9,]+)/$1/
</strippart>
<protocol>
@@ -36,6 +36,8 @@ PASS curl_by_daniel@haxx.se
PWD
CWD a
CWD path
EPRT
LPRT
PORT 127,0,0,1,
TYPE I
SIZE 103

tests/data/test252

0 → 100644
+57 −0
Original line number Diff line number Diff line
<info>
<keywords>
FTP-ipv6
EPSV
</keywords>
</info>
#
# Server-side
<reply>
<data>
total 20
drwxr-xr-x   8 98       98           512 Oct 22 13:06 .
drwxr-xr-x   8 98       98           512 Oct 22 13:06 ..
drwxr-xr-x   2 98       98           512 May  2  1996 .NeXT
-r--r--r--   1 0        1             35 Jul 16  1996 README
lrwxrwxrwx   1 0        1              7 Dec  9  1999 bin -> usr/bin
dr-xr-xr-x   2 0        1            512 Oct  1  1997 dev
drwxrwxrwx   2 98       98           512 May 29 16:04 download.html
dr-xr-xr-x   2 0        1            512 Nov 30  1995 etc
drwxrwxrwx   2 98       1            512 Oct 30 14:33 pub
dr-xr-xr-x   5 0        1            512 Oct  1  1997 usr
</data>
</reply>

#
# Client-side
<client>
<features>
ipv6
</features>
<server>
ftp-ipv6
</server>
 <name>
FTP IPv6 dir list PASV
 </name>
 <command>
-g "ftp://%HOST6IP:%FTP6PORT/"
</command>
</client>

#
# Verify data after the test has been "shot"
<verify>
<strip>
filter off really nothing
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>

tests/data/test253

0 → 100644
+57 −0
Original line number Diff line number Diff line
<info>
<keywords>
FTP-ipv6
EPRT
</keywords>
</info>
#
# Server-side
<reply>
<data>
total 20
drwxr-xr-x   8 98       98           512 Oct 22 13:06 .
drwxr-xr-x   8 98       98           512 Oct 22 13:06 ..
drwxr-xr-x   2 98       98           512 May  2  1996 .NeXT
-r--r--r--   1 0        1             35 Jul 16  1996 README
lrwxrwxrwx   1 0        1              7 Dec  9  1999 bin -> usr/bin
dr-xr-xr-x   2 0        1            512 Oct  1  1997 dev
drwxrwxrwx   2 98       98           512 May 29 16:04 download.html
dr-xr-xr-x   2 0        1            512 Nov 30  1995 etc
drwxrwxrwx   2 98       1            512 Oct 30 14:33 pub
dr-xr-xr-x   5 0        1            512 Oct  1  1997 usr
</data>
</reply>

#
# Client-side
<client>
<features>
ipv6
</features>
<server>
ftp-ipv6
</server>
 <name>
FTP IPv6 dir list with EPRT
 </name>
 <command>
-g "ftp://%HOST6IP:%FTP6PORT/" -P -
</command>
</client>

#
# Verify data after the test has been "shot"
<verify>
<strippart>
s/^(EPRT \|2\|::1\|)(.*)/$1/
</strippart>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPRT |2|::1|
TYPE A
LIST
QUIT
</protocol>
</verify>
Loading