Branch data Line data Source code
1 : : // $Id:$
2 : : //
3 : : // See the file "COPYING" in the main distribution directory for copyright.
4 : :
5 : : #ifndef rewriter_h
6 : : #define rewriter_h
7 : :
8 : : class TracePacket;
9 : :
10 : 0 : class Rewriter {
11 : : public:
12 [ # # ][ # # ]: 0 : virtual ~Rewriter() {};
[ # # ]
13 : :
14 : 0 : virtual void Done() {};
15 : :
16 : : virtual void WriteData(int is_orig, int len, const u_char* data) = 0;
17 : : virtual void WriteData(int is_orig, const char* data) = 0;
18 : : virtual void WriteData(int is_orig, int len, const char* data) = 0;
19 : : virtual void WriteData(int is_orig, const BroString* str) = 0;
20 : :
21 : : virtual void Push(int is_orig) = 0;
22 : :
23 : : virtual void AbortPackets(int apply_to_future) = 0;
24 : : virtual void CommitPackets(int apply_to_future) = 0;
25 : :
26 : : virtual unsigned int ReserveSlot() = 0;
27 : : virtual int SeekSlot(unsigned int slot) = 0;
28 : : virtual int ReturnFromSlot() = 0;
29 : : virtual int ReleaseSlot(unsigned int slot) = 0;
30 : :
31 : : // Needed by all rewriters.
32 : : virtual TracePacket* CurrentPacket() const = 0;
33 : : virtual TracePacket* RewritePacket() const = 0;
34 : :
35 : : // Whether to not anonymize client/server IP addresses.
36 : : virtual int LeaveAddrInTheClear(int is_orig) = 0;
37 : : };
38 : :
39 : : extern Rewriter* get_trace_rewriter(Val* conn_val);
40 : : extern Rewriter* get_trace_rewriter(Connection* conn);
41 : :
42 : : // This is the actual packet.
43 : 0 : class TracePacket {
44 : : public:
45 [ # # ][ # # ]: 0 : virtual ~TracePacket() { }
[ # # ]
46 : :
47 : : virtual RecordVal* PacketVal() = 0;
48 : : virtual double TimeStamp() const = 0;
49 : : };
50 : :
51 : : #endif
|