static const char *testcmds[] = { "ABOR" FTP_CRLF, "NOOP" FTP_CRLF, "ALLO" FTP_CRLF, "ALLO 42" FTP_CRLF, "ALLO -42" FTP_CRLF, "SYST" FTP_CRLF, "PORT" FTP_CRLF, "PORT 1,2,3,4,5,6" FTP_CRLF, "PORT -1,-2,-3,-4,-5,-6" FTP_CRLF, "EPRT" FTP_CRLF, "EPRT |1|2.3.4.5|6|" FTP_CRLF, "EPRT |-1|-2.-3.-4.-5|-6|" FTP_CRLF, "PASV" FTP_CRLF, "PASV 42" FTP_CRLF, "EPSV" FTP_CRLF, "EPSV 42" FTP_CRLF, "SPSV" FTP_CRLF, "PWD" FTP_CRLF, "XPWD" FTP_CRLF, "CWD" FTP_CRLF, "CWD /" FTP_CRLF, "XCWD /" FTP_CRLF, "CWD ~/" FTP_CRLF, "XCWD ~/" FTP_CRLF, "CDUP" FTP_CRLF, "XCUP" FTP_CRLF, "RETR" FTP_CRLF, "RETR /" FTP_CRLF, "RETR ." FTP_CRLF, "REST" FTP_CRLF, "REST 0" FTP_CRLF, "REST 42" FTP_CRLF, "REST -42" FTP_CRLF, "DELE" FTP_CRLF, "DELE /" FTP_CRLF, "DELE ~/" FTP_CRLF, "STOR" FTP_CRLF, "STOR /" FTP_CRLF, "STOR ~/" FTP_CRLF, "APPE" FTP_CRLF, "APPE /" FTP_CRLF, "APPE ~/" FTP_CRLF, "STOU" FTP_CRLF, "STOU /" FTP_CRLF, "STOU ~/" FTP_CRLF, "MKD" FTP_CRLF, "MKD /" FTP_CRLF, "MKD ~/" FTP_CRLF, "XMKD" FTP_CRLF, "XMKD /" FTP_CRLF, "RMD" FTP_CRLF, "RMD /" FTP_CRLF, "MMD ~/" FTP_CRLF, "XRMD" FTP_CRLF, "XRMD /" FTP_CRLF, #if 0 "LIST" FTP_CRLF, "LIST ." FTP_CRLF, "LIST /" FTP_CRLF, "LIST ~/" FTP_CRLF, "LIST *" FTP_CRLF, "LIST ./*/*" FTP_CRLF, "LIST -l" FTP_CRLF, "LIST -l *" FTP_CRLF, "LIST" FTP_CRLF, "NLST ." FTP_CRLF, "NLST /" FTP_CRLF, "NLST ~/" FTP_CRLF, "NLST *" FTP_CRLF, "NLST ./*/*" FTP_CRLF, "NLST -l" FTP_CRLF, "NLST -l *" FTP_CRLF, #endif "TYPE" FTP_CRLF, "TYPE ?" FTP_CRLF, "TYPE Z" FTP_CRLF, "TYPE A" FTP_CRLF, "TYPE I" FTP_CRLF, "MODE" FTP_CRLF, "MODE ?" FTP_CRLF, "MODE S" FTP_CRLF, "STRU" FTP_CRLF, "STRU ?" FTP_CRLF, "STRU S" FTP_CRLF, "XDBG" FTP_CRLF, "XDBG 1" FTP_CRLF, "MDTM" FTP_CRLF, "MDTM ." FTP_CRLF, "MDTM /" FTP_CRLF, "MDTM ~/" FTP_CRLF, "MDTM *" FTP_CRLF, "MDTM ./*/*" FTP_CRLF, "MDTM __abc__" FTP_CRLF, "SIZE" FTP_CRLF, "SIZE ." FTP_CRLF, "SIZE /" FTP_CRLF, "SIZE ~/" FTP_CRLF, "SIZE *" FTP_CRLF, "SIZE ./*/*" FTP_CRLF, "SIZE __abc__" FTP_CRLF, "RNFR" FTP_CRLF, "RNFR ." FTP_CRLF, "RNFR ~/" FTP_CRLF, "RNFR *" FTP_CRLF, "RNFR ./*/*" FTP_CRLF, "RNFR __abc__" FTP_CRLF, "RNFR /" FTP_CRLF, "RNTO" FTP_CRLF, "RNTO ." FTP_CRLF, "RNTO ~/" FTP_CRLF, "RNTO *" FTP_CRLF, "RNTO ./*/*" FTP_CRLF, "RNTO __abc__" FTP_CRLF, "RNTO /" FTP_CRLF, "STAT" FTP_CRLF, "STAT ." FTP_CRLF, "STAT ~/" FTP_CRLF, "STAT *" FTP_CRLF, "STAT ./*/*" FTP_CRLF, "STAT __abc__" FTP_CRLF, "STAT /" FTP_CRLF, "MLST" FTP_CRLF, "MLST ." FTP_CRLF, "MLST ~/" FTP_CRLF, "MLST *" FTP_CRLF, "MLST ./*/*" FTP_CRLF, "MLST __abc__" FTP_CRLF, "MLST /" FTP_CRLF, #if 0 "MLSD" FTP_CRLF, "MLSD ." FTP_CRLF, "MLSD ~/" FTP_CRLF, "MLSD *" FTP_CRLF, "MLSD ./*/*" FTP_CRLF, "MLSD __abc__" FTP_CRLF, "MLSD /" FTP_CRLF, #endif "FEAT" FTP_CRLF, "FEAT 42" FTP_CRLF, "SITE" FTP_CRLF, "SITE HELP" FTP_CRLF, "SITE HELP RETR" FTP_CRLF, "SITE IDLE" FTP_CRLF, "SITE IDLE -1" FTP_CRLF, "SITE IDLE 42" FTP_CRLF, "SITE IDLE 424242" FTP_CRLF, "SITE CHMOD" FTP_CRLF, "SITE CHMOD -1" FTP_CRLF, "SITE CHMOD 0" FTP_CRLF, "SITE CHMOD 42" FTP_CRLF, "SITE CHMOD __abc__" FTP_CRLF, "SITE CHMOD -1 __abc__" FTP_CRLF, "SITE CHMOD 0 __abc__" FTP_CRLF, "SITE CHMOD 42 __abc__" FTP_CRLF, "SITE CHMOD *" FTP_CRLF, "SITE CHMOD -1 *" FTP_CRLF, "SITE CHMOD 0 *" FTP_CRLF, "SITE CHMOD 42 *" FTP_CRLF, "SITE CHMOD -R *" FTP_CRLF, "SITE CHMOD -R -1 *" FTP_CRLF, "SITE CHMOD -R 0 *" FTP_CRLF, "SITE CHMOD -R 42 ." FTP_CRLF, "SITE CHMOD -R ." FTP_CRLF, "SITE CHMOD -R -1 ." FTP_CRLF, "SITE CHMOD -R 0 ." FTP_CRLF, "SITE CHMOD -R 42 ." FTP_CRLF, "HELP RETR" FTP_CRLF, "ESTP" FTP_CRLF, "ESTA" FTP_CRLF, NULL };