X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Examples%2FMCSniffer%2FMCSniffer.cc;h=b82dc2a81d606dcb91f3e83f41c89227f612f015;hb=ad287a6e1241649e73188edf5b8902e4e65f615d;hp=c6c32a319e0c61951ca3c57037ed2ed43e2d1d76;hpb=8d2d26f114d3df0a60c5c516fcf40671b1e55558;p=senf.git diff --git a/Examples/MCSniffer/MCSniffer.cc b/Examples/MCSniffer/MCSniffer.cc index c6c32a3..b82dc2a 100644 --- a/Examples/MCSniffer/MCSniffer.cc +++ b/Examples/MCSniffer/MCSniffer.cc @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Thorsten Horstmann +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Thorsten Horstmann // // 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/INet/UDPSocketHandle.hh" -#include "../../Scheduler/Scheduler.hh" -#include "../../Packets/DefaultBundle/EthernetPacket.hh" -#include "../../Utils/membind.hh" -#include "../../Utils/hexdump.hh" +#include +#include +#include +#include +#include //#include "MCSniffer.mpp" @@ -44,20 +44,20 @@ class MCSniffer { senf::UDPv4ClientSocketHandle sock; std::ostream& stream; + senf::scheduler::FdEvent event; public: - MCSniffer(senf::INet4SocketAddress addr, std::ostream& s) - : stream(s) + MCSniffer(senf::INet4Address addr, std::ostream& s) + : stream(s), event("MCSniffer", senf::membind(&MCSniffer::dumpPacket, this), + sock, senf::scheduler::FdEvent::EV_READ) { - sock.protocol().bind(addr); + // sock.bind(addr); sock.protocol().mcLoop(true); sock.protocol().mcAddMembership(addr); - senf::Scheduler::instance().add( - sock, senf::membind(&MCSniffer::dumpPacket, this)); } private: - void dumpPacket(senf::FileHandle /* ignored */, senf::Scheduler::EventId event) + void dumpPacket(int event) { std::string data (sock.read()); senf::EthernetPacket packet ( @@ -78,11 +78,11 @@ int main(int argc, char const * argv[]) std::ofstream f2 ("233.132.152.2.txt"); MCSniffer sniffer1 ( - senf::INet4SocketAddress("233.132.152.1:22344"), f1); + senf::INet4Address::from_string("233.132.152.1"), f1); MCSniffer sniffer2 ( - senf::INet4SocketAddress("233.132.152.2:22344"), f2); + senf::INet4Address::from_string("233.132.152.2"), f2); - senf::Scheduler::instance().process(); + senf::scheduler::process(); } catch (std::exception const & ex) { std::cerr << senf::prettyName(typeid(ex)) << ": " << ex.what() << "\n";