| 255 | |
| 256 | template<class T> |
| 257 | int CNetBan::Unban(T *pBanPool, const typename T::CDataType *pData) |
| 258 | { |
| 259 | CNetHash NetHash(pData); |
| 260 | CBan<typename T::CDataType> *pBan = pBanPool->Find(pData, &NetHash); |
| 261 | if(pBan) |
| 262 | { |
| 263 | char aBuf[256]; |
| 264 | MakeBanInfo(pBan, aBuf, sizeof(aBuf), MSGTYPE_BANREM); |
| 265 | pBanPool->Remove(pBan); |
| 266 | Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "net_ban", aBuf); |
| 267 | return 0; |
| 268 | } |
| 269 | else |
| 270 | Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "net_ban", "unban failed (invalid entry)"); |
| 271 | return -1; |
| 272 | } |
| 273 | |
| 274 | void CNetBan::Init(IConsole *pConsole, IStorage *pStorage) |
| 275 | { |