* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
+ * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
* E-mail:
* <brain@chatspike.net>
* <Craig@chatspike.net>
#include "helperfuncs.h"
#include "hashcomp.h"
-Server *Srv;
+static Server *Srv;
class TimedBan
{
public:
cmd_tban () : command_t("TBAN", 0, 3)
{
- this->source = "m_timedbans.cpp";
+ this->source = "m_timedbans.so";
}
void Handle (char **parameters, int pcnt, userrec *user)
}
for (timedbans::iterator i = TimedBanList.begin(); i < TimedBanList.end(); i++)
{
- irc::string listitem = i->mask.c_str();
- irc::string target = parameters[2];
+ irc::string listitem = i->mask.c_str();
+ irc::string target = parameters[2];
irc::string listchan = i->channel.c_str();
irc::string targetchan = parameters[0];
if ((listitem == target) && (listchan == targetchan))
char duration[MAXBUF];
snprintf(duration,MAXBUF,"%lu",Srv->CalcDuration(parameters[1]));
std::string mask = parameters[2];
- char *setban[3];
+ char *setban[32];
setban[0] = parameters[0];
setban[1] = "+b";
setban[2] = parameters[2];
TimedBanList.clear();
}
- virtual int OnDelBan(userrec* source, chanrec* chan, std::string banmask)
+ void Implements(char* List)
{
- for (timedbans::iterator i = TimedBanList.begin(); i < TimedBanList.end(); i++)
- {
- irc::string listitem = banmask.c_str();
- irc::string target = i->mask.c_str();
- if (listitem == target)
- {
- TimedBanList.erase(i);
- break;
- }
- }
+ List[I_OnDelBan] = List[I_OnBackgroundTimer] = 1;
+ }
+
+ virtual int OnDelBan(userrec* source, chanrec* chan, const std::string &banmask)
+ {
+ for (timedbans::iterator i = TimedBanList.begin(); i < TimedBanList.end(); i++)
+ {
+ irc::string listitem = banmask.c_str();
+ irc::string target = i->mask.c_str();
+ if (listitem == target)
+ {
+ TimedBanList.erase(i);
+ break;
+ }
+ }
return 0;
}
temp->fd = FD_MAGIC_NUMBER;
temp->server = "";
Srv->SendMode(setban,3,temp);
- delete temp;
+ DELETE(temp);
}
// we used to delete the item here, but we dont need to as the servermode above does it for us,
break;