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_HEADER, 1L);
     89   curl_easy_setopt(hnd, CURLOPT_QUOTE, slist1);
     90   curl_easy_setopt(hnd, CURLOPT_POSTQUOTE, slist2);
     91   curl_easy_setopt(hnd, CURLOPT_PREQUOTE, slist3);
     92   curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
     93   curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
     94 
     95   /* Here is a list of options the curl code used that cannot get generated
     96      as source easily. You may select to either not use them or implement
     97      them yourself.
     98 
     99   CURLOPT_WRITEDATA set to a objectpointer
    100   CURLOPT_INTERLEAVEDATA set to a objectpointer
    101   CURLOPT_WRITEFUNCTION set to a functionpointer
    102   CURLOPT_READDATA set to a objectpointer
    103   CURLOPT_READFUNCTION set to a functionpointer
    104   CURLOPT_SEEKDATA set to a objectpointer
    105   CURLOPT_SEEKFUNCTION set to a functionpointer
    106   CURLOPT_ERRORBUFFER set to a objectpointer
    107   CURLOPT_STDERR set to a objectpointer
    108   CURLOPT_DEBUGFUNCTION set to a functionpointer
    109   CURLOPT_DEBUGDATA set to a objectpointer
    110   CURLOPT_HEADERFUNCTION set to a functionpointer
    111   CURLOPT_HEADERDATA set to a objectpointer
    112 
    113   */
    114 
    115   ret = curl_easy_perform(hnd);
    116 
    117   curl_easy_cleanup(hnd);
    118   hnd = NULL;
    119   curl_slist_free_all(slist1);
    120   slist1 = NULL;
    121   curl_slist_free_all(slist2);
    122   slist2 = NULL;
    123   curl_slist_free_all(slist3);
    124   slist3 = NULL;
    125 
    126   return (int)ret;
    127 }
    128 /**** End of sample code ****/
    129 </file>
    130 <stripfile>
    131 # CURLOPT_USERAGENT and CURLOPT_MAXREDIRS requires HTTP protocol
    132 # support, IOW depends on configuration - just ignore these.
    133 $_ = '' if /CURLOPT_USERAGENT/
    134 $_ = '' if /CURLOPT_MAXREDIRS/
    135 # CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
    136 # configurations - just ignore them
    137 $_ = '' if /CURLOPT_SSL_VERIFYPEER/
    138 $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
    139 $_ = '' if /CURLOPT_HTTP_VERSION/
    140 </stripfile>
    141 </verify>
    142 </testcase>
    143