-CBan DecodeCBan(const std::string &data)
-{
- CBan res;
- std::istringstream stream;
- stream >> res.chname;
- stream >> res.set_by;
- stream >> res.set_on;
- stream >> res.length;
- res.reason = stream.str();
-
- return res;
-}
-
-bool CBanComp(const CBan &ban1, const CBan &ban2)
-{
- return ((ban1.set_on + ban1.length) < (ban2.set_on + ban2.length));
-}
-
-void ExpireBans()
-{
- while(cbans.size() && ((cbans.begin()->set_on + cbans.begin()->length) <= TIME))
- {
- cbanlist::iterator iter = cbans.begin();
-
- log(DEBUG, "m_cban.so: Ban on %s expired, removing...", iter->chname.c_str());
- WriteOpers("*** %li second CBAN on %s (%s) set %u seconds ago expired", iter->length, iter->chname.c_str(), iter->reason.c_str(), TIME - iter->set_on);
- cbans.erase(iter);
- }
-}
-
-bool IsValidChan(const char* cname)
-{
- if(!cname)
- return false;
-
- if(cname[0] != '#')
- return false;
-
- for(unsigned int i = 0; i < strlen(cname); i++)
- if((cname[i] == ' ') || (cname[i] == '\7') || (cname[i] == ','))
- return false;
-
- return true;
-}
-
-class ModuleCBanFactory : public ModuleFactory
-{
- public:
- ModuleCBanFactory()
- {
- }
-
- ~ModuleCBanFactory()
- {
- }
-
- virtual Module * CreateModule(Server* Me)
- {
- return new ModuleCBan(Me);
- }
-
-};
-
-
-extern "C" void * init_module( void )
-{
- return new ModuleCBanFactory;
-}