Skip to content

Commit

Permalink
ban.cpp refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
Selat authored and sapier committed Aug 22, 2014
1 parent dec8c43 commit c58b9d8
Showing 1 changed file with 10 additions and 19 deletions.
29 changes: 10 additions & 19 deletions src/ban.cpp
Expand Up @@ -57,18 +57,16 @@ void BanManager::load()
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::getline(is, line, '\n');
Strfnd f(line);
std::string ip = trim(f.next("|"));
std::string name = trim(f.next("|"));
if(ip.empty())
continue;
m_ips[ip] = name;
if(!ip.empty()) {
m_ips[ip] = name;
}
}
m_modified = false;
}
Expand Down Expand Up @@ -135,22 +133,15 @@ void BanManager::add(const std::string &ip, const std::string &name)
void BanManager::remove(const std::string &ip_or_name)
{
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
i = m_ips.begin();
i != m_ips.end(); i++)
{
if(i->first == ip_or_name || i->second == ip_or_name)
ips_to_delete.insert(i->first);
}
// Erase them
for(std::set<std::string>::iterator
i = ips_to_delete.begin();
i != ips_to_delete.end(); i++)
i != m_ips.end();)
{
m_ips.erase(*i);
if((i->first == ip_or_name) || (i->second == ip_or_name)) {
m_ips.erase(i++);
} else {
++i;
}
}
m_modified = true;
}
Expand Down

0 comments on commit c58b9d8

Please sign in to comment.