int PrefilterTxTlsSniRegister(SigGroupHead *sgh, MpmCtx *mpm_ctx) { SCEnter(); return PrefilterAppendTxEngine(sgh, PrefilterTxTlsSni, ALPROTO_TLS, 0, // TODO a special 'cert ready' state might be good to add mpm_ctx, NULL, "tls_sni"); }
int PrefilterTxSmtpFiledataRegister(SigGroupHead *sgh, MpmCtx *mpm_ctx) { SCEnter(); return PrefilterAppendTxEngine(sgh, PrefilterTxSmtpFiledata, ALPROTO_SMTP, 0, mpm_ctx, NULL, "file_data (smtp)"); }
static int PrefilterTxHttpResponseLineRegister(SigGroupHead *sgh, MpmCtx *mpm_ctx) { SCEnter(); return PrefilterAppendTxEngine(sgh, PrefilterTxHttpResponseLine, ALPROTO_HTTP, HTP_RESPONSE_LINE, mpm_ctx, NULL, "http_response_line"); }
static int PrefilterMpmHttpHeaderRawResponseRegister(DetectEngineCtx *de_ctx, SigGroupHead *sgh, MpmCtx *mpm_ctx, const DetectMpmAppLayerRegistery *mpm_reg, int list_id) { SCEnter(); /* header */ PrefilterMpmHttpHeaderRawCtx *pectx = SCCalloc(1, sizeof(*pectx)); if (pectx == NULL) return -1; pectx->list_id = list_id; pectx->mpm_ctx = mpm_ctx; pectx->transforms = &mpm_reg->v2.transforms; int r = PrefilterAppendTxEngine(de_ctx, sgh, PrefilterMpmHttpHeaderRaw, mpm_reg->v2.alproto, HTP_RESPONSE_HEADERS, pectx, PrefilterMpmHttpHeaderRawFree, mpm_reg->pname); if (r != 0) { SCFree(pectx); return r; } /* trailer */ pectx = SCCalloc(1, sizeof(*pectx)); if (pectx == NULL) return -1; pectx->list_id = list_id; pectx->mpm_ctx = mpm_ctx; pectx->transforms = &mpm_reg->v2.transforms; r = PrefilterAppendTxEngine(de_ctx, sgh, PrefilterMpmHttpTrailerRaw, mpm_reg->v2.alproto, HTP_RESPONSE_TRAILER, pectx, PrefilterMpmHttpHeaderRawFree, mpm_reg->pname); if (r != 0) { SCFree(pectx); } return r; }
static int PrefilterMpmDnsQueryRegister(DetectEngineCtx *de_ctx, SigGroupHead *sgh, MpmCtx *mpm_ctx, const DetectMpmAppLayerRegistery *mpm_reg, int list_id) { PrefilterMpmDnsQuery *pectx = SCCalloc(1, sizeof(*pectx)); if (pectx == NULL) return -1; pectx->list_id = list_id; pectx->mpm_ctx = mpm_ctx; pectx->transforms = &mpm_reg->v2.transforms; return PrefilterAppendTxEngine(de_ctx, sgh, PrefilterTxDnsQuery, mpm_reg->v2.alproto, mpm_reg->v2.tx_min_progress, pectx, PrefilterMpmDnsQueryFree, mpm_reg->name); }
static int PrefilterTxHttpRequestStartRegister(DetectEngineCtx *de_ctx, SigGroupHead *sgh, MpmCtx *mpm_ctx, const DetectMpmAppLayerRegistery *mpm_reg, int list_id) { SCEnter(); PrefilterMpmHttpStartCtx *pectx = SCCalloc(1, sizeof(*pectx)); if (pectx == NULL) return -1; pectx->list_id = list_id; pectx->mpm_ctx = mpm_ctx; pectx->transforms = &mpm_reg->v2.transforms; int r = PrefilterAppendTxEngine(de_ctx, sgh, PrefilterTxHttpRequestStart, mpm_reg->v2.alproto, HTP_REQUEST_HEADERS, pectx, PrefilterMpmHttpHeaderFree, mpm_reg->pname); if (r != 0) { SCFree(pectx); return r; } return r; }