forked from Mirrorlandia_minetest/minetest
ban.cpp refactoring
This commit is contained in:
parent
dec8c43de3
commit
c58b9d8da3
29
src/ban.cpp
29
src/ban.cpp
@ -57,18 +57,16 @@ void BanManager::load()
|
|||||||
throw SerializationError("BanManager::load(): Couldn't open file");
|
throw SerializationError("BanManager::load(): Couldn't open file");
|
||||||
}
|
}
|
||||||
|
|
||||||
for(;;)
|
while(!is.eof() && is.good())
|
||||||
{
|
{
|
||||||
if(is.eof() || is.good() == false)
|
|
||||||
break;
|
|
||||||
std::string line;
|
std::string line;
|
||||||
std::getline(is, line, '\n');
|
std::getline(is, line, '\n');
|
||||||
Strfnd f(line);
|
Strfnd f(line);
|
||||||
std::string ip = trim(f.next("|"));
|
std::string ip = trim(f.next("|"));
|
||||||
std::string name = trim(f.next("|"));
|
std::string name = trim(f.next("|"));
|
||||||
if(ip.empty())
|
if(!ip.empty()) {
|
||||||
continue;
|
m_ips[ip] = name;
|
||||||
m_ips[ip] = name;
|
}
|
||||||
}
|
}
|
||||||
m_modified = false;
|
m_modified = false;
|
||||||
}
|
}
|
||||||
@ -135,22 +133,15 @@ void BanManager::add(const std::string &ip, const std::string &name)
|
|||||||
void BanManager::remove(const std::string &ip_or_name)
|
void BanManager::remove(const std::string &ip_or_name)
|
||||||
{
|
{
|
||||||
JMutexAutoLock lock(m_mutex);
|
JMutexAutoLock lock(m_mutex);
|
||||||
//m_ips.erase(m_ips.find(ip));
|
|
||||||
// Find out all ip-name pairs that match the ip or name
|
|
||||||
std::set<std::string> ips_to_delete;
|
|
||||||
for(std::map<std::string, std::string>::iterator
|
for(std::map<std::string, std::string>::iterator
|
||||||
i = m_ips.begin();
|
i = m_ips.begin();
|
||||||
i != m_ips.end(); i++)
|
i != m_ips.end();)
|
||||||
{
|
{
|
||||||
if(i->first == ip_or_name || i->second == ip_or_name)
|
if((i->first == ip_or_name) || (i->second == ip_or_name)) {
|
||||||
ips_to_delete.insert(i->first);
|
m_ips.erase(i++);
|
||||||
}
|
} else {
|
||||||
// Erase them
|
++i;
|
||||||
for(std::set<std::string>::iterator
|
}
|
||||||
i = ips_to_delete.begin();
|
|
||||||
i != ips_to_delete.end(); i++)
|
|
||||||
{
|
|
||||||
m_ips.erase(*i);
|
|
||||||
}
|
}
|
||||||
m_modified = true;
|
m_modified = true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user