public:
- std::map<std::string, ELine *> elines;
+ std::map<char, std::map<std::string, ELine *> > lookup_lines;
/** Constructor
* @param Instance A pointer to the creator object
active_lines.push_back(item);
sort(active_lines.begin(), active_lines.end(),XLineManager::XSortComparison);
- elines[hostmask] = item;
+ lookup_lines['E'][hostmask] = item;
// XXX we really only need to check one line (the new one) - this is a bit wasteful!
- CheckELines(ServerInstance, elines);
+ CheckELines(ServerInstance, lookup_lines['E']);
return true;
}
User* u = (User*)(*u2);
u->exempt = false;
}
- ServerInstance->XLines->elines.erase(this->identmask + std::string("@") + this->hostmask);
- CheckELines(ServerInstance, ServerInstance->XLines->elines);
+ ServerInstance->XLines->lookup_lines['E'].erase(this->identmask + std::string("@") + this->hostmask);
+ CheckELines(ServerInstance, ServerInstance->XLines->lookup_lines['E']);
}
// returns a pointer to the reason if a nickname matches a qline, NULL if it didnt match
ELine* XLineManager::matches_exception(User* user)
{
- if (elines.empty())
+ if (lookup_lines['E'].empty())
return NULL;
for (std::vector<XLine*>::iterator i = active_lines.begin(); i != active_lines.end(); i++)