mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 11:09:04 -04:00
Sexeger!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7241 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
d2717df5ef
commit
c2993f666f
@ -1086,7 +1086,7 @@ class CoreExport InspIRCd : public classbase
|
|||||||
* (one year, two weeks, three days, four hours, six minutes and five seconds)
|
* (one year, two weeks, three days, four hours, six minutes and five seconds)
|
||||||
* @return The total number of seconds
|
* @return The total number of seconds
|
||||||
*/
|
*/
|
||||||
long Duration(const char* str);
|
long Duration(const std::string &str);
|
||||||
|
|
||||||
/** Attempt to compare an oper password to a string from the config file.
|
/** Attempt to compare an oper password to a string from the config file.
|
||||||
* This will be passed to handling modules which will compare the data
|
* This will be passed to handling modules which will compare the data
|
||||||
|
@ -38,17 +38,18 @@ CmdResult cmd_eline::Handle (const char** parameters, int pcnt, userrec *user)
|
|||||||
return CMD_FAILURE;
|
return CMD_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ServerInstance->XLines->add_eline(ServerInstance->Duration(parameters[1]),user->nick,parameters[2],parameters[0]))
|
long duration = ServerInstance->Duration(parameters[1]);
|
||||||
|
if (ServerInstance->XLines->add_eline(duration,user->nick,parameters[2],parameters[0]))
|
||||||
{
|
{
|
||||||
FOREACH_MOD(I_OnAddELine,OnAddELine(ServerInstance->Duration(parameters[1]), user, parameters[2], parameters[0]));
|
FOREACH_MOD(I_OnAddELine,OnAddELine(duration, user, parameters[2], parameters[0]));
|
||||||
|
|
||||||
if (!ServerInstance->Duration(parameters[1]))
|
if (!duration)
|
||||||
{
|
{
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent E-line for %s.",user->nick,parameters[0]);
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent E-line for %s.",user->nick,parameters[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
time_t c_requires_crap = ServerInstance->Duration(parameters[1]) + ServerInstance->Time();
|
time_t c_requires_crap = duration + ServerInstance->Time();
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed E-line for %s, expires on %s",user->nick,parameters[0],
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed E-line for %s, expires on %s",user->nick,parameters[0],
|
||||||
ServerInstance->TimeString(c_requires_crap).c_str());
|
ServerInstance->TimeString(c_requires_crap).c_str());
|
||||||
}
|
}
|
||||||
|
@ -43,20 +43,21 @@ CmdResult cmd_gline::Handle (const char** parameters, int pcnt, userrec *user)
|
|||||||
return CMD_FAILURE;
|
return CMD_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ServerInstance->XLines->add_gline(ServerInstance->Duration(parameters[1]),user->nick,parameters[2],parameters[0]))
|
long duration = ServerInstance->Duration(parameters[1]);
|
||||||
|
if (ServerInstance->XLines->add_gline(duration,user->nick,parameters[2],parameters[0]))
|
||||||
{
|
{
|
||||||
int to_apply = APPLY_GLINES;
|
int to_apply = APPLY_GLINES;
|
||||||
|
|
||||||
FOREACH_MOD(I_OnAddGLine,OnAddGLine(ServerInstance->Duration(parameters[1]), user, parameters[2], parameters[0]));
|
FOREACH_MOD(I_OnAddGLine,OnAddGLine(duration, user, parameters[2], parameters[0]));
|
||||||
|
|
||||||
if (!ServerInstance->Duration(parameters[1]))
|
if (!duration)
|
||||||
{
|
{
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent G-line for %s.",user->nick,parameters[0]);
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent G-line for %s.",user->nick,parameters[0]);
|
||||||
to_apply |= APPLY_PERM_ONLY;
|
to_apply |= APPLY_PERM_ONLY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
time_t c_requires_crap = ServerInstance->Duration(parameters[1]) + ServerInstance->Time();
|
time_t c_requires_crap = duration + ServerInstance->Time();
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed G-line for %s, expires on %s",user->nick,parameters[0],
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed G-line for %s, expires on %s",user->nick,parameters[0],
|
||||||
ServerInstance->TimeString(c_requires_crap).c_str());
|
ServerInstance->TimeString(c_requires_crap).c_str());
|
||||||
}
|
}
|
||||||
|
@ -43,20 +43,21 @@ CmdResult cmd_kline::Handle (const char** parameters, int pcnt, userrec *user)
|
|||||||
return CMD_FAILURE;
|
return CMD_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ServerInstance->XLines->add_kline(ServerInstance->Duration(parameters[1]),user->nick,parameters[2],parameters[0]))
|
long duration = ServerInstance->Duration(parameters[1]);
|
||||||
|
if (ServerInstance->XLines->add_kline(duration,user->nick,parameters[2],parameters[0]))
|
||||||
{
|
{
|
||||||
int to_apply = APPLY_KLINES;
|
int to_apply = APPLY_KLINES;
|
||||||
|
|
||||||
FOREACH_MOD(I_OnAddKLine,OnAddKLine(ServerInstance->Duration(parameters[1]), user, parameters[2], parameters[0]));
|
FOREACH_MOD(I_OnAddKLine,OnAddKLine(duration, user, parameters[2], parameters[0]));
|
||||||
|
|
||||||
if (!ServerInstance->Duration(parameters[1]))
|
if (!duration)
|
||||||
{
|
{
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent K-line for %s.",user->nick,parameters[0]);
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent K-line for %s.",user->nick,parameters[0]);
|
||||||
to_apply |= APPLY_PERM_ONLY;
|
to_apply |= APPLY_PERM_ONLY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
time_t c_requires_crap = ServerInstance->Duration(parameters[1]) + ServerInstance->Time();
|
time_t c_requires_crap = duration + ServerInstance->Time();
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed K-line for %s, expires on %s",user->nick,parameters[0],
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed K-line for %s, expires on %s",user->nick,parameters[0],
|
||||||
ServerInstance->TimeString(c_requires_crap).c_str());
|
ServerInstance->TimeString(c_requires_crap).c_str());
|
||||||
}
|
}
|
||||||
|
@ -38,19 +38,19 @@ CmdResult cmd_qline::Handle (const char** parameters, int pcnt, userrec *user)
|
|||||||
return CMD_FAILURE;
|
return CMD_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ServerInstance->XLines->add_qline(ServerInstance->Duration(parameters[1]),user->nick,parameters[2],parameters[0]))
|
long duration = ServerInstance->Duration(parameters[1]);
|
||||||
|
if (ServerInstance->XLines->add_qline(duration,user->nick,parameters[2],parameters[0]))
|
||||||
{
|
{
|
||||||
int to_apply = APPLY_QLINES;
|
int to_apply = APPLY_QLINES;
|
||||||
|
FOREACH_MOD(I_OnAddQLine,OnAddQLine(duration, user, parameters[2], parameters[0]));
|
||||||
FOREACH_MOD(I_OnAddQLine,OnAddQLine(ServerInstance->Duration(parameters[1]), user, parameters[2], parameters[0]));
|
if (!duration)
|
||||||
if (!ServerInstance->Duration(parameters[1]))
|
|
||||||
{
|
{
|
||||||
to_apply |= APPLY_PERM_ONLY;
|
to_apply |= APPLY_PERM_ONLY;
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent Q-line for %s.",user->nick,parameters[0]);
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent Q-line for %s.",user->nick,parameters[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
time_t c_requires_crap = ServerInstance->Duration(parameters[1]) + ServerInstance->Time();
|
time_t c_requires_crap = duration + ServerInstance->Time();
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed Q-line for %s, expires on %s",user->nick,parameters[0],
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed Q-line for %s, expires on %s",user->nick,parameters[0],
|
||||||
ServerInstance->TimeString(c_requires_crap).c_str());
|
ServerInstance->TimeString(c_requires_crap).c_str());
|
||||||
}
|
}
|
||||||
|
@ -38,19 +38,20 @@ CmdResult cmd_zline::Handle (const char** parameters, int pcnt, userrec *user)
|
|||||||
if (ServerInstance->IPMatchesEveryone(parameters[0],user))
|
if (ServerInstance->IPMatchesEveryone(parameters[0],user))
|
||||||
return CMD_FAILURE;
|
return CMD_FAILURE;
|
||||||
|
|
||||||
if (ServerInstance->XLines->add_zline(ServerInstance->Duration(parameters[1]),user->nick,parameters[2],parameters[0]))
|
long duration = ServerInstance->Duration(parameters[1]);
|
||||||
|
if (ServerInstance->XLines->add_zline(duration,user->nick,parameters[2],parameters[0]))
|
||||||
{
|
{
|
||||||
int to_apply = APPLY_ZLINES;
|
int to_apply = APPLY_ZLINES;
|
||||||
|
|
||||||
FOREACH_MOD(I_OnAddZLine,OnAddZLine(ServerInstance->Duration(parameters[1]), user, parameters[2], parameters[0]));
|
FOREACH_MOD(I_OnAddZLine,OnAddZLine(duration, user, parameters[2], parameters[0]));
|
||||||
if (!ServerInstance->Duration(parameters[1]))
|
if (!duration)
|
||||||
{
|
{
|
||||||
to_apply |= APPLY_PERM_ONLY;
|
to_apply |= APPLY_PERM_ONLY;
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent Z-line for %s.",user->nick,parameters[0]);
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent Z-line for %s.",user->nick,parameters[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
time_t c_requires_crap = ServerInstance->Duration(parameters[1]) + ServerInstance->Time();
|
time_t c_requires_crap = duration + ServerInstance->Time();
|
||||||
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed Z-line for %s, expires on %s",user->nick,parameters[0],
|
ServerInstance->SNO->WriteToSnoMask('x',"%s added timed Z-line for %s, expires on %s",user->nick,parameters[0],
|
||||||
ServerInstance->TimeString(c_requires_crap).c_str());
|
ServerInstance->TimeString(c_requires_crap).c_str());
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ std::string InspIRCd::TimeString(time_t curtime)
|
|||||||
/** Refactored by Brain, Jun 2007. Much faster with some clever O(1) array
|
/** Refactored by Brain, Jun 2007. Much faster with some clever O(1) array
|
||||||
* lookups and pointer maths.
|
* lookups and pointer maths.
|
||||||
*/
|
*/
|
||||||
long InspIRCd::Duration(const char* str)
|
long InspIRCd::Duration(const std::string &str)
|
||||||
{
|
{
|
||||||
unsigned char multiplier = 0;
|
unsigned char multiplier = 0;
|
||||||
long total = 0;
|
long total = 0;
|
||||||
@ -73,7 +73,7 @@ long InspIRCd::Duration(const char* str)
|
|||||||
long subtotal = 0;
|
long subtotal = 0;
|
||||||
|
|
||||||
/* Iterate each item in the string, looking for number or multiplier */
|
/* Iterate each item in the string, looking for number or multiplier */
|
||||||
for (const char* i = str + strlen(str) - 1; i >= str; --i)
|
for (std::string::const_reverse_iterator i = str.rbegin(); i != str.rend(); ++i)
|
||||||
{
|
{
|
||||||
/* Found a number, queue it onto the current number */
|
/* Found a number, queue it onto the current number */
|
||||||
if ((*i >= '0') && (*i <= '9'))
|
if ((*i >= '0') && (*i <= '9'))
|
||||||
|
@ -139,7 +139,7 @@ class ModuleFilterPCRE : public FilterBase
|
|||||||
std::string reason = MyConf.ReadValue("keyword", "reason", index);
|
std::string reason = MyConf.ReadValue("keyword", "reason", index);
|
||||||
std::string action = MyConf.ReadValue("keyword", "action", index);
|
std::string action = MyConf.ReadValue("keyword", "action", index);
|
||||||
std::string flags = MyConf.ReadValue("keyword", "flags", index);
|
std::string flags = MyConf.ReadValue("keyword", "flags", index);
|
||||||
long gline_time = ServerInstance->Duration(MyConf.ReadValue("keyword", "duration", index).c_str());
|
long gline_time = ServerInstance->Duration(MyConf.ReadValue("keyword", "duration", index));
|
||||||
if (action.empty())
|
if (action.empty())
|
||||||
action = "none";
|
action = "none";
|
||||||
if (flags.empty())
|
if (flags.empty())
|
||||||
|
@ -161,7 +161,7 @@ class cmd_dccallow : public command_t
|
|||||||
long length;
|
long length;
|
||||||
if (pcnt < 2)
|
if (pcnt < 2)
|
||||||
{
|
{
|
||||||
length = ServerInstance->Duration(default_length.c_str());
|
length = ServerInstance->Duration(default_length);
|
||||||
}
|
}
|
||||||
else if (!atoi(parameters[1]))
|
else if (!atoi(parameters[1]))
|
||||||
{
|
{
|
||||||
|
@ -223,7 +223,7 @@ class ModuleDNSBL : public Module
|
|||||||
e->reason = MyConf->ReadValue("dnsbl", "reason", i);
|
e->reason = MyConf->ReadValue("dnsbl", "reason", i);
|
||||||
e->domain = MyConf->ReadValue("dnsbl", "domain", i);
|
e->domain = MyConf->ReadValue("dnsbl", "domain", i);
|
||||||
e->banaction = str2banaction(MyConf->ReadValue("dnsbl", "action", i));
|
e->banaction = str2banaction(MyConf->ReadValue("dnsbl", "action", i));
|
||||||
e->duration = ServerInstance->Duration(MyConf->ReadValue("dnsbl", "duration", i).c_str());
|
e->duration = ServerInstance->Duration(MyConf->ReadValue("dnsbl", "duration", i));
|
||||||
e->bitmask = MyConf->ReadInteger("dnsbl", "bitmask", i, false);
|
e->bitmask = MyConf->ReadInteger("dnsbl", "bitmask", i, false);
|
||||||
|
|
||||||
/* yeah, logic here is a little messy */
|
/* yeah, logic here is a little messy */
|
||||||
|
@ -106,7 +106,7 @@ class ModuleFilter : public FilterBase
|
|||||||
std::string reason = MyConf->ReadValue("keyword","reason",index);
|
std::string reason = MyConf->ReadValue("keyword","reason",index);
|
||||||
std::string do_action = MyConf->ReadValue("keyword","action",index);
|
std::string do_action = MyConf->ReadValue("keyword","action",index);
|
||||||
std::string flags = MyConf->ReadValue("keyword","flags",index);
|
std::string flags = MyConf->ReadValue("keyword","flags",index);
|
||||||
long gline_time = ServerInstance->Duration(MyConf->ReadValue("keyword","duration",index).c_str());
|
long gline_time = ServerInstance->Duration(MyConf->ReadValue("keyword","duration",index));
|
||||||
if (do_action.empty())
|
if (do_action.empty())
|
||||||
do_action = "none";
|
do_action = "none";
|
||||||
if (flags.empty())
|
if (flags.empty())
|
||||||
|
@ -67,14 +67,13 @@ class cmd_tban : public command_t
|
|||||||
}
|
}
|
||||||
TimedBan T;
|
TimedBan T;
|
||||||
std::string channelname = parameters[0];
|
std::string channelname = parameters[0];
|
||||||
unsigned long expire = ServerInstance->Duration(parameters[1]) + time(NULL);
|
long duration = ServerInstance->Duration(parameters[1]);
|
||||||
if (ServerInstance->Duration(parameters[1]) < 1)
|
unsigned long expire = duration + time(NULL);
|
||||||
|
if (duration < 1)
|
||||||
{
|
{
|
||||||
user->WriteServ("NOTICE "+std::string(user->nick)+" :Invalid ban time");
|
user->WriteServ("NOTICE "+std::string(user->nick)+" :Invalid ban time");
|
||||||
return CMD_FAILURE;
|
return CMD_FAILURE;
|
||||||
}
|
}
|
||||||
char duration[MAXBUF];
|
|
||||||
snprintf(duration,MAXBUF,"%lu",ServerInstance->Duration(parameters[1]));
|
|
||||||
std::string mask = parameters[2];
|
std::string mask = parameters[2];
|
||||||
const char *setban[32];
|
const char *setban[32];
|
||||||
setban[0] = parameters[0];
|
setban[0] = parameters[0];
|
||||||
@ -94,7 +93,7 @@ class cmd_tban : public command_t
|
|||||||
T.mask = mask;
|
T.mask = mask;
|
||||||
T.expire = expire;
|
T.expire = expire;
|
||||||
TimedBanList.push_back(T);
|
TimedBanList.push_back(T);
|
||||||
channel->WriteChannelWithServ(ServerInstance->Config->ServerName, "NOTICE %s :%s added a timed ban on %s lasting for %s seconds.", channel->name, user->nick, mask.c_str(), duration);
|
channel->WriteChannelWithServ(ServerInstance->Config->ServerName, "NOTICE %s :%s added a timed ban on %s lasting for %ld seconds.", channel->name, user->nick, mask.c_str(), duration);
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
return CMD_FAILURE;
|
return CMD_FAILURE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user