- if (iter->set_on + iter->length <= ServerInstance->Time())
- {
- ServerInstance->Log(DEBUG, "m_svshold.so: hold on %s expired, removing...", iter->nickname.c_str());
- ServerInstance->WriteOpers("*** %li second SVSHOLD on %s (%s) set %u seconds ago expired", iter->length, iter->nickname.c_str(), iter->reason.c_str(), ServerInstance->Time() - iter->set_on);
- SVSHolds.erase(iter);
- go_again = true;
- }
+ ServerInstance->Log(DEBUG, "m_svshold.so: hold on %s expired, removing...", (*iter)->nickname.c_str());
+ ServerInstance->WriteOpers("*** %li second SVSHOLD on %s (%s) set %u seconds ago expired", (*iter)->length, (*iter)->nickname.c_str(), (*iter)->reason.c_str(), ServerInstance->Time() - (*iter)->set_on);
+ HoldMap.erase(assign((*iter)->nickname));
+ delete *iter;
+ safeiter = iter;
+ --iter;
+ SVSHolds.erase(safeiter);