]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/capture/ipq_linux/ipq_cap.cpp
Replace deprecated usleep with POSIX-compliant nanosleep
[stg.git] / projects / stargazer / plugins / capture / ipq_linux / ipq_cap.cpp
index 97b70a0b55cc5b6392a5af8364c78077a47cc03e..84939b4e70e17e646bc8bf2a16025b64e8b45620 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "stg/raw_ip_packet.h"
 #include "stg/traffcounter.h"
+#include "stg/plugin_creator.h"
 #include "ipq_cap.h"
 
 extern "C"
@@ -32,35 +33,16 @@ extern "C"
 #include "libipq.h"
 }
 
-class IPQ_CAP_CREATOR {
-private:
-    IPQ_CAP * ic;
-
-public:
-    IPQ_CAP_CREATOR()
-        : ic(new IPQ_CAP())
-        {
-        }
-    ~IPQ_CAP_CREATOR()
-        {
-        delete ic;
-        }
-
-    IPQ_CAP * GetCapturer()
-        {
-        return ic;
-        }
-};
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-IPQ_CAP_CREATOR icc;
+PLUGIN_CREATOR<IPQ_CAP> icc;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PLUGIN * GetPlugin()
 {
-return icc.GetCapturer();
+return icc.GetPlugin();
 }
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -72,10 +54,13 @@ return "ipq_cap v.1.2";
 //-----------------------------------------------------------------------------
 IPQ_CAP::IPQ_CAP()
     : ipq_h(NULL),
+      errorStr(),
+      thread(),
       nonstop(false),
       isRunning(false),
       capSock(-1),
-      traffCnt(NULL)
+      traffCnt(NULL),
+      buf()
 {
 memset(buf, 0, BUFSIZE);
 }
@@ -110,7 +95,8 @@ for (int i = 0; i < 25; i++)
     {
     if (!isRunning)
         break;
-    usleep(200000);
+    struct timespec ts = {0, 200000000};
+    nanosleep(&ts, NULL);
     }
 //after 5 seconds waiting thread still running. now killing it
 if (isRunning)
@@ -122,7 +108,8 @@ if (isRunning)
         }
     for (int i = 0; i < 25 && isRunning; ++i)
         {
-        usleep(200000);
+        struct timespec ts = {0, 200000000};
+        nanosleep(&ts, NULL);
         }
     if (isRunning)
         {