Branch data Line data Source code
1 : : // $Id:$
2 : :
3 : : #ifndef dns_binpac_h
4 : : #define dns_binpac_h
5 : :
6 : : #include "UDP.h"
7 : : #include "TCP.h"
8 : :
9 : : #include "dns_pac.h"
10 : :
11 : : // FIXME: As the binpac analyer for DNS-TCP and DNS-UDP are currently
12 : : // structured, we cannot directly combine them into one analyzer. Can we
13 : : // change that easily? (Ideally, the TCP preprocessing would become a
14 : : // support-analyzer as it is done for the traditional DNS analyzer.)
15 : :
16 : : class DNS_UDP_Analyzer_binpac : public Analyzer {
17 : : public:
18 : : DNS_UDP_Analyzer_binpac(Connection* conn);
19 : : virtual ~DNS_UDP_Analyzer_binpac();
20 : :
21 : : virtual void Done();
22 : : virtual void DeliverPacket(int len, const u_char* data, bool orig,
23 : : int seq, const IP_Hdr* ip, int caplen);
24 : :
25 : 0 : static Analyzer* InstantiateAnalyzer(Connection* conn)
26 : 0 : { return new DNS_UDP_Analyzer_binpac(conn); }
27 : :
28 : 1 : static bool Available()
29 [ + - ][ - + ]: 1 : { return (dns_request || dns_full_request) && FLAGS_use_binpac; }
[ # # ]
30 : :
31 : : protected:
32 : : friend class AnalyzerTimer;
33 : : void ExpireTimer(double t);
34 : :
35 : : int did_session_done;
36 : :
37 : : binpac::DNS::DNS_Conn* interp;
38 : : };
39 : :
40 : : #include "dns_tcp_pac.h"
41 : :
42 : : class DNS_TCP_Analyzer_binpac : public TCP_ApplicationAnalyzer {
43 : : public:
44 : : DNS_TCP_Analyzer_binpac(Connection* conn);
45 : : virtual ~DNS_TCP_Analyzer_binpac();
46 : :
47 : : virtual void Done();
48 : : virtual void DeliverStream(int len, const u_char* data, bool orig);
49 : : virtual void Undelivered(int seq, int len, bool orig);
50 : : virtual void EndpointEOF(TCP_Reassembler* endp);
51 : :
52 : 0 : static Analyzer* InstantiateAnalyzer(Connection* conn)
53 : 0 : { return new DNS_TCP_Analyzer_binpac(conn); }
54 : :
55 : 1 : static bool Available()
56 [ + - ][ - + ]: 1 : { return (dns_request || dns_full_request) && FLAGS_use_binpac; }
[ # # ]
57 : :
58 : : protected:
59 : : binpac::DNS_on_TCP::DNS_TCP_Conn* interp;
60 : : };
61 : :
62 : : #endif
|