- return Version(1, 2, 0, 1, VF_COMMON | VF_VENDOR, API_VERSION);
- }
-
- std::string EncodeSVSHold(const SVSHold* ban)
- {
- std::ostringstream stream;
- stream << ban->nickname << " " << ban->set_by << " " << ban->set_on << " " << ban->length << " :" << ban->reason;
- return stream.str();
- }
-
- SVSHold* DecodeSVSHold(const std::string &data)
- {
- SVSHold* res = new SVSHold();
- int set_on;
- irc::tokenstream tokens(data);
- tokens.GetToken(res->nickname);
- tokens.GetToken(res->set_by);
- tokens.GetToken(set_on);
- res->set_on = set_on;
- tokens.GetToken(res->length);
- tokens.GetToken(res->reason);
- return res;
- }
-
- void ExpireBans()
- {
- SVSHoldlist::iterator iter,safeiter;
- for (iter = SVSHolds.begin(); iter != SVSHolds.end(); iter++)
- {
- /* 0 == permanent, don't mess with them! -- w00t */
- if ((*iter)->length != 0)
- {
- if ((*iter)->set_on + (*iter)->length <= ServerInstance->Time())
- {
- ServerInstance->Logs->Log("m_svshold",DEBUG, "m_svshold.so: hold on %s expired, removing...", (*iter)->nickname.c_str());
- ServerInstance->SNO->WriteToSnoMask('A',"%lu second SVSHOLD on %s (%s) set %lu seconds ago expired", (unsigned long) (*iter)->length, (*iter)->nickname.c_str(), (*iter)->reason.c_str(), (unsigned long) ServerInstance->Time() - (*iter)->set_on);
- HoldMap.erase(assign((*iter)->nickname));
- delete *iter;
- safeiter = iter;
- --iter;
- SVSHolds.erase(safeiter);
- }
- }
- }