]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/capture/cap_nf/cap_nf.h
Added ability to optionally transfer resetable value to a real var.
[stg.git] / projects / stargazer / plugins / capture / cap_nf / cap_nf.h
index 786be396b5b66b8b6b9e755447fa32490bd00887..bcb8b743619ac4658a49bb130a6b50bd5909a188 100644 (file)
@@ -34,13 +34,14 @@ $Author: faust $
 
 #include <string>
 
 
 #include <string>
 
-#include "os_int.h"
-#include "plugin.h"
-#include "module_settings.h"
+#include "stg/os_int.h"
+#include "stg/plugin.h"
+#include "stg/module_settings.h"
+#include "stg/logger.h"
 
 
-#define VERSION "CAP_NF v. 0.4"
-#define START_POS 0
-#define STOP_POS 0
+#define VERSION "cap_nf v. 0.4"
+#define START_POS 40
+#define STOP_POS 40
 
 class USERS;
 class USER;
 
 class USERS;
 class USER;
@@ -60,7 +61,7 @@ struct NF_HEADER {
     uint8_t  eType;     // Engine type
     uint8_t  eID;       // Engine ID
     uint16_t sInterval; // Sampling mode and interval
     uint8_t  eType;     // Engine type
     uint8_t  eID;       // Engine ID
     uint16_t sInterval; // Sampling mode and interval
-} __attribute__ ((packed));
+};
 
 struct NF_DATA {
     uint32_t srcAddr;   // Flow source address
 
 struct NF_DATA {
     uint32_t srcAddr;   // Flow source address
@@ -83,7 +84,7 @@ struct NF_DATA {
     uint8_t  srcMask;   // Source address mask in "slash" notation
     uint8_t  dstMask;   // Destination address mask in "slash" notation
     uint16_t pad2;      // 2-byte padding
     uint8_t  srcMask;   // Source address mask in "slash" notation
     uint8_t  dstMask;   // Destination address mask in "slash" notation
     uint16_t pad2;      // 2-byte padding
-} __attribute__ ((packed));
+};
 
 #define BUF_SIZE (sizeof(NF_HEADER) + 30 * sizeof(NF_DATA))
 
 
 #define BUF_SIZE (sizeof(NF_HEADER) + 30 * sizeof(NF_DATA))
 
@@ -92,12 +93,7 @@ public:
     NF_CAP();
     ~NF_CAP();
 
     NF_CAP();
     ~NF_CAP();
 
-    void            SetUsers(USERS *) {}
-    void            SetTariffs(TARIFFS *) {}
-    void            SetAdmins(ADMINS *) {}
     void            SetTraffcounter(TRAFFCOUNTER * tc) { traffCnt = tc; }
     void            SetTraffcounter(TRAFFCOUNTER * tc) { traffCnt = tc; }
-    void            SetStore(STORE *) {}
-    void            SetStgSettings(const SETTINGS *) {}
     void            SetSettings(const MODULE_SETTINGS & s) { settings = s; }
     int             ParseSettings();
 
     void            SetSettings(const MODULE_SETTINGS & s) { settings = s; }
     int             ParseSettings();
 
@@ -106,11 +102,14 @@ public:
     int             Reload() { return 0; }
     bool            IsRunning() { return runningTCP || runningUDP; }
     const std::string & GetStrError() const { return errorStr; }
     int             Reload() { return 0; }
     bool            IsRunning() { return runningTCP || runningUDP; }
     const std::string & GetStrError() const { return errorStr; }
-    const std::string GetVersion() const { return VERSION; }
+    std::string     GetVersion() const { return VERSION; }
     uint16_t        GetStartPosition() const { return START_POS; }
     uint16_t        GetStopPosition() const { return STOP_POS; }
 
 private:
     uint16_t        GetStartPosition() const { return START_POS; }
     uint16_t        GetStopPosition() const { return STOP_POS; }
 
 private:
+    NF_CAP(const NF_CAP & rvalue);
+    NF_CAP & operator=(const NF_CAP & rvalue);
+
     TRAFFCOUNTER * traffCnt;
     MODULE_SETTINGS settings;
     pthread_t tidTCP;
     TRAFFCOUNTER * traffCnt;
     MODULE_SETTINGS settings;
     pthread_t tidTCP;
@@ -124,19 +123,16 @@ private:
     int sockTCP;
     int sockUDP;
     mutable std::string errorStr;
     int sockTCP;
     int sockUDP;
     mutable std::string errorStr;
+    PLUGIN_LOGGER logger;
 
     static void * RunUDP(void *);
     static void * RunTCP(void *);
 
     static void * RunUDP(void *);
     static void * RunTCP(void *);
-    void ParseBuffer(uint8_t *, int);
+    void ParseBuffer(uint8_t * buf, ssize_t size);
 
     bool OpenTCP();
     bool OpenUDP();
     void CloseTCP() { close(sockTCP); }
     void CloseUDP() { close(sockUDP); }
 
     bool OpenTCP();
     bool OpenUDP();
     void CloseTCP() { close(sockTCP); }
     void CloseUDP() { close(sockUDP); }
-
-    bool WaitPackets(int sd) const;
 };
 
 };
 
-extern "C" PLUGIN * GetPlugin();
-
 #endif
 #endif