}
}
+/** \brief switch direction of a packet */
+void PacketSwap(Packet *p)
+{
+ if (PKT_IS_TOSERVER(p)) {
+ p->flowflags &= ~FLOW_PKT_TOSERVER;
+ p->flowflags |= FLOW_PKT_TOCLIENT;
+
+ if (p->flowflags & FLOW_PKT_TOSERVER_FIRST) {
+ p->flowflags &= ~FLOW_PKT_TOSERVER_FIRST;
+ p->flowflags |= FLOW_PKT_TOCLIENT_FIRST;
+ }
+ } else {
+ p->flowflags &= ~FLOW_PKT_TOCLIENT;
+ p->flowflags |= FLOW_PKT_TOSERVER;
+
+ if (p->flowflags & FLOW_PKT_TOCLIENT_FIRST) {
+ p->flowflags &= ~FLOW_PKT_TOCLIENT_FIRST;
+ p->flowflags |= FLOW_PKT_TOSERVER_FIRST;
+ }
+ }
+}
+
/* counter name store */
static HashTable *g_counter_table = NULL;
static SCMutex g_counter_table_mutex = SCMUTEX_INITIALIZER;
int PacketCopyDataOffset(Packet *p, uint32_t offset, uint8_t *data, uint32_t datalen);
const char *PktSrcToString(enum PktSrcEnum pkt_src);
void PacketBypassCallback(Packet *p);
+void PacketSwap(Packet *p);
DecodeThreadVars *DecodeThreadVarsAlloc(ThreadVars *);
void DecodeThreadVarsFree(ThreadVars *, DecodeThreadVars *);
static inline void StreamTcpPacketSwitchDir(TcpSession *ssn, Packet *p)
{
SCLogDebug("ssn %p: switching pkt direction", ssn);
-
- if (PKT_IS_TOSERVER(p)) {
- p->flowflags &= ~FLOW_PKT_TOSERVER;
- p->flowflags |= FLOW_PKT_TOCLIENT;
-
- if (p->flowflags & FLOW_PKT_TOSERVER_FIRST) {
- p->flowflags &= ~FLOW_PKT_TOSERVER_FIRST;
- p->flowflags |= FLOW_PKT_TOCLIENT_FIRST;
- }
- } else {
- p->flowflags &= ~FLOW_PKT_TOCLIENT;
- p->flowflags |= FLOW_PKT_TOSERVER;
-
- if (p->flowflags & FLOW_PKT_TOCLIENT_FIRST) {
- p->flowflags &= ~FLOW_PKT_TOCLIENT_FIRST;
- p->flowflags |= FLOW_PKT_TOSERVER_FIRST;
- }
- }
+ PacketSwap(p);
}
enum {