detect: fix setting of flag for rule reload

As part of 6d8b50b748, the settings of
THV_CAPTURE_INJECT_PKT ended up in a location unreachable by capture
methods that did not have PktAcqBreakLoop.

Instead, always call TmThreadsCaptureBreakLoop which handles the logic
for how the read loop should be broken.

This fixes the case where read threads won't "break" for rule reloads
until packets are seen.

Ticket: #6021
pull/8792/head
Jason Ish 1 year ago committed by Victor Julien
parent f961d3bb95
commit 1c6644ef4e

@ -2278,7 +2278,7 @@ retry:
if (SC_ATOMIC_GET(new_det_ctx[i]->so_far_used_by_detect) == 1) {
SCLogDebug("new_det_ctx - %p used by detect engine", new_det_ctx[i]);
threads_done++;
} else if (detect_tvs[i]->break_loop) {
} else {
TmThreadsCaptureBreakLoop(detect_tvs[i]);
}
}

@ -255,9 +255,6 @@ static inline void TmThreadsCaptureHandleTimeout(ThreadVars *tv, Packet *p)
static inline void TmThreadsCaptureBreakLoop(ThreadVars *tv)
{
if (unlikely(!tv->break_loop))
return;
if ((tv->tmm_flags & TM_FLAG_RECEIVE_TM) == 0) {
return;
}

Loading…
Cancel
Save