Go to the documentation of this file.
44 #define KEYWORD_NAME "ftp.reply"
45 #define KEYWORD_DOC "ftp-keywords.html#ftp-reply"
46 #define BUFFER_NAME "ftp.reply"
47 #define BUFFER_DESC "ftp reply"
49 static int g_ftp_reply_buffer_id = 0;
62 static bool DetectFTPReplyGetData(
void *txv, uint8_t _flow_flags, uint32_t index,
63 const uint8_t **buffer, uint32_t *buffer_len)
76 *buffer = (
const uint8_t *)wrapper->
response->response;
77 *buffer_len = wrapper->
response->length;
91 const int list_id, uint32_t index)
94 det_ctx, transforms, _f, _flow_flags, txv, list_id, index, DetectFTPReplyGetData);
int DetectSignatureSetAppProto(Signature *s, AppProto alproto)
SigTableElmt * sigmatch_table
InspectionBuffer * DetectHelperGetMultiData(struct DetectEngineThreadCtx_ *det_ctx, const DetectEngineTransforms *transforms, Flow *f, const uint8_t flow_flags, void *txv, const int list_id, uint32_t index, MultiGetTxBuffer GetBuf)
struct HtpBodyChunk_ * next
int DetectBufferSetActiveList(DetectEngineCtx *de_ctx, Signature *s, const int list)
void DetectFtpReplyRegister(void)
main detection engine ctx
#define TAILQ_EMPTY(head)
#define TAILQ_FOREACH(var, head, field)
#define SIG_FLAG_TOCLIENT
int(* Setup)(DetectEngineCtx *, Signature *, const char *)
int DetectBufferTypeGetByName(const char *name)
void DetectAppLayerMultiRegister(const char *name, AppProto alproto, uint32_t dir, int progress, InspectionMultiBufferGetDataPtr GetData, int priority, int tx_min_progress)
FtpCommandInfo command_descriptor
FtpRequestCommand command_code
FTPResponseLine * response
void DetectBufferTypeSetDescriptionByName(const char *name, const char *desc)
#define DEBUG_VALIDATE_BUG_ON(exp)