proto-detect: set flags in packet direction for UDP

pull/6810/head
Victor Julien 4 years ago
parent 449cc82943
commit ca29d33c69

@ -125,20 +125,21 @@ void AppLayerIncTxCounter(ThreadVars *tv, Flow *f, uint64_t step)
* so in this case we set a flag in the flow so that the first * so in this case we set a flag in the flow so that the first
* packet in the correct direction can be tagged. * packet in the correct direction can be tagged.
* *
* For IPS things are much simpler, and we don't use the flow * For IPS we update packet and flow. */
* flag. We just tag the packet directly. */
static inline void FlagPacketFlow(Packet *p, Flow *f, uint8_t flags) static inline void FlagPacketFlow(Packet *p, Flow *f, uint8_t flags)
{ {
if (EngineModeIsIPS()) { if (p->proto != IPPROTO_TCP || EngineModeIsIPS()) {
if (flags & STREAM_TOSERVER) { if (flags & STREAM_TOSERVER) {
if (p->flowflags & FLOW_PKT_TOSERVER) { if (p->flowflags & FLOW_PKT_TOSERVER) {
p->flags |= PKT_PROTO_DETECT_TS_DONE; p->flags |= PKT_PROTO_DETECT_TS_DONE;
f->flags |= FLOW_PROTO_DETECT_TS_DONE;
} else { } else {
f->flags |= FLOW_PROTO_DETECT_TS_DONE; f->flags |= FLOW_PROTO_DETECT_TS_DONE;
} }
} else { } else {
if (p->flowflags & FLOW_PKT_TOCLIENT) { if (p->flowflags & FLOW_PKT_TOCLIENT) {
p->flags |= PKT_PROTO_DETECT_TC_DONE; p->flags |= PKT_PROTO_DETECT_TC_DONE;
f->flags |= FLOW_PROTO_DETECT_TC_DONE;
} else { } else {
f->flags |= FLOW_PROTO_DETECT_TC_DONE; f->flags |= FLOW_PROTO_DETECT_TC_DONE;
} }

Loading…
Cancel
Save