Socket: Introduce sub-directory structure for concrete protocols
[senf.git] / Examples / Sniffer / Sniffer.cc
index 2c43eb6..f1210a5 100644 (file)
@@ -29,7 +29,7 @@
 #include <string>
 #include <iostream>
 #include <iomanip>
-#include "Socket/PacketSocketHandle.hh"
+#include "Socket/Protocols/PacketSocketHandle.hh"
 #include "Scheduler/Scheduler.hh"
 #include "Utils/membind.hh"
 #include "Packets/DefaultBundle/EthernetPacket.hh"
@@ -84,17 +84,16 @@ int loop_main (int argc, char const * argv[])
 {
     try {
         senf::PacketSocketHandle sock;
-        sock.bind(senf::LLSocketAddress("eth0"));
+        sock.bind(senf::LLSocketAddress("eth1"));
         // sock.protocol().promisc("eth0",senf::PacketProtocol::Promiscuous);
 
         while (true) { // forever
-            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());
+            senf::EthernetPacket packet (senf::EthernetPacket::create(
+                                             senf::EthernetPacket::noinit));
+            sock.read(packet.data(),0);
+            packet.dump(std::cout);
+            hexdump(packet.last().data().begin(),
+                    packet.last().data().end());
             std::cout << "\n\n";
         }
     }
@@ -124,13 +123,12 @@ public:
 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());
+        senf::EthernetPacket packet (
+            senf::EthernetPacket::create(senf::EthernetPacket::noinit));
+        sock.read(packet.data(),0);
+        packet.dump(std::cout);
+        hexdump(packet.last().data().begin(),
+                packet.last().data().end());
         std::cout << "\n\n";
     }
 };
@@ -138,7 +136,7 @@ private:
 int scheduler_main(int argc, char const * argv[])
 {
     try {
-        Sniffer sniffer ("eth0");
+        Sniffer sniffer ("eth1");
         sniffer.run();
     }
     catch (std::exception const & ex) {
@@ -170,4 +168,6 @@ int main(int argc, char const * argv[])
 // c-file-style: "senf"
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
+// compile-command: "scons -u"
+// comment-column: 40
 // End: