Minetest 5.9.0-dev
 
Loading...
Searching...
No Matches
ban.h
Go to the documentation of this file.
1/*
2Minetest
3Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU Lesser General Public License as published by
7the Free Software Foundation; either version 2.1 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU Lesser General Public License for more details.
14
15You should have received a copy of the GNU Lesser General Public License along
16with this program; if not, write to the Free Software Foundation, Inc.,
1751 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18*/
19
20#pragma once
21
22#include "util/string.h"
23#include "threading/thread.h"
24#include "exceptions.h"
25#include <map>
26#include <string>
27#include <mutex>
28
30{
31public:
32 BanManager(const std::string &banfilepath);
34 void load();
35 void save();
36 bool isIpBanned(const std::string &ip);
37 // Supplying ip_or_name = "" lists all bans.
38 std::string getBanDescription(const std::string &ip_or_name);
39 std::string getBanName(const std::string &ip);
40 void add(const std::string &ip, const std::string &name);
41 void remove(const std::string &ip_or_name);
42 bool isModified();
43
44private:
45 std::mutex m_mutex;
46 std::string m_banfilepath = "";
48 bool m_modified = false;
49};
Definition: ban.h:30
bool isModified()
Definition: ban.cpp:137
std::string getBanDescription(const std::string &ip_or_name)
Definition: ban.cpp:93
bool isIpBanned(const std::string &ip)
Definition: ban.cpp:87
void save()
Definition: ban.cpp:70
StringMap m_ips
Definition: ban.h:47
std::mutex m_mutex
Definition: ban.h:45
std::string m_banfilepath
Definition: ban.h:46
std::string getBanName(const std::string &ip)
Definition: ban.cpp:107
void add(const std::string &ip, const std::string &name)
Definition: ban.cpp:116
void load()
Definition: ban.cpp:47
void remove(const std::string &ip_or_name)
Definition: ban.cpp:123
~BanManager()
Definition: ban.cpp:42
bool m_modified
Definition: ban.h:48
std::unordered_map< std::string, std::string > StringMap
Definition: string.h:78