Several FIXME items:
[senf.git] / Examples / Sniffer / Sniffer.cc
index 40aec9c..2c43eb6 100644 (file)
 #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_
@@ -81,12 +78,6 @@ namespace {
         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[])
@@ -118,27 +109,30 @@ class Sniffer
     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[])