X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Examples%2FSniffer%2FSniffer.cc;h=fbeeab4c3e3398e0f3e88986859208037f44d2ab;hb=1b1d76302a5d61e918ef71f1c8e11f80ac1262e2;hp=1d60837b8574f644ec567d9d6bb2dd24ee78c0bc;hpb=8d2d26f114d3df0a60c5c516fcf40671b1e55558;p=senf.git diff --git a/Examples/Sniffer/Sniffer.cc b/Examples/Sniffer/Sniffer.cc index 1d60837..fbeeab4 100644 --- a/Examples/Sniffer/Sniffer.cc +++ b/Examples/Sniffer/Sniffer.cc @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Stefan Bund // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -29,11 +29,11 @@ #include #include #include -#include "../../Socket/Protocols/Raw/PacketSocketHandle.hh" -#include "../../Scheduler/Scheduler.hh" -#include "../../Utils/membind.hh" -#include "../../Utils/hexdump.hh" -#include "../../Packets/DefaultBundle/EthernetPacket.hh" +#include +#include +#include +#include +#include //#include "Sniffer.mpp" #define prefix_ @@ -48,7 +48,7 @@ int loop_main (int argc, char const * argv[]) while (true) { // forever senf::EthernetPacket packet (senf::EthernetPacket::create( - senf::EthernetPacket::noinit)); + senf::noinit)); sock.read(packet.data(),0); packet.dump(std::cout); senf::hexdump( @@ -69,23 +69,23 @@ class Sniffer senf::PacketSocketHandle sock; public: - Sniffer(std::string const & interface) + Sniffer(std::string const & interface) { - sock.bind(senf::LLSocketAddress(interface)); + sock.bind(senf::LLSocketAddress(interface)); } - void run() + 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) + void dumpPacket(senf::Scheduler::EventId event) { senf::EthernetPacket packet ( - senf::EthernetPacket::create(senf::EthernetPacket::noinit)); + senf::EthernetPacket::create(senf::noinit)); sock.read(packet.data(),0); packet.dump(std::cout); senf::hexdump( @@ -110,6 +110,9 @@ int scheduler_main(int argc, char const * argv[]) int main(int argc, char const * argv[]) { + std::cout << "Registered packets:\n\n"; + senf::dumpPacketRegistries(std::cout); + if (argc >= 3) if (std::string(argv[1]) == "loop") return loop_main(argc,argv);