From 2ee4770462185daec28e8bb424c8e188e194c996 Mon Sep 17 00:00:00 2001 From: lijia Date: Mon, 22 Jul 2024 10:34:56 +0800 Subject: Initial commit --- include/ftp_decoder.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 include/ftp_decoder.h (limited to 'include/ftp_decoder.h') diff --git a/include/ftp_decoder.h b/include/ftp_decoder.h new file mode 100644 index 0000000..206ece9 --- /dev/null +++ b/include/ftp_decoder.h @@ -0,0 +1,38 @@ +#pragma once +#ifdef __cplusplus +extern "C" +{ +#endif +#include + +#define FTP_DECODER_CTRL_TOPIC "FTP_DECODER_CTRL_MESSAGE" +#define FTP_DECODER_DATA_TOPIC "FTP_DECODER_DATA_MESSAGE" + +struct ftp_message; + +enum ftp_msg_type{ + FTP_BANNER = 0, + FTP_ACCOUNT, + FTP_PASSWORD, + FTP_URI, + FTP_TRANS_MODE, // "PASV", "PORT" + FTP_TRANS_DIR, // "RETR", "STOR" + FTP_INVENTORY, // by command "LIST" + FTP_FILE_CONTENT, // by command "RETR" and "STOR" + + FTP_MSG_MAX, +}; + +/** + * 1: success + * 0: failed or no available data +*/ +int ftp_message_iterate(const struct ftp_message *msg, enum ftp_msg_type *type, struct iovec *value); + +void ftp_message_reset_iterator(const struct ftp_message *msg); + +const char *ftp_message_type_to_string(enum ftp_msg_type fmsg_type); + +#ifdef __cplusplus +} +#endif -- cgit v1.2.3