Use p->proto in detect to determine TCP/UDP/SCTP.

remotes/origin/master-1.1.x
Victor Julien 14 years ago
parent ebe99a2597
commit 16b41a5eff

@ -1324,16 +1324,16 @@ int SigMatchSignatures(ThreadVars *th_v, DetectEngineCtx *de_ctx, DetectEngineTh
/* Retrieve the app layer state and protocol and the tcp reassembled /* Retrieve the app layer state and protocol and the tcp reassembled
* stream chunks. */ * stream chunks. */
if ((IP_GET_IPPROTO(p) == IPPROTO_TCP && p->flags & PKT_STREAM_EST) || if ((p->proto == IPPROTO_TCP && p->flags & PKT_STREAM_EST) ||
(IP_GET_IPPROTO(p) == IPPROTO_UDP && p->flowflags & FLOW_PKT_ESTABLISHED) || (p->proto == IPPROTO_UDP && p->flowflags & FLOW_PKT_ESTABLISHED) ||
(IP_GET_IPPROTO(p) == IPPROTO_SCTP && p->flowflags & FLOW_PKT_ESTABLISHED)) (p->proto == IPPROTO_SCTP && p->flowflags & FLOW_PKT_ESTABLISHED))
{ {
alstate = AppLayerGetProtoStateFromPacket(p); alstate = AppLayerGetProtoStateFromPacket(p);
alproto = AppLayerGetProtoFromPacket(p); alproto = AppLayerGetProtoFromPacket(p);
alversion = AppLayerGetStateVersion(p->flow); alversion = AppLayerGetStateVersion(p->flow);
SCLogDebug("alstate %p, alproto %u", alstate, alproto); SCLogDebug("alstate %p, alproto %u", alstate, alproto);
} else { } else {
SCLogDebug("packet doesn't have established flag set (proto %d)", IP_GET_IPPROTO(p)); SCLogDebug("packet doesn't have established flag set (proto %d)", p->proto);
} }
} }
SCMutexUnlock(&p->flow->m); SCMutexUnlock(&p->flow->m);

Loading…
Cancel
Save