#pragma once #ifndef adminList_H_ #define adminList_H_ #include "unicode/uniFile.h" // class that manages lists of reserved IPs // these are remote addresses that must always be allowed in no matter what. class adminList { private: class impl; impl *m_impl; public: struct admin_t { uniString::utf8 m_numericIP; uniString::utf8 m_hostIP; // used to hold the converted IP from a hostname explicit admin_t(const uniString::utf8 &numericIP) throw() : m_numericIP(numericIP) {} admin_t() throw() {} }; // throws if parameters are invalid bool add(const uniString::utf8 &ipAddr, const bool soft) throw(std::exception); // true if removed bool remove(const uniString::utf8 &ipAddr, const bool allStream) throw(); // 1 if found, 0 if not, -1 if empty (assume allowed) int find(const uniString::utf8 &ipAddr) throw(); bool load(const uniFile::filenameType &fn) throw(); adminList(); ~adminList() throw(); }; extern adminList g_adminList; #endif