]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/capture/ipq_linux/ipq_cap.cpp
Ticket 37. The const TARIFF * tariff and const TARIFF * newTariff
[stg.git] / projects / stargazer / plugins / capture / ipq_linux / ipq_cap.cpp
index d0192e0ab65075dec4afeb209d223519c359b497..18696ec2a0cd7c96f159979fe56e3dfae48bf208 100644 (file)
 
 #include <csignal>
 #include <cerrno>
 
 #include <csignal>
 #include <cerrno>
+#include <cstring>
 
 #include "stg/raw_ip_packet.h"
 #include "stg/traffcounter.h"
 #include "stg/plugin_creator.h"
 
 #include "stg/raw_ip_packet.h"
 #include "stg/traffcounter.h"
 #include "stg/plugin_creator.h"
+#include "stg/common.h"
 
 #include "ipq_cap.h"
 
 
 #include "ipq_cap.h"
 
@@ -38,7 +40,12 @@ extern "C"
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<IPQ_CAP> icc;
 PLUGIN_CREATOR<IPQ_CAP> icc;
+}
+
+extern "C" PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -49,20 +56,18 @@ return icc.GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-const std::string IPQ_CAP::GetVersion() const
+std::string IPQ_CAP::GetVersion() const
 {
 {
-return "ipq_cap v.1.2";
+return "cap_ipq v.1.2";
 }
 //-----------------------------------------------------------------------------
 IPQ_CAP::IPQ_CAP()
     : ipq_h(NULL),
 }
 //-----------------------------------------------------------------------------
 IPQ_CAP::IPQ_CAP()
     : ipq_h(NULL),
-      errorStr(),
-      thread(),
       nonstop(false),
       isRunning(false),
       capSock(-1),
       traffCnt(NULL),
       nonstop(false),
       isRunning(false),
       capSock(-1),
       traffCnt(NULL),
-      buf()
+      logger(GetPluginLogger(GetStgLogger(), "cap_ipq"))
 {
 memset(buf, 0, BUFSIZE);
 }
 {
 memset(buf, 0, BUFSIZE);
 }
@@ -158,6 +163,7 @@ ipq_h = ipq_create_handle(0, PF_INET);
 if (ipq_h == NULL)
     {
     ipq_destroy_handle(ipq_h);
 if (ipq_h == NULL)
     {
     ipq_destroy_handle(ipq_h);
+    logger("Cannot create IPQ handle. Error: '%s', '%s'", ipq_errstr(), strerror(errno));
     errorStr = "Cannot create ipq handle!";
     return -1;
     }
     errorStr = "Cannot create ipq handle!";
     return -1;
     }
@@ -165,6 +171,7 @@ int status = ipq_set_mode(ipq_h, IPQ_COPY_PACKET, PAYLOAD_LEN);
 if (status < 0)
     {
     ipq_destroy_handle(ipq_h);
 if (status < 0)
     {
     ipq_destroy_handle(ipq_h);
+    logger("Cannot set IPQ_COPY_PACKET mode.");
     errorStr = "Cannot set IPQ_COPY_PACKET mode!";
     return -1;
     }
     errorStr = "Cannot set IPQ_COPY_PACKET mode!";
     return -1;
     }