1
0
mirror of https://github.com/anope/anope.git synced 2026-07-05 04:33:12 +02:00

Added flood_mode_check() function to IRCDProtoNew class.

Conflicts:

	include/extern.h
	include/services.h
	src/ircd.c
	src/protocol/bahamut.c
	src/protocol/bahamut.h
	src/protocol/charybdis.c
	src/protocol/charybdis.h
	src/protocol/inspircd11.c
	src/protocol/inspircd11.h
	src/protocol/ratbox.c
	src/protocol/ratbox.h
	src/protocol/unreal32.c
	src/protocol/unreal32.h


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1288 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
Robin Burchell w00t@inspircd.org
2008-10-01 18:12:23 +00:00
parent a2b5941fc7
commit eca7e89612
13 changed files with 55 additions and 144 deletions
+4 -15
View File
@@ -1266,18 +1266,11 @@ int anope_event_admin(const char *source, int ac, const char **av)
return MOD_CONT;
}
int bahamut_flood_mode_check(const char *value)
int BahamutIRCdProto::flood_mode_check(const char *value)
{
char *dp, *end;
if (value && *value != ':'
&& (strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0)
&& (*dp == ':') && (*(++dp) != 0) && (strtoul(dp, &end, 10) > 0)
&& (*end == 0)) {
return 1;
} else {
return 0;
}
char *dp, *end;
if (value && *value != ':' && strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0 && *dp == ':' && *(++dp) && strtoul(dp, &end, 10) > 0 && !*end) return 1;
else return 0;
}
/*
@@ -1332,10 +1325,6 @@ void moduleAddAnopeCmds()
pmodule_cmd_242(bahamut_cmd_242);
pmodule_cmd_243(bahamut_cmd_243);
pmodule_cmd_211(bahamut_cmd_211);
pmodule_flood_mode_check(bahamut_flood_mode_check);
pmodule_valid_nick(bahamut_valid_nick);
pmodule_valid_chan(bahamut_valid_chan);
pmodule_set_umode(bahamut_set_umode);
}
/**
+2 -2
View File
@@ -76,8 +76,6 @@ void bahamut_cmd_318(const char *source, const char *who);
void bahamut_cmd_242(const char *buf);
void bahamut_cmd_243(const char *buf);
void bahamut_cmd_211(const char *buf);
int bahamut_flood_mode_check(const char *value);
int bahamut_valid_nick(const char *nick);
class BahamutIRCdProto : public IRCDProtoNew {
public:
@@ -110,4 +108,6 @@ class BahamutIRCdProto : public IRCDProtoNew {
void cmd_svid_umode3(User *, const char *);
void cmd_eob();
void cmd_server(const char *, int, const char *);
void set_umode(User *, int, const char **);
int flood_mode_check(const char *);
} ircd_proto;
+4 -17
View File
@@ -1468,20 +1468,11 @@ int anope_event_bmask(const char *source, int ac, const char **av)
return MOD_CONT;
}
int charybdis_flood_mode_check(const char *value)
int CharybdisProto::flood_mode_check(const char *value)
{
char *dp, *end;
if (value && *value != ':'
&& (strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0)
&& (*dp == ':') && (*(++dp) != 0) && (strtoul(dp, &end, 10) > 0)
&& (*end == 0)) {
return 1;
} else {
return 0;
}
return 0;
char *dp, *end;
if (value && *value != ':' && strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0 && *dp == ':' && *(++dp) && strtoul(dp, &end, 10) > 0 && !*end) return 1;
else return 0;
}
int anope_event_error(const char *source, int ac, const char **av)
@@ -1558,10 +1549,6 @@ void moduleAddAnopeCmds()
pmodule_cmd_242(charybdis_cmd_242);
pmodule_cmd_243(charybdis_cmd_243);
pmodule_cmd_211(charybdis_cmd_211);
pmodule_flood_mode_check(charybdis_flood_mode_check);
pmodule_valid_nick(charybdis_valid_nick);
pmodule_valid_chan(charybdis_valid_chan);
pmodule_set_umode(charybdis_set_umode);
}
/**
+3 -2
View File
@@ -64,8 +64,6 @@ void charybdis_cmd_318(const char *source, const char *who);
void charybdis_cmd_242(const char *buf);
void charybdis_cmd_243(const char *buf);
void charybdis_cmd_211(const char *buf);
int charybdis_flood_mode_check(const char *value);
int charybdis_valid_nick(const char *nick);
class CharybdisProto : public IRCDProtoNew {
public:
@@ -99,4 +97,7 @@ class CharybdisProto : public IRCDProtoNew {
void cmd_unsgline(const char *);
void cmd_sgline(const char *, const char *);
void cmd_server(const char *, int, const char *);
void set_umode(User *, int, const char **);
int valid_nick(const char *);
int flood_mode_check(const char *);
} ircd_proto;
+4 -15
View File
@@ -1514,18 +1514,11 @@ int anope_event_admin(const char *source, int ac, const char **av)
return MOD_CONT;
}
int inspircd_flood_mode_check(const char *value)
int InspIRCdProto::flood_mode_check(const char *value)
{
char *dp, *end;
if (value && *value != ':'
&& (strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0)
&& (*dp == ':') && (*(++dp) != 0) && (strtoul(dp, &end, 10) > 0)
&& (*end == 0)) {
return 1;
} else {
return 0;
}
char *dp, *end;
if (value && *value != ':' && strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0 && *dp == ':' && *(++dp) && strtoul(dp, &end, 10) > 0 && !*end) return 1;
else return 0;
}
int inspircd_valid_nick(const char *nick)
@@ -1562,10 +1555,6 @@ void moduleAddAnopeCmds()
pmodule_cmd_242(inspircd_cmd_242);
pmodule_cmd_243(inspircd_cmd_243);
pmodule_cmd_211(inspircd_cmd_211);
pmodule_flood_mode_check(inspircd_flood_mode_check);
pmodule_valid_nick(inspircd_valid_nick);
pmodule_valid_chan(inspircd_valid_chan);
pmodule_set_umode(inspircd_set_umode);
}
/**
+2 -2
View File
@@ -69,8 +69,6 @@ void inspircd_cmd_318(const char *source, const char *who);
void inspircd_cmd_242(const char *buf);
void inspircd_cmd_243(const char *buf);
void inspircd_cmd_211(const char *buf);
int inspircd_flood_mode_check(const char *value);
int inspircd_valid_nick(const char *nick);
int anope_event_fjoin(const char *source, int ac, const char **av);
int anope_event_fmode(const char *source, int ac, const char **av);
int anope_event_ftopic(const char *source, int ac, const char **av);
@@ -113,4 +111,6 @@ class InspIRCdProto : public IRCDProtoNew {
void cmd_svspart(const char *, const char *, const char *);
void cmd_eob();
void cmd_server(const char *, int, const char *);
void set_umode(User *, int, const char **);
int flood_mode_check(const char *);
} ircd_proto;
-9
View File
@@ -1374,11 +1374,6 @@ int anope_event_bmask(const char *source, int ac, const char **av)
return MOD_CONT;
}
int ratbox_flood_mode_check(const char *value)
{
return 0;
}
int anope_event_error(const char *source, int ac, const char **av)
{
if (ac >= 1) {
@@ -1435,10 +1430,6 @@ void moduleAddAnopeCmds()
pmodule_cmd_242(ratbox_cmd_242);
pmodule_cmd_243(ratbox_cmd_243);
pmodule_cmd_211(ratbox_cmd_211);
pmodule_flood_mode_check(ratbox_flood_mode_check);
pmodule_valid_nick(ratbox_valid_nick);
pmodule_valid_chan(ratbox_valid_chan);
pmodule_set_umode(ratbox_set_umode);
}
/**
-2
View File
@@ -63,8 +63,6 @@ void ratbox_cmd_318(const char *source, const char *who);
void ratbox_cmd_242(const char *buf);
void ratbox_cmd_243(const char *buf);
void ratbox_cmd_211(const char *buf);
int ratbox_flood_mode_check(const char *value);
int ratbox_valid_nick(const char *nick);
class RatboxProto : public IRCDProtoNew {
public:
+26 -50
View File
@@ -1523,53 +1523,33 @@ void unreal_cmd_svswatch(const char *sender, const char *nick, const char *parm)
/* check if +f mode is valid for the ircd */
/* borrowed part of the new check from channels.c in Unreal */
int unreal_flood_mode_check(const char *value)
int UnrealIRCdProto::flood_mode_check(const char *value)
{
char *dp, *end;
/* NEW +F */
char xbuf[256], *p, *p2, *x = xbuf + 1;
int v;
if (!value) {
return 0;
}
if (*value != ':'
&& (strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0)
&& (*dp == ':') && (*(++dp) != 0) && (strtoul(dp, &end, 10) > 0)
&& (*end == 0)) {
return 1;
} else {
/* '['<number><1 letter>[optional: '#'+1 letter],[next..]']'':'<number> */
strncpy(xbuf, value, sizeof(xbuf));
p2 = strchr(xbuf + 1, ']');
if (!p2) {
return 0;
}
*p2 = '\0';
if (*(p2 + 1) != ':') {
return 0;
}
for (x = strtok(xbuf + 1, ","); x; x = strtok(NULL, ",")) {
/* <number><1 letter>[optional: '#'+1 letter] */
p = x;
while (isdigit(*p)) {
p++;
}
if ((*p == '\0')
|| !((*p == 'c') || (*p == 'j') || (*p == 'k')
|| (*p == 'm') || (*p == 'n') || (*p == 't'))) {
continue; /* continue instead of break for forward compatability. */
}
*p = '\0';
v = atoi(x);
if ((v < 1) || (v > 999)) {
return 0;
}
p++;
}
return 1;
}
char *dp, *end;
/* NEW +F */
char xbuf[256], *p, *p2, *x = xbuf + 1;
int v;
if (!value) return 0;
if (*value != ':' && strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0 && *dp == ':' && *(++dp) && strtoul(dp, &end, 10) > 0 && !*end) return 1;
else {
/* '['<number><1 letter>[optional: '#'+1 letter],[next..]']'':'<number> */
strncpy(xbuf, value, sizeof(xbuf));
p2 = strchr(xbuf + 1, ']');
if (!p2) return 0;
*p2 = '\0';
if (*(p2 + 1) != ':') return 0;
for (x = strtok(xbuf + 1, ","); x; x = strtok(NULL, ",")) {
/* <number><1 letter>[optional: '#'+1 letter] */
p = x;
while (isdigit(*p)) ++p;
if (!*p || !(*p == 'c' || *p == 'j' || *p == 'k' || *p == 'm' || *p == 'n' || *p == 't')) continue; /* continue instead of break for forward compatability. */
*p = '\0';
v = atoi(x);
if (v < 1 || v > 999) return 0;
++p;
}
return 1;
}
}
/*
@@ -1875,10 +1855,6 @@ void moduleAddAnopeCmds()
pmodule_cmd_242(unreal_cmd_242);
pmodule_cmd_243(unreal_cmd_243);
pmodule_cmd_211(unreal_cmd_211);
pmodule_flood_mode_check(unreal_flood_mode_check);
pmodule_valid_nick(unreal_valid_nick);
pmodule_valid_chan(unreal_valid_chan);
pmodule_set_umode(unreal_set_umode);
}
/**
+4 -2
View File
@@ -98,8 +98,6 @@ void unreal_cmd_318(const char *source, const char *who);
void unreal_cmd_242(const char *buf);
void unreal_cmd_243(const char *buf);
void unreal_cmd_211(const char *buf);
int unreal_flood_mode_check(const char *value);
int unreal_valid_nick(const char *nick);
class UnrealIRCdProto : public IRCDProtoNew {
public:
@@ -139,4 +137,8 @@ class UnrealIRCdProto : public IRCDProtoNew {
void cmd_swhois(const char *, const char *, const char *);
void cmd_eob();
void cmd_server(const char *, int, const char *);
void set_umode(User *, int, const char **);
int valid_nick(const char *);
int valid_chan(const char *);
int flood_mode_check(const char *);
} ircd_proto;