|
|
|
@ -47,60 +47,63 @@ typedef struct FTPThreadCtx_ {
|
|
|
|
|
|
|
|
|
|
static MpmCtx *ftp_mpm_ctx = NULL;
|
|
|
|
|
|
|
|
|
|
// clang-format off
|
|
|
|
|
const FtpCommand FtpCommands[FTP_COMMAND_MAX + 1] = {
|
|
|
|
|
/* Parsed and handled */
|
|
|
|
|
{ FTP_COMMAND_PORT, "PORT", 4},
|
|
|
|
|
{ FTP_COMMAND_EPRT, "EPRT", 4},
|
|
|
|
|
{ FTP_COMMAND_AUTH_TLS, "AUTH TLS", 8},
|
|
|
|
|
{ FTP_COMMAND_PASV, "PASV", 4},
|
|
|
|
|
{ FTP_COMMAND_RETR, "RETR", 4},
|
|
|
|
|
{ FTP_COMMAND_EPSV, "EPSV", 4},
|
|
|
|
|
{ FTP_COMMAND_STOR, "STOR", 4},
|
|
|
|
|
{ "PORT", FTP_COMMAND_PORT, 4 },
|
|
|
|
|
{ "EPRT", FTP_COMMAND_EPRT, 4 },
|
|
|
|
|
{ "AUTH TLS", FTP_COMMAND_AUTH_TLS, 8 },
|
|
|
|
|
{ "PASV", FTP_COMMAND_PASV, 4 },
|
|
|
|
|
{ "RETR", FTP_COMMAND_RETR, 4 },
|
|
|
|
|
{ "EPSV", FTP_COMMAND_EPSV, 4 },
|
|
|
|
|
{ "STOR", FTP_COMMAND_STOR, 4 },
|
|
|
|
|
|
|
|
|
|
/* Parsed, but not handled */
|
|
|
|
|
{ FTP_COMMAND_ABOR, "ABOR", 4},
|
|
|
|
|
{ FTP_COMMAND_ACCT, "ACCT", 4},
|
|
|
|
|
{ FTP_COMMAND_ALLO, "ALLO", 4},
|
|
|
|
|
{ FTP_COMMAND_APPE, "APPE", 4},
|
|
|
|
|
{ FTP_COMMAND_CDUP, "CDUP", 4},
|
|
|
|
|
{ FTP_COMMAND_CHMOD, "CHMOD", 5},
|
|
|
|
|
{ FTP_COMMAND_CWD, "CWD", 3},
|
|
|
|
|
{ FTP_COMMAND_DELE, "DELE", 4},
|
|
|
|
|
{ FTP_COMMAND_HELP, "HELP", 4},
|
|
|
|
|
{ FTP_COMMAND_IDLE, "IDLE", 4},
|
|
|
|
|
{ FTP_COMMAND_LIST, "LIST", 4},
|
|
|
|
|
{ FTP_COMMAND_MAIL, "MAIL", 4},
|
|
|
|
|
{ FTP_COMMAND_MDTM, "MDTM", 4},
|
|
|
|
|
{ FTP_COMMAND_MKD, "MKD", 3},
|
|
|
|
|
{ FTP_COMMAND_MLFL, "MLFL", 4},
|
|
|
|
|
{ FTP_COMMAND_MODE, "MODE", 4},
|
|
|
|
|
{ FTP_COMMAND_MRCP, "MRCP", 4},
|
|
|
|
|
{ FTP_COMMAND_MRSQ, "MRSQ", 4},
|
|
|
|
|
{ FTP_COMMAND_MSAM, "MSAM", 4},
|
|
|
|
|
{ FTP_COMMAND_MSND, "MSND", 4},
|
|
|
|
|
{ FTP_COMMAND_MSOM, "MSOM", 4},
|
|
|
|
|
{ FTP_COMMAND_NLST, "NLST", 4},
|
|
|
|
|
{ FTP_COMMAND_NOOP, "NOOP", 4},
|
|
|
|
|
{ FTP_COMMAND_PASS, "PASS", 4},
|
|
|
|
|
{ FTP_COMMAND_PWD, "PWD", 3},
|
|
|
|
|
{ FTP_COMMAND_QUIT, "QUIT", 4},
|
|
|
|
|
{ FTP_COMMAND_REIN, "REIN", 4},
|
|
|
|
|
{ FTP_COMMAND_REST, "REST", 4},
|
|
|
|
|
{ FTP_COMMAND_RMD, "RMD", 3},
|
|
|
|
|
{ FTP_COMMAND_RNFR, "RNFR", 4},
|
|
|
|
|
{ FTP_COMMAND_RNTO, "RNTO", 4},
|
|
|
|
|
{ FTP_COMMAND_SITE, "SITE", 4},
|
|
|
|
|
{ FTP_COMMAND_SIZE, "SIZE", 4},
|
|
|
|
|
{ FTP_COMMAND_SMNT, "SMNT", 4},
|
|
|
|
|
{ FTP_COMMAND_STAT, "STAT", 4},
|
|
|
|
|
{ FTP_COMMAND_STOU, "STOU", 4},
|
|
|
|
|
{ FTP_COMMAND_STRU, "STRU", 4},
|
|
|
|
|
{ FTP_COMMAND_SYST, "SYST", 4},
|
|
|
|
|
{ FTP_COMMAND_TYPE, "TYPE", 4},
|
|
|
|
|
{ FTP_COMMAND_UMASK, "UMASK", 5},
|
|
|
|
|
{ FTP_COMMAND_USER, "USER", 4},
|
|
|
|
|
{ FTP_COMMAND_UNKNOWN, NULL, 0}
|
|
|
|
|
{ "ABOR", FTP_COMMAND_ABOR, 4 },
|
|
|
|
|
{ "ACCT", FTP_COMMAND_ACCT, 4 },
|
|
|
|
|
{ "ALLO", FTP_COMMAND_ALLO, 4 },
|
|
|
|
|
{ "APPE", FTP_COMMAND_APPE, 4 },
|
|
|
|
|
{ "CDUP", FTP_COMMAND_CDUP, 4 },
|
|
|
|
|
{ "CHMOD", FTP_COMMAND_CHMOD, 5 },
|
|
|
|
|
{ "CWD", FTP_COMMAND_CWD, 3 },
|
|
|
|
|
{ "DELE", FTP_COMMAND_DELE, 4 },
|
|
|
|
|
{ "HELP", FTP_COMMAND_HELP, 4 },
|
|
|
|
|
{ "IDLE", FTP_COMMAND_IDLE, 4 },
|
|
|
|
|
{ "LIST", FTP_COMMAND_LIST, 4 },
|
|
|
|
|
{ "MAIL", FTP_COMMAND_MAIL, 4 },
|
|
|
|
|
{ "MDTM", FTP_COMMAND_MDTM, 4 },
|
|
|
|
|
{ "MKD", FTP_COMMAND_MKD, 3 },
|
|
|
|
|
{ "MLFL", FTP_COMMAND_MLFL, 4 },
|
|
|
|
|
{ "MODE", FTP_COMMAND_MODE, 4 },
|
|
|
|
|
{ "MRCP", FTP_COMMAND_MRCP, 4 },
|
|
|
|
|
{ "MRSQ", FTP_COMMAND_MRSQ, 4 },
|
|
|
|
|
{ "MSAM", FTP_COMMAND_MSAM, 4 },
|
|
|
|
|
{ "MSND", FTP_COMMAND_MSND, 4 },
|
|
|
|
|
{ "MSOM", FTP_COMMAND_MSOM, 4 },
|
|
|
|
|
{ "NLST", FTP_COMMAND_NLST, 4 },
|
|
|
|
|
{ "NOOP", FTP_COMMAND_NOOP, 4 },
|
|
|
|
|
{ "PASS", FTP_COMMAND_PASS, 4 },
|
|
|
|
|
{ "PWD", FTP_COMMAND_PWD, 3 },
|
|
|
|
|
{ "QUIT", FTP_COMMAND_QUIT, 4 },
|
|
|
|
|
{ "REIN", FTP_COMMAND_REIN, 4 },
|
|
|
|
|
{ "REST", FTP_COMMAND_REST, 4 },
|
|
|
|
|
{ "RMD", FTP_COMMAND_RMD, 3 },
|
|
|
|
|
{ "RNFR", FTP_COMMAND_RNFR, 4 },
|
|
|
|
|
{ "RNTO", FTP_COMMAND_RNTO, 4 },
|
|
|
|
|
{ "SITE", FTP_COMMAND_SITE, 4 },
|
|
|
|
|
{ "SIZE", FTP_COMMAND_SIZE, 4 },
|
|
|
|
|
{ "SMNT", FTP_COMMAND_SMNT, 4 },
|
|
|
|
|
{ "STAT", FTP_COMMAND_STAT, 4 },
|
|
|
|
|
{ "STOU", FTP_COMMAND_STOU, 4 },
|
|
|
|
|
{ "STRU", FTP_COMMAND_STRU, 4 },
|
|
|
|
|
{ "SYST", FTP_COMMAND_SYST, 4 },
|
|
|
|
|
{ "TYPE", FTP_COMMAND_TYPE, 4 },
|
|
|
|
|
{ "UMASK", FTP_COMMAND_UMASK, 5 },
|
|
|
|
|
{ "USER", FTP_COMMAND_USER, 4 },
|
|
|
|
|
{ NULL, FTP_COMMAND_UNKNOWN, 0 }
|
|
|
|
|
};
|
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
|
|
uint64_t ftp_config_memcap = 0;
|
|
|
|
|
uint32_t ftp_config_maxtx = 1024;
|
|
|
|
|
uint32_t ftp_max_line_len = 4096;
|
|
|
|
|