]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/capture/ipq_linux/ipq_cap.cpp
Introduced logger for plugins.
[stg.git] / projects / stargazer / plugins / capture / ipq_linux / ipq_cap.cpp
index 84939b4e70e17e646bc8bf2a16025b64e8b45620..6cf5b0f94559eaa8c0b1d8156936aa058868a2d4 100644 (file)
 * Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
 */
 
-#include <signal.h>
-#include <cerrno>
 #include <netinet/in.h>
 #include <linux/netfilter.h>
 
+#include <csignal>
+#include <cerrno>
+
 #include "stg/raw_ip_packet.h"
 #include "stg/traffcounter.h"
 #include "stg/plugin_creator.h"
+#include "stg/common.h"
+
 #include "ipq_cap.h"
 
 extern "C"
@@ -60,7 +63,8 @@ IPQ_CAP::IPQ_CAP()
       isRunning(false),
       capSock(-1),
       traffCnt(NULL),
-      buf()
+      buf(),
+      logger(GetPluginLogger(GetStgLogger(), "cap_ipq"))
 {
 memset(buf, 0, BUFSIZE);
 }
@@ -126,9 +130,13 @@ return 0;
 //-----------------------------------------------------------------------------
 void * IPQ_CAP::Run(void * d)
 {
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
 RAW_PACKET raw_packet;
 
-IPQ_CAP * dc = (IPQ_CAP *)d;
+IPQ_CAP * dc = static_cast<IPQ_CAP *>(d);
 dc->isRunning = true;
 memset(&raw_packet, 0, sizeof(raw_packet));
 raw_packet.dataLen = -1;