}
if (flags & STREAM_TOSERVER) {
- if (AppLayerParserGetStateProgress(IPPROTO_TCP, ALPROTO_HTTP, txv, flags) <= HTP_REQUEST_HEADERS)
- SCReturnInt(0);
-
if (tx_ud->request_headers_raw != NULL) {
cnt = HttpRawHeaderPatternSearch(det_ctx,
tx_ud->request_headers_raw,
flags);
}
} else {
- if (AppLayerParserGetStateProgress(IPPROTO_TCP, ALPROTO_HTTP, txv, flags) <= HTP_RESPONSE_HEADERS)
- SCReturnInt(0);
-
if (tx_ud->response_headers_raw != NULL) {
cnt = HttpRawHeaderPatternSearch(det_ctx,
tx_ud->response_headers_raw,
DetectEngineRunHttpHeaderMpm(det_ctx, p->flow, alstate, flags, tx, idx);
PACKET_PROFILING_DETECT_END(p, PROF_DETECT_MPM_HHD);
}
+ }
+
+ if (tx_progress > HTP_REQUEST_HEADERS) {
if (det_ctx->sgh->flags & SIG_GROUP_HEAD_MPM_HRHD) {
PACKET_PROFILING_DETECT_START(p, PROF_DETECT_MPM_HRHD);
DetectEngineRunHttpRawHeaderMpm(det_ctx, p->flow, alstate, flags, tx, idx);
DetectEngineRunHttpHeaderMpm(det_ctx, p->flow, alstate, flags, tx, idx);
PACKET_PROFILING_DETECT_END(p, PROF_DETECT_MPM_HHD);
}
- if (det_ctx->sgh->flags & SIG_GROUP_HEAD_MPM_HRHD) {
- PACKET_PROFILING_DETECT_START(p, PROF_DETECT_MPM_HRHD);
- DetectEngineRunHttpRawHeaderMpm(det_ctx, p->flow, alstate, flags, tx, idx);
- PACKET_PROFILING_DETECT_END(p, PROF_DETECT_MPM_HRHD);
- }
if (det_ctx->sgh->flags & SIG_GROUP_HEAD_MPM_HCD) {
PACKET_PROFILING_DETECT_START(p, PROF_DETECT_MPM_HCD);
DetectEngineRunHttpCookieMpm(det_ctx, p->flow, alstate, flags, tx, idx);
}
}
+ if (tx_progress > HTP_RESPONSE_HEADERS) {
+ if (det_ctx->sgh->flags & SIG_GROUP_HEAD_MPM_HRHD) {
+ PACKET_PROFILING_DETECT_START(p, PROF_DETECT_MPM_HRHD);
+ DetectEngineRunHttpRawHeaderMpm(det_ctx, p->flow, alstate, flags, tx, idx);
+ PACKET_PROFILING_DETECT_END(p, PROF_DETECT_MPM_HRHD);
+ }
+ }
+
if (tx_progress >= HTP_RESPONSE_BODY) {
if (det_ctx->sgh->flags & SIG_GROUP_HEAD_MPM_HSBD) {
PACKET_PROFILING_DETECT_START(p, PROF_DETECT_MPM_HSBD);