{
switch ((enum StreamUpdateDir)p->app_update_direction) {
case UPDATE_DIR_NONE: // NONE implies pseudo packet
+ SCLogDebug("pcap_cnt %" PRIu64 ", UPDATE_DIR_NONE", p->pcap_cnt);
break;
case UPDATE_DIR_PACKET:
if (PKT_IS_TOSERVER(p)) {
/* handle TCP and app layer */
if (p->flow) {
+ SCLogDebug("packet %" PRIu64
+ ": direction %s FLOW_TS_APP_UPDATE_NEXT %s FLOW_TC_APP_UPDATE_NEXT %s",
+ p->pcap_cnt, PKT_IS_TOSERVER(p) ? "toserver" : "toclient",
+ BOOL2STR((p->flow->flags & FLOW_TS_APP_UPDATE_NEXT) != 0),
+ BOOL2STR((p->flow->flags & FLOW_TC_APP_UPDATE_NEXT) != 0));
/* see if need to consider flags set by prev packets */
if (PKT_IS_TOSERVER(p) && (p->flow->flags & FLOW_TS_APP_UPDATE_NEXT)) {
p->flow->flags |= FLOW_TS_APP_UPDATED;
if (PKT_IS_PSEUDOPKT(p) || (p->flow->flags & (FLOW_TS_APP_UPDATED))) {
AppLayerParserTransactionsCleanup(p->flow, STREAM_TOSERVER);
p->flow->flags &= ~FLOW_TS_APP_UPDATED;
+ SCLogDebug("~FLOW_TS_APP_UPDATED");
}
} else {
if (PKT_IS_PSEUDOPKT(p) || (p->flow->flags & (FLOW_TC_APP_UPDATED))) {
AppLayerParserTransactionsCleanup(p->flow, STREAM_TOCLIENT);
p->flow->flags &= ~FLOW_TC_APP_UPDATED;
+ SCLogDebug("~FLOW_TC_APP_UPDATED");
}
}
}