#include <queue>
#include <string>
+#include "main/snort_types.h"
#include "thread.h"
class ContextSwitcher;
NUM_STATES
};
- static Analyzer* get_local_analyzer();
+ SO_PUBLIC static Analyzer* get_local_analyzer();
static ContextSwitcher* get_switcher();
static void set_main_hook(MainHook_f);
void post_process_packet(snort::Packet*);
bool process_rebuilt_packet(snort::Packet*, const DAQ_PktHdr_t*, const uint8_t* pkt, uint32_t pktlen);
- bool inspect_rebuilt(snort::Packet*);
+ SO_PUBLIC bool inspect_rebuilt(snort::Packet*);
void finalize_daq_message(DAQ_Msg_h, DAQ_Verdict);
void add_to_retry_queue(DAQ_Msg_h);
{
PSEUDO_PKT_IP,
PSEUDO_PKT_TCP,
+ PSEUDO_PKT_UDP_QUIC,
PSEUDO_PKT_USER,
PSEUDO_PKT_DCE_SEG,
PSEUDO_PKT_DCE_FRAG,
bool has_udp_data() const
{ return (proto_bits & PROTO_BIT__UDP) and data and dsize; }
+ bool has_udp_quic_data() const
+ { return (pseudo_type == PSEUDO_PKT_UDP_QUIC) and data and dsize; }
+
/* Get general, non-boolean information */
PktType type() const
{ return ptrs.get_pkt_type(); } // defined in codec.h
#ifndef PAF_H
#define PAF_H
+#include "main/snort_types.h"
#include "main/thread.h"
#include "profiler/profiler_defs.h"
#include "stream/stream_splitter.h"
void* paf_new(unsigned max); // create new paf config (per policy)
void paf_delete(void*); // free config
-struct PAF_State // per session direction
+struct SO_PUBLIC PAF_State // per session direction
{
uint32_t seq; // stream cursor
uint32_t pos; // last flush position
snort::StreamSplitter::Status paf; // current scan state
};
-void paf_setup(PAF_State*); // called at session start
+SO_PUBLIC void paf_setup(PAF_State*); // called at session start
void paf_reset(PAF_State*); // called for do overs
void paf_clear(PAF_State*); // called at session end
return ps->seq;
}
-inline uint32_t paf_initialized (PAF_State* ps)
+SO_PUBLIC inline uint32_t paf_initialized (PAF_State* ps)
{
return ( ps->paf != snort::StreamSplitter::START );
}
}
// called on each in order segment
-int32_t paf_check(snort::StreamSplitter* paf_config, PAF_State*, snort::Packet* p,
+SO_PUBLIC int32_t paf_check(snort::StreamSplitter* paf_config, PAF_State*, snort::Packet* p,
const uint8_t* data, uint32_t len, uint32_t total, uint32_t seq, uint32_t* flags);
#endif