- SVSHoldMap::iterator n = HoldMap.find(parameters[0].c_str());
- if (n != HoldMap.end())
- {
- /* form: svshold nickname removes a hold. */
- for (SVSHoldlist::iterator iter = SVSHolds.begin(); iter != SVSHolds.end(); iter++)
- {
- if (parameters[0] == assign((*iter)->nickname))
- {
- unsigned long remaining = 0;
- if ((*iter)->length)
- {
- remaining = ((*iter)->set_on + (*iter)->length) - ServerInstance->Time();
- user->WriteServ( "386 %s %s :Removed SVSHOLD with %lu seconds left before expiry (%s)", user->nick.c_str(), (*iter)->nickname.c_str(), (unsigned long)remaining, (*iter)->reason.c_str());
- }
- else
- {
- user->WriteServ( "386 %s %s :Removed permanent SVSHOLD (%s)", user->nick.c_str(), (*iter)->nickname.c_str(), (*iter)->reason.c_str());
- }
- SVSHolds.erase(iter);
- break;
- }
- }