diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 91b8c18ebc..1f774ce4e8 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -106,7 +106,7 @@ test854 test855 test856 test857 test858 test859 test860 test861 test862 \ test863 test864 test865 test866 test867 test868 test869 test870 test871 \ test872 test873 test874 test875 test876 test877 test878 test879 test880 \ test881 test882 test883 test884 test885 test886 test887 test888 test889 \ -test890 test891 test892 test893 test894 test895 test896 \ +test890 test891 test892 test893 test894 test895 test896 test897 \ \ test900 test901 test902 test903 test904 test905 test906 test907 test908 \ test909 test910 test911 test912 test913 test914 test915 test916 test917 \ diff --git a/tests/data/test897 b/tests/data/test897 new file mode 100644 index 0000000000..1a537ea60b --- /dev/null +++ b/tests/data/test897 @@ -0,0 +1,70 @@ + + + +IMAP +Clear Text +FETCH + + + +# +# Server-side + + +body + +-- + yours sincerely + + +POSTFETCH extra stuff sent in the envelope after the body + + + +# +# Client-side + + +imap + + +IMAP and envelope meta data after body transfer + + +'imap://%HOSTIP:%IMAPPORT/%TESTNUMBER/;MAILINDEX=123/;SECTION=1' -u user:secret -D log/head-%TESTNUMBER + + + +# +# Verify data after the test has been "shot" + + +A001 CAPABILITY +A002 LOGIN user secret +A003 SELECT %TESTNUMBER +A004 FETCH 123 BODY[1] +A005 LOGOUT + + + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ {| |___ + \___|\___/|_| \_\_____| +* OK curl IMAP server ready to serve +A001 BAD Command +A002 OK LOGIN completed +* 172 EXISTS +* 1 RECENT +* OK [UNSEEN 12] Message 12 is first unseen +* OK [UIDVALIDITY 3857529045] UIDs valid +* OK [UIDNEXT 4392] Predicted next UID +* FLAGS (\Answered \Flagged \Deleted \Seen \Draft) +* OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited +A003 OK [READ-WRITE] SELECT completed +* 123 FETCH (BODY[1] {31} +extra stuff sent in the envelope after the body) +A004 OK FETCH completed + + + diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index a3819508a9..b74ac5bb74 100755 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -146,6 +146,7 @@ my $nodataconn425; # set if ftp srvr doesn't establish data ch and replies 425 my $nodataconn421; # set if ftp srvr doesn't establish data ch and replies 421 my $nodataconn150; # set if ftp srvr doesn't establish data ch and replies 150 my $storeresp; +my $postfetch; my @capabilities; # set if server supports capability commands my @auth_mechs; # set if server supports authentication commands my %fulltextreply; # @@ -1232,7 +1233,8 @@ sub FETCH_imap { sendcontrol $d; } - sendcontrol ")\r\n"; + # Set the custom extra header content with POSTFETCH + sendcontrol "$postfetch)\r\n"; sendcontrol "$cmdid OK FETCH completed\r\n"; } @@ -2798,6 +2800,7 @@ sub customize { $nodataconn421 = 0; # default is to not send 421 without data channel $nodataconn150 = 0; # default is to not send 150 without data channel $storeresp = ""; # send as ultimate STOR response + $postfetch = ""; # send as header after a FETCH response @capabilities = (); # default is to not support capability commands @auth_mechs = (); # default is to not support authentication commands %fulltextreply = ();# @@ -2840,6 +2843,10 @@ sub customize { $delayreply{$1}=$2; logmsg "FTPD: delay reply for $1 with $2 seconds\n"; } + elsif($_ =~ /POSTFETCH (.*)/) { + logmsg "FTPD: read POSTFETCH header data\n"; + $postfetch = $1; + } elsif($_ =~ /SLOWDOWN/) { $ctrldelay=1; $datadelay=1;