]> git.stg.codes - stg.git/blob - projects/stargazer/plugins/capture/ipq_linux/ipq_cap.h
3b088ada51a9a8e61721eac9bbd9d3a7a11b364a
[stg.git] / projects / stargazer / plugins / capture / ipq_linux / ipq_cap.h
1 #include <string>
2
3 #include "base_plugin.h"
4 #include "base_settings.h"
5 #include "../../../traffcounter.h"
6
7 #define BUFSIZE     (256)
8 #define PAYLOAD_LEN (96)
9
10 using namespace std;
11
12 extern "C" BASE_PLUGIN * GetPlugin();
13
14 //-----------------------------------------------------------------------------
15 class IPQ_CAP :public BASE_PLUGIN
16 {
17 public:
18     IPQ_CAP();
19     virtual ~IPQ_CAP(){};
20
21     void SetUsers(USERS *){};
22     void SetTariffs(TARIFFS *){};
23     void SetAdmins(ADMINS *){};
24     void SetTraffcounter(TRAFFCOUNTER * tc);
25     void SetStore(BASE_STORE *){};
26     void SetStgSettings(const SETTINGS *){};
27
28     int Start();
29     int Stop();
30     int Reload() { return 0; };
31     bool IsRunning();
32
33     void  SetSettings(const MODULE_SETTINGS &){};
34     int  ParseSettings(){ return 0; };
35     const string & GetStrError() const;
36     const string GetVersion() const;
37     uint16_t GetStartPosition() const;
38     uint16_t GetStopPosition() const;
39
40 private:
41     static void * Run(void *);
42     int IPQCapOpen();
43     int IPQCapClose();
44     int IPQCapRead(void * buffer, int blen);
45
46     struct ipq_handle *ipq_h;
47     mutable string errorStr;
48
49     pthread_t thread;
50     bool nonstop;
51     bool isRunning;
52     int capSock;
53
54     TRAFFCOUNTER * traffCnt;
55     unsigned char buf[BUFSIZE];
56 };