42 lines
972 B
C++
42 lines
972 B
C++
#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
|