1 // Copyright (c) 2012, Miriam Ruiz <miriam@debian.org>. All rights reserved.
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are met:
6 // 1. Redistributions of source code must retain the above copyright notice,
7 // this list of conditions and the following disclaimer.
9 // 2. Redistributions in binary form must reproduce the above copyright
10 // notice, this list of conditions and the following disclaimer in the
11 // documentation and/or other materials provided with the distribution.
13 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS", AND ANY EXPRESS
14 // OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 // NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
17 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 #ifndef SNIFFER_H_35C874BC_4DD1_11E2_AD2F_1BC708A5F99E_
25 #define SNIFFER_H_35C874BC_4DD1_11E2_AD2F_1BC708A5F99E_
29 #include "ip_port_connection.h"
44 void loop(const char* devname
);
46 void printConnections(std::ostream
& out
);
49 virtual void newPacket(const unsigned char * buffer
, int size
);
51 typedef IpPortConnection
<in_addr_t
,u_int16_t
> Connection
;
56 typedef std::map
<Connection
,Status
> ConnectionStatusMap
;
57 ConnectionStatusMap connections
;
59 static void process_packet(unsigned char* arg
, const struct pcap_pkthdr
* header
, const unsigned char * buffer
);
64 #endif // SNIFFER_H_35C874BC_4DD1_11E2_AD2F_1BC708A5F99E_