Home | History | Annotate | Download | only in data
      1 <testcase>
      2 # Derived from test227
      3 <info>
      4 <keywords>
      5 FTP
      6 post-quote
      7 pre-quote
      8 --libcurl
      9 </keywords>
     10 </info>
     11 # Server-side
     12 <reply>
     13 <data>
     14 data
     15     to
     16       see
     17 that FTP
     18 works
     19   so does it?
     20 </data>
     21 <servercmd>
     22 REPLY EPSV 500 no such command
     23 REPLY FAIL 500 this might not be a failure!
     24 </servercmd>
     25 </reply>
     26 
     27 # Client-side
     28 <client>
     29 <server>
     30 ftp
     31 </server>
     32  <name>
     33 --libcurl for FTP with quote ops
     34  </name>
     35 <setenv>
     36 SSL_CERT_FILE=
     37 </setenv>
     38  <command>
     39 ftp://%HOSTIP:%FTPPORT/1405 -Q "NOOP 1" -Q "+NOOP 2" -Q "-NOOP 3" -Q "*FAIL" -Q "+*FAIL HARD" --libcurl log/test1405.c
     40 </command>
     41 </client>
     42 
     43 # Verify data after the test has been "shot"
     44 <verify>
     45 <protocol>
     46 USER anonymous
     47 PASS ftp (a] example.com
     48 PWD
     49 NOOP 1
     50 FAIL
     51 EPSV
     52 PASV
     53 TYPE I
     54 NOOP 2
     55 FAIL HARD
     56 SIZE 1405
     57 RETR 1405
     58 NOOP 3
     59 QUIT
     60 </protocol>
     61 <file name="log/test1405.c" mode="text">
     62 /********* Sample code generated by the curl command line tool **********
     63  * All curl_easy_setopt() options are documented at:
     64  * https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
     65  ************************************************************************/
     66 #include <curl/curl.h>
     67 
     68 int main(int argc, char *argv[])
     69 {
     70   CURLcode ret;
     71   CURL *hnd;
     72   struct curl_slist *slist1;
     73   struct curl_slist *slist2;
     74   struct curl_slist *slist3;
     75 
     76   slist1 = NULL;
     77   slist1 = curl_slist_append(slist1, "NOOP 1");
     78   slist1 = curl_slist_append(slist1, "*FAIL");
     79   slist2 = NULL;
     80   slist2 = curl_slist_append(slist2, "NOOP 3");
     81   slist3 = NULL;
     82   slist3 = curl_slist_append(slist3, "NOOP 2");
     83   slist3 = curl_slist_append(slist3, "*FAIL HARD");
     84 
     85   hnd = curl_easy_init();
     86   curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L);
     87   curl_easy_setopt(hnd, CURLOPT_URL, "ftp://%HOSTIP:%FTPPORT/1405");
     88   curl_easy_setopt(hnd, CURLOPT_QUOTE, slist1);
     89   curl_easy_setopt(hnd, CURLOPT_POSTQUOTE, slist2);
     90   curl_easy_setopt(hnd, CURLOPT_PREQUOTE, slist3);
     91   curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
     92   curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
     93 
     94   /* Here is a list of options the curl code used that cannot get generated
     95      as source easily. You may select to either not use them or implement
     96      them yourself.
     97 
     98   CURLOPT_WRITEDATA set to a objectpointer
     99   CURLOPT_INTERLEAVEDATA set to a objectpointer
    100   CURLOPT_WRITEFUNCTION set to a functionpointer
    101   CURLOPT_READDATA set to a objectpointer
    102   CURLOPT_READFUNCTION set to a functionpointer
    103   CURLOPT_SEEKDATA set to a objectpointer
    104   CURLOPT_SEEKFUNCTION set to a functionpointer
    105   CURLOPT_ERRORBUFFER set to a objectpointer
    106   CURLOPT_STDERR set to a objectpointer
    107   CURLOPT_DEBUGFUNCTION set to a functionpointer
    108   CURLOPT_DEBUGDATA set to a objectpointer
    109   CURLOPT_HEADERFUNCTION set to a functionpointer
    110   CURLOPT_HEADERDATA set to a objectpointer
    111 
    112   */
    113 
    114   ret = curl_easy_perform(hnd);
    115 
    116   curl_easy_cleanup(hnd);
    117   hnd = NULL;
    118   curl_slist_free_all(slist1);
    119   slist1 = NULL;
    120   curl_slist_free_all(slist2);
    121   slist2 = NULL;
    122   curl_slist_free_all(slist3);
    123   slist3 = NULL;
    124 
    125   return (int)ret;
    126 }
    127 /**** End of sample code ****/
    128 </file>
    129 <stripfile>
    130 # CURLOPT_USERAGENT and CURLOPT_MAXREDIRS requires HTTP protocol
    131 # support, IOW depends on configuration - just ignore these.
    132 $_ = '' if /CURLOPT_USERAGENT/
    133 $_ = '' if /CURLOPT_MAXREDIRS/
    134 # CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
    135 # configurations - just ignore them
    136 $_ = '' if /CURLOPT_SSL_VERIFYPEER/
    137 $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
    138 $_ = '' if /CURLOPT_HTTP_VERSION/
    139 $_ = '' if /CURLOPT_HTTP09_ALLOWED/
    140 </stripfile>
    141 </verify>
    142 </testcase>
    143