* that is not a TCP SYN packet. */
if (emerg) {
if (PKT_IS_TCP(p)) {
- if (p->tcph->th_flags == TH_SYN || stream_config.midstream == FALSE) {
+ if (((p->tcph->th_flags & (TH_SYN | TH_ACK | TH_RST | TH_FIN)) == TH_SYN) ||
+ !stream_config.midstream) {
;
} else {
return 0;
* \retval bool true/false */
static int TcpSessionPacketIsStreamStarter(const Packet *p)
{
- if (p->tcph->th_flags == TH_SYN) {
+ if ((p->tcph->th_flags & (TH_SYN | TH_ACK)) == TH_SYN) {
SCLogDebug("packet %"PRIu64" is a stream starter: %02x", p->pcap_cnt, p->tcph->th_flags);
return 1;
}
if (stream_config.midstream == TRUE || stream_config.async_oneside == TRUE) {
- if (p->tcph->th_flags == (TH_SYN|TH_ACK)) {
+ if ((p->tcph->th_flags & (TH_SYN | TH_ACK)) == (TH_SYN | TH_ACK)) {
SCLogDebug("packet %"PRIu64" is a midstream stream starter: %02x", p->pcap_cnt, p->tcph->th_flags);
return 1;
}
* \retval bool true if ssn can be reused, false if not */
static int TcpSessionReuseDoneEnough(const Packet *p, const Flow *f, const TcpSession *ssn)
{
- if (p->tcph->th_flags == TH_SYN) {
+ if ((p->tcph->th_flags & (TH_SYN | TH_ACK)) == TH_SYN) {
return TcpSessionReuseDoneEnoughSyn(p, f, ssn);
}
if (stream_config.midstream == TRUE || stream_config.async_oneside == TRUE) {
- if (p->tcph->th_flags == (TH_SYN|TH_ACK)) {
+ if ((p->tcph->th_flags & (TH_SYN | TH_ACK)) == (TH_SYN | TH_ACK)) {
return TcpSessionReuseDoneEnoughSynAck(p, f, ssn);
}
}