#include "Socket/PacketSocketHandle.hh"
#include "Scheduler/Scheduler.hh"
#include "Utils/membind.hh"
-
-#include "Packets/EthernetPacket.hh"
-#include "Packets/IpV4Packet.hh"
-#include "Packets/UDPPacket.hh"
+#include "Packets/DefaultBundle/EthernetPacket.hh"
//#include "Sniffer.mpp"
#define prefix_
std::cout << std::dec;
}
- void use_em()
- {
- // Pull in symbols from the wanted packets ...
- senf::Packet::create<senf::IpV4Packet>(0,0);
- senf::Packet::create<senf::UDPPacket>(0,0);
- }
}
int loop_main (int argc, char const * argv[])
senf::PacketSocketHandle sock;
public:
- Sniffer(std::string const & interface)
- { sock.bind(senf::LLSocketAddress(interface)); }
+ Sniffer(std::string const & interface)
+ {
+ sock.bind(senf::LLSocketAddress(interface));
+ }
- void run()
- {
- senf::Scheduler::instance().add(sock, senf::membind(&Sniffer::dumpPacket, this));
- senf::Scheduler::instance().process();
- }
+ void run()
+ {
+ senf::Scheduler::instance().add(
+ sock, senf::membind(&Sniffer::dumpPacket, this));
+ senf::Scheduler::instance().process();
+ }
private:
void dumpPacket(senf::FileHandle /* ignored */, senf::Scheduler::EventId event)
- {
- std::string data (sock.read());
- senf::EthernetPacket::ptr packet (
- senf::Packet::create<senf::EthernetPacket>(
- data.begin(), data.end()));
- packet->dump(std::cout);
- hexdump(packet->last()->begin(),
- packet->last()->end());
- std::cout << "\n\n";
- }
+ {
+ std::string data (sock.read());
+ senf::EthernetPacket::ptr packet (
+ senf::Packet::create<senf::EthernetPacket>(
+ data.begin(), data.end()));
+ packet->dump(std::cout);
+ hexdump(packet->last()->begin(),
+ packet->last()->end());
+ std::cout << "\n\n";
+ }
};
int scheduler_main(int argc, char const * argv[])