+ ConfigReader* MyConf = new ConfigReader(ServerInstance);
+
+ for (int index = 0; index < MyConf->Enumerate("keyword"); index++)
+ {
+ this->DeleteFilter(MyConf->ReadValue("keyword","pattern",index));
+
+ std::string pattern = MyConf->ReadValue("keyword","pattern",index);
+ std::string reason = MyConf->ReadValue("keyword","reason",index);
+ std::string do_action = MyConf->ReadValue("keyword","action",index);
+ std::string sflags = MyConf->ReadValue("keyword","flags",index);
+ long gline_time = ServerInstance->Duration(MyConf->ReadValue("keyword","duration",index));
+ if (do_action.empty())
+ do_action = "none";
+ if (sflags.empty())
+ sflags = "*";
+ FilterResult* x = new FilterResult(pattern, reason, do_action, gline_time, sflags);
+ filters[pattern] = x;
+ }
+ delete MyConf;
+ FilterBase::OnRehash(user, parameter);