- for (int i = 0; i < Config->ConfValueEnum("badip",&Config->config_f); i++)
- {
- Config->ConfValue("badip","ipmask",i,ipmask,&Config->config_f);
- Config->ConfValue("badip","reason",i,reason,&Config->config_f);
- add_zline(0,"<Config>",reason,ipmask);
- log(DEBUG,"Read Z line (badip tag): ipmask=%s reason=%s",ipmask,reason);
- }
-
- for (int i = 0; i < Config->ConfValueEnum("badnick",&Config->config_f); i++)
- {
- Config->ConfValue("badnick","nick",i,nick,&Config->config_f);
- Config->ConfValue("badnick","reason",i,reason,&Config->config_f);
- add_qline(0,"<Config>",reason,nick);
- log(DEBUG,"Read Q line (badnick tag): nick=%s reason=%s",nick,reason);
- }
-
- for (int i = 0; i < Config->ConfValueEnum("badhost",&Config->config_f); i++)
- {
- Config->ConfValue("badhost","host",i,host,&Config->config_f);
- Config->ConfValue("badhost","reason",i,reason,&Config->config_f);
- add_kline(0,"<Config>",reason,host);
- log(DEBUG,"Read K line (badhost tag): host=%s reason=%s",host,reason);
- }
- for (int i = 0; i < Config->ConfValueEnum("exception",&Config->config_f); i++)
+/*
+ * Checks what users match a given vector of ELines and sets their ban exempt flag accordingly.
+ */
+void XLineManager::CheckELines()
+{
+ ContainerIter n = lookup_lines.find("E");
+
+ if (n == lookup_lines.end())
+ return;
+
+ XLineLookup& ELines = n->second;
+
+ if (ELines.empty())
+ return;
+
+ const UserManager::LocalList& list = ServerInstance->Users.GetLocalUsers();
+ for (UserManager::LocalList::const_iterator u2 = list.begin(); u2 != list.end(); u2++)