diff options
author | katze <katze@noreply.codeberg.org> | 2020-11-11 02:46:54 +0100 |
---|---|---|
committer | katze <katze@noreply.codeberg.org> | 2020-11-11 02:46:54 +0100 |
commit | 69595de83bf0429c67cc25a6e3651f3f1e0d1f04 (patch) | |
tree | 13915dc247e9ff8782e35cd2ec7ae7f7e0ad0ee4 /tool/PGListUtil/src/common/CIpList.h | |
parent | b3a4f05d9f7f36d4822bbcfce6785f98bc0bf4fa (diff) | |
download | cloudflare-tor-69595de83bf0429c67cc25a6e3651f3f1e0d1f04.tar.lz cloudflare-tor-69595de83bf0429c67cc25a6e3651f3f1e0d1f04.tar.xz cloudflare-tor-69595de83bf0429c67cc25a6e3651f3f1e0d1f04.zip |
Upload files to 'tool/PGListUtil/src/common'
Diffstat (limited to 'tool/PGListUtil/src/common/CIpList.h')
-rw-r--r-- | tool/PGListUtil/src/common/CIpList.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tool/PGListUtil/src/common/CIpList.h b/tool/PGListUtil/src/common/CIpList.h new file mode 100644 index 00000000..591c3877 --- /dev/null +++ b/tool/PGListUtil/src/common/CIpList.h @@ -0,0 +1,56 @@ +#ifndef CIPLIST_H
+#define CIPLIST_H
+
+#include <boost/pool/pool.hpp>
+#include <boost/xpressive/xpressive.hpp>
+#include "common.h"
+#include "CFilter.h"
+
+namespace pglu {
+namespace ip {
+
+struct CIp {
+ char * caption;
+ union {
+ ulong ip64;
+ uint ip32[2];
+ uchar ip8[8];
+ };
+ CIp * next;
+};
+
+class CIpList {
+private:
+ boost::pool<> m_poolIp;
+ CIp m_ipHead;
+ CIp * m_ipFoot;
+
+ filter::CFilter m_filter;
+
+ int m_count;
+ int m_countDisabled;
+
+ CIp * CreateIp(boost::xpressive::cmatch & match);
+
+public:
+ CIpList();
+ ~CIpList();
+
+ void Clear();
+
+ void SetFilter(const char *filter, const filter::EFilterMode mode, const bool del);
+ void UnSetFilter();
+
+ bool LoadListFile(const char *path);
+ bool SaveListFile(const char *path, const bool append);
+
+ void CheckAndSort(const bool sortCap, const bool sortIp, const bool delDupIp);
+
+ int Count();
+ int CountDisabled();
+};
+
+} // namespace ip
+} // namespace pglu
+
+#endif // CIPLIST_H
|