summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes4
-rw-r--r--Changes.lang1
-rw-r--r--include/bahamut.h5
-rw-r--r--include/extern.h2
-rw-r--r--lang/cat.l2
-rw-r--r--lang/de.l2
-rw-r--r--lang/en_us.l2
-rw-r--r--lang/es.l4
-rw-r--r--lang/fr.l2
-rw-r--r--lang/gr.l2
-rw-r--r--lang/hun.l2
-rw-r--r--lang/it.l2
-rw-r--r--lang/nl.l2
-rw-r--r--lang/pl.l2
-rw-r--r--lang/pt.l2
-rw-r--r--lang/ru.l2
-rw-r--r--lang/tr.l2
-rw-r--r--src/bahamut.c24
-rw-r--r--src/chanserv.c33
-rw-r--r--src/dreamforge.c4
-rw-r--r--src/hybrid.c5
-rw-r--r--src/init.c18
-rw-r--r--src/operserv.c20
-rw-r--r--src/ptlink.c7
-rw-r--r--src/rageircd.c7
-rw-r--r--src/ultimate2.c6
-rw-r--r--src/ultimate3.c7
-rw-r--r--src/unreal31.c6
-rw-r--r--src/unreal32.c5
-rw-r--r--src/viagra.c4
-rw-r--r--version.log6
31 files changed, 152 insertions, 40 deletions
diff --git a/Changes b/Changes
index 269bd2c6e..88dd53a0e 100644
--- a/Changes
+++ b/Changes
@@ -16,7 +16,7 @@ Provided by Anope Dev. <dev@anope.org> - 2004
08/24 F Compile error with gcc2. [ #00]
Provided by Trystan <trystan@nomadirc.net> - 2004
-10/05 F Cleaned up how OS/CS CLEAR MODES works [ #00]
+10/06 A Bahamut's channel mode +j (join throttle) [ #00]
10/05 A Globalized CS/NS STATUS messages [ #00]
10/02 A Added NewsCount as new feature in services.conf [ #00]
08/28 A CSupport for +I channel mode. [ #00]
@@ -46,7 +46,7 @@ Provided by Trystan <trystan@nomadirc.net> - 2004
08/28 F Buffer preparation for vsnprintf() call. [#158]
Provided by DrStein <gacevedo@anope.org> - 2004
-10/05 A NS INFO shows the expire time. [ #00]
+10/05 A CS/NS INFO shows the expire time. [ #00]
10/05 A NS GLIST shows the expire time. [ #00]
10/05 F NS GLIST allows the owner of the nick to use the nickname param. [ #00]
09/17 F Fixed MySQL error, whereby checks are only done if mysql is on. [ #00]
diff --git a/Changes.lang b/Changes.lang
index c907a4348..1a078da3b 100644
--- a/Changes.lang
+++ b/Changes.lang
@@ -22,6 +22,7 @@ Anope Version S V N
NICK_INFO_EXPIRE
NICK_GLIST_REPLY
NICK_GLIST_REPLY_ADMIN
+ CHAN_INFO_EXPIRE
*** Mod Strings:
diff --git a/include/bahamut.h b/include/bahamut.h
index 78cefe1f9..691342a79 100644
--- a/include/bahamut.h
+++ b/include/bahamut.h
@@ -61,11 +61,12 @@
#define CMODE_t 0x00000020
#define CMODE_k 0x00000040 /* These two used only by ChanServ */
#define CMODE_l 0x00000080
+#define CMODE_R 0x00000100 /* Only identified users can join */
+#define CMODE_r 0x00000200 /* Set for all registered channels */
#define CMODE_c 0x00000400 /* Colors can't be used */
#define CMODE_M 0x00000800 /* Non-regged nicks can't send messages */
+#define CMODE_j 0x00001000 /* join throttle */
#define CMODE_O 0x00008000 /* Only opers can join */
-#define CMODE_R 0x00000100 /* Only identified users can join */
-#define CMODE_r 0x00000200 /* Set for all registered channels */
#define DEFAULT_MLOCK CMODE_n | CMODE_t | CMODE_r
diff --git a/include/extern.h b/include/extern.h
index ce496b325..ae727cdcb 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -24,6 +24,8 @@ E char *uplink;
/* IRC Variables */
E IRCDVar ircd[];
E IRCDCAPAB ircdcap[];
+E const char flood_mode_char_set[];
+E const char flood_mode_char_remove[];
/**** actions.c ****/
diff --git a/lang/cat.l b/lang/cat.l
index 6777acc8b..53f49ac39 100644
--- a/lang/cat.l
+++ b/lang/cat.l
@@ -1416,6 +1416,8 @@ CHAN_INFO_OPT_NONE
Cap
CHAN_INFO_MODE_LOCK
Mode de lock: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Aquest canal no caducara.
diff --git a/lang/de.l b/lang/de.l
index 7cbb7678e..73d619380 100644
--- a/lang/de.l
+++ b/lang/de.l
@@ -1412,6 +1412,8 @@ CHAN_INFO_OPT_NONE
Keine
CHAN_INFO_MODE_LOCK
Mode lock: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Dieser Channel wird nicht auslaufen.
diff --git a/lang/en_us.l b/lang/en_us.l
index 01a36c14a..0dd815428 100644
--- a/lang/en_us.l
+++ b/lang/en_us.l
@@ -1393,6 +1393,8 @@ CHAN_INFO_OPT_NONE
None
CHAN_INFO_MODE_LOCK
Mode lock: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
This channel will not expire.
diff --git a/lang/es.l b/lang/es.l
index 070ac9e6b..6bf39bf77 100644
--- a/lang/es.l
+++ b/lang/es.l
@@ -603,7 +603,7 @@ NICK_INFO_GREET
NICK_INFO_OPTIONS
Opciones: %s
NICK_INFO_EXPIRE
- Expires in: %s
+ Expira en: %s
# These strings MUST NOT be empty
NICK_INFO_OPT_KILL
Proteccion
@@ -1414,6 +1414,8 @@ CHAN_INFO_OPT_NONE
Ninguno
CHAN_INFO_MODE_LOCK
Modo de lock: %s
+CHAN_INFO_EXPIRE
+ Expira en: %s
CHAN_INFO_NO_EXPIRE
Este canal no expirara.
diff --git a/lang/fr.l b/lang/fr.l
index 942e05751..4c0fa7e0f 100644
--- a/lang/fr.l
+++ b/lang/fr.l
@@ -1415,6 +1415,8 @@ CHAN_INFO_OPT_NONE
Aucune
CHAN_INFO_MODE_LOCK
Modes maintenus: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Ce channel n'expirera pas.
diff --git a/lang/gr.l b/lang/gr.l
index 71a5d049f..f9b319f35 100644
--- a/lang/gr.l
+++ b/lang/gr.l
@@ -1405,6 +1405,8 @@ CHAN_INFO_OPT_NONE
ÊáíÝíá
CHAN_INFO_MODE_LOCK
ÅðéëïãÝò êëåéäþìáôïò: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Áõôü ôï êáíÜëé äåí èá ëÞîåé.
diff --git a/lang/hun.l b/lang/hun.l
index b7375d732..d577b368a 100644
--- a/lang/hun.l
+++ b/lang/hun.l
@@ -1403,6 +1403,8 @@ CHAN_INFO_OPT_NONE
Nincs
CHAN_INFO_MODE_LOCK
Rögzített módok: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Ez a csatorna nem fog elévülni.
diff --git a/lang/it.l b/lang/it.l
index d1a47a04a..d288ceee7 100644
--- a/lang/it.l
+++ b/lang/it.l
@@ -1406,6 +1406,8 @@ CHAN_INFO_OPT_NONE
Nessno
CHAN_INFO_MODE_LOCK
Modi bloccati: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Questo canale non scadrà.
diff --git a/lang/nl.l b/lang/nl.l
index 4db06622b..b9431bbba 100644
--- a/lang/nl.l
+++ b/lang/nl.l
@@ -1403,6 +1403,8 @@ CHAN_INFO_OPT_NONE
Geen
CHAN_INFO_MODE_LOCK
Modeslot: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Dit kanaal zal niet verlopen.
diff --git a/lang/pl.l b/lang/pl.l
index cf93afcef..ffa5abd37 100644
--- a/lang/pl.l
+++ b/lang/pl.l
@@ -1519,6 +1519,8 @@ CHAN_INFO_OPT_NONE
Brak
CHAN_INFO_MODE_LOCK
Zablokowane tryby: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Ten kana³ nie podlega prawu wygasania.
diff --git a/lang/pt.l b/lang/pt.l
index 0b7433fbd..3710af6f9 100644
--- a/lang/pt.l
+++ b/lang/pt.l
@@ -1407,6 +1407,8 @@ CHAN_INFO_OPT_NONE
Nenhuma
CHAN_INFO_MODE_LOCK
Trava de modo: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Este canal não irá expirar.
diff --git a/lang/ru.l b/lang/ru.l
index 4de546c39..b99b6ab98 100644
--- a/lang/ru.l
+++ b/lang/ru.l
@@ -1401,6 +1401,8 @@ CHAN_INFO_OPT_NONE
Íåò
CHAN_INFO_MODE_LOCK
Áëîêèðîâêà ðåæèìîâ: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Ýòîò êàíàë íèêîãäà íå èñòå÷åò.
diff --git a/lang/tr.l b/lang/tr.l
index 3442dca75..dfe4f8504 100644
--- a/lang/tr.l
+++ b/lang/tr.l
@@ -1411,6 +1411,8 @@ CHAN_INFO_OPT_NONE
YOK
CHAN_INFO_MODE_LOCK
Mod kilidi: %s
+CHAN_INFO_EXPIRE
+ Expires in: %s
CHAN_INFO_NO_EXPIRE
Bu kanal için zaman aþýmý söz konusu deðil.
diff --git a/src/bahamut.c b/src/bahamut.c
index 032268aae..e9e395293 100644
--- a/src/bahamut.c
+++ b/src/bahamut.c
@@ -20,6 +20,10 @@
const char version_protocol[] = "BahamutIRCd 1.4.*/1.8.*";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = "+j"; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = "-j"; /* mode char for FLOOD mode on remove */
+
IRCDVar ircd[] = {
{"BahamutIRCd 1.4.*/1.8.*", /* ircd name */
"+o", /* nickserv mode */
@@ -42,7 +46,7 @@ IRCDVar ircd[] = {
"+io", /* Global alias mode */
"+", /* Used by BotServ Bots */
2, /* Chan Max Symbols */
- "-ciklmnpstOR", /* Modes to Remove */
+ "-cilmnpstOR", /* Modes to Remove */
"+o", /* Channel Umode used by Botserv bots */
1, /* SVSNICK */
0, /* Vhost */
@@ -84,9 +88,9 @@ IRCDVar ircd[] = {
0, /* Admin Only */
DEFAULT_MLOCK, /* Default MLOCK */
0, /* Vhost Mode */
- 0, /* +f */
+ 1, /* +f */
0, /* +L */
- 0, /* Mode */
+ CMODE_j, /* Mode */
0, /* Mode */
1,
1, /* No Knock requires +i */
@@ -347,7 +351,7 @@ CBMode cbmodes[128] = {
{0}, /* g */
{0}, /* h */
{CMODE_i, 0, NULL, NULL},
- {0}, /* j */
+ {CMODE_j, 0, set_flood, cs_set_flood}, /* j */
{CMODE_k, 0, set_key, cs_set_key},
{CMODE_l, CBM_MINUS_NO_ARG, set_limit, cs_set_limit},
{CMODE_m, 0, NULL, NULL},
@@ -370,6 +374,7 @@ CBMode cbmodes[128] = {
CBModeInfo cbmodeinfos[] = {
{'c', CMODE_c, 0, NULL, NULL},
{'i', CMODE_i, 0, NULL, NULL},
+ {'j', CMODE_j, 0, get_flood, cs_get_flood},
{'k', CMODE_k, 0, get_key, cs_get_key},
{'l', CMODE_l, CBM_MINUS_NO_ARG, get_limit, cs_get_limit},
{'m', CMODE_m, 0, NULL, NULL},
@@ -1572,7 +1577,16 @@ int anope_event_admin(char *source, int ac, char **av)
int anope_flood_mode_check(char *value)
{
- return 0;
+ 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;
+ }
}
diff --git a/src/chanserv.c b/src/chanserv.c
index 731e5262c..bddb03483 100644
--- a/src/chanserv.c
+++ b/src/chanserv.c
@@ -4815,6 +4815,7 @@ static int do_info(User * u)
const char *commastr = getstring(u->na, COMMA_SPACE);
int is_servadmin = is_services_admin(u);
int show_all = 0;
+ time_t expt;
if (!chan) {
syntax_error(s_ChanServ, u, "INFO", CHAN_INFO_SYNTAX);
@@ -4953,8 +4954,18 @@ static int do_info(User * u)
}
- if ((ci->flags & CI_NO_EXPIRE) && show_all)
+ if ((ci->flags & CI_NO_EXPIRE) && show_all) {
notice_lang(s_ChanServ, u, CHAN_INFO_NO_EXPIRE);
+ } else {
+ if (is_servadmin) {
+ expt = ci->last_used + CSExpire;
+ tm = localtime(&expt);
+ strftime_lang(buf, sizeof(buf), u,
+ STRFTIME_DATE_TIME_FORMAT, tm);
+ notice_lang(s_ChanServ, u, CHAN_INFO_EXPIRE, buf);
+ }
+ }
+
if (ci->flags & CI_SUSPENDED) {
notice_lang(s_ChanServ, u, CHAN_X_SUSPENDED, ci->forbidby,
(ci->forbidreason ? ci->
@@ -5727,8 +5738,7 @@ static int do_clear(User * u)
if (c->mode) {
/* Clear modes the bulk of the modes */
- anope_cmd_mode(s_ChanServ, c->name, "%s %s",
- ircd->modestoremove);
+ anope_cmd_mode(s_ChanServ, c->name, "%s", ircd->modestoremove);
argv[0] = sstrdup(ircd->modestoremove);
chan_set_modes(s_ChanServ, c, 1, argv, 0);
free(argv[0]);
@@ -5750,11 +5760,18 @@ static int do_clear(User * u)
free(argv[0]);
}
if (ircd->fmode && c->flood) {
- anope_cmd_mode(s_ChanServ, c->name, "-f %s", c->flood);
- argv[0] = sstrdup("-f");
- argv[1] = c->flood;
- chan_set_modes(s_ChanServ, c, 2, argv, 0);
- free(argv[0]);
+ if (flood_mode_char_remove) {
+ anope_cmd_mode(s_ChanServ, c->name, "%s %s",
+ flood_mode_char_remove, c->flood);
+ argv[0] = sstrdup(flood_mode_char_remove);
+ argv[1] = c->flood;
+ chan_set_modes(s_ChanServ, c, 2, argv, 0);
+ free(argv[0]);
+ } else {
+ if (debug) {
+ alog("debug: flood_mode_char_remove was not set unable to remove flood/throttle modes");
+ }
+ }
}
}
diff --git a/src/dreamforge.c b/src/dreamforge.c
index 91c23239b..43cd4532a 100644
--- a/src/dreamforge.c
+++ b/src/dreamforge.c
@@ -18,6 +18,10 @@
const char version_protocol[] = "DreamForge 4.6.7";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = ""; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = ""; /* mode char for FLOOD mode on remove */
+
IRCDVar ircd[] = {
{"DreamForge 4.6.7", /* ircd name */
"+o", /* nickserv mode */
diff --git a/src/hybrid.c b/src/hybrid.c
index 7947173e2..637c05db0 100644
--- a/src/hybrid.c
+++ b/src/hybrid.c
@@ -18,6 +18,11 @@
const char version_protocol[] = "Hybrid IRCd 7.0";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = ""; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = ""; /* mode char for FLOOD mode on remove */
+
+
IRCDVar ircd[] = {
{"HybridIRCd 7.*", /* ircd name */
"+o", /* nickserv mode */
diff --git a/src/init.c b/src/init.c
index 486c54e82..7843e9d77 100644
--- a/src/init.c
+++ b/src/init.c
@@ -591,35 +591,35 @@ int init(int ac, char **av)
if (!skeleton) {
load_ns_dbase();
if (debug)
- alog("debug: Loaded %s database (1/9)", s_NickServ);
+ alog("debug: Loaded %s database (1/8)", s_NickServ);
if (s_HostServ) {
load_hs_dbase();
if (debug)
- alog("debug: Loaded %s database (2/9)", s_HostServ);
+ alog("debug: Loaded %s database (2/8)", s_HostServ);
}
if (s_BotServ) {
load_bs_dbase();
if (debug)
- alog("debug: Loaded %s database (3/9)", s_BotServ);
+ alog("debug: Loaded %s database (3/8)", s_BotServ);
} else if (debug)
- alog("debug: BotServ database (4/9) not loaded because BotServ is disabled");
+ alog("debug: BotServ database (3/8) not loaded because BotServ is disabled");
load_cs_dbase();
if (debug)
- alog("debug: Loaded %s database (5/9)", s_ChanServ);
+ alog("debug: Loaded %s database (4/8)", s_ChanServ);
}
load_os_dbase();
if (debug)
- alog("debug: Loaded %s database (6/9)", s_OperServ);
+ alog("debug: Loaded %s database (5/8)", s_OperServ);
load_news();
if (debug)
- alog("debug: Loaded news database (7/9)");
+ alog("debug: Loaded news database (6/8)");
load_exceptions();
if (debug)
- alog("debug: Loaded exception database (8/9)");
+ alog("debug: Loaded exception database (7/8)");
if (PreNickDBName) {
load_ns_req_db();
if (debug)
- alog("debug: Loaded PreNick database (9/9)");
+ alog("debug: Loaded PreNick database (8/8)");
}
#ifdef USE_RDB
}
diff --git a/src/operserv.c b/src/operserv.c
index aa92125b2..7e3864539 100644
--- a/src/operserv.c
+++ b/src/operserv.c
@@ -1670,8 +1670,7 @@ static int do_clearmodes(User * u)
if (c->mode) {
/* Clear modes the bulk of the modes */
- anope_cmd_mode(s_OperServ, c->name, "%s %s",
- ircd->modestoremove);
+ anope_cmd_mode(s_OperServ, c->name, "%s", ircd->modestoremove);
argv[0] = sstrdup(ircd->modestoremove);
chan_set_modes(s_OperServ, c, 1, argv, 0);
free(argv[0]);
@@ -1693,11 +1692,18 @@ static int do_clearmodes(User * u)
free(argv[0]);
}
if (ircd->fmode && c->flood) {
- anope_cmd_mode(s_OperServ, c->name, "-f %s", c->flood);
- argv[0] = sstrdup("-f");
- argv[1] = c->flood;
- chan_set_modes(s_OperServ, c, 2, argv, 0);
- free(argv[0]);
+ if (flood_mode_char_remove) {
+ anope_cmd_mode(s_ChanServ, c->name, "%s %s",
+ flood_mode_char_remove, c->flood);
+ argv[0] = sstrdup(flood_mode_char_remove);
+ argv[1] = c->flood;
+ chan_set_modes(s_ChanServ, c, 2, argv, 0);
+ free(argv[0]);
+ } else {
+ if (debug) {
+ alog("debug: flood_mode_char_remove was not set unable to remove flood/throttle modes");
+ }
+ }
}
}
diff --git a/src/ptlink.c b/src/ptlink.c
index ef4dfe42c..acab8a7a0 100644
--- a/src/ptlink.c
+++ b/src/ptlink.c
@@ -18,6 +18,11 @@
const char version_protocol[] = "PTlink 6.14.5+";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = "+f"; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = "-f"; /* mode char for FLOOD mode on remove */
+
+
IRCDVar ircd[] = {
{"PTlinkIRCd 6.14.*", /* ircd name */
"+o", /* nickserv mode */
@@ -40,7 +45,7 @@ IRCDVar ircd[] = {
"+io", /* Global alias mode */
"+", /* Used by BotServ Bots */
2, /* Chan Max Symbols */
- "-inpsmtCRKOASdcqBNfkl", /* Modes to Remove */
+ "-inpsmtCRKOASdcqBNl", /* Modes to Remove */
"+ao", /* Channel Umode used by Botserv bots */
1, /* SVSNICK */
1, /* Vhost */
diff --git a/src/rageircd.c b/src/rageircd.c
index 6d67bfa2a..555cf58db 100644
--- a/src/rageircd.c
+++ b/src/rageircd.c
@@ -18,6 +18,11 @@
const char version_protocol[] = "RageIRCd 2.0.x";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = ""; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = ""; /* mode char for FLOOD mode on remove */
+
+
IRCDVar ircd[] = {
{"RageIRCd 2.0.*", /* ircd name */
"+d", /* nickserv mode */
@@ -40,7 +45,7 @@ IRCDVar ircd[] = {
"+io", /* Global alias mode */
"+", /* Used by BotServ Bots */
3, /* Chan Max Symbols */
- "-iklmnpRstcOACNM", /* Modes to Remove */
+ "-ilmnpRstcOACNM", /* Modes to Remove */
"+o", /* Channel Umode used by Botserv bots */
1, /* SVSNICK */
1, /* Vhost */
diff --git a/src/ultimate2.c b/src/ultimate2.c
index 51cb1bed0..267c60ca3 100644
--- a/src/ultimate2.c
+++ b/src/ultimate2.c
@@ -18,6 +18,10 @@
const char version_protocol[] = "UltimateIRCd 2.8.2+";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = "+f"; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = "-f"; /* mode char for FLOOD mode on remove */
+
IRCDVar ircd[] = {
{"UltimateIRCd 2.8.*", /* ircd name */
"+S", /* nickserv mode */
@@ -40,7 +44,7 @@ IRCDVar ircd[] = {
"+ioS", /* Global alias mode */
"+pS", /* Used by BotServ Bots */
3, /* Chan Max Symbols */
- "-kiflmnpstxAIKLORS", /* Modes to Remove */
+ "-ilmnpstxAIKORS", /* Modes to Remove */
"+ao", /* Channel Umode used by Botserv bots */
1, /* SVSNICK */
1, /* Vhost */
diff --git a/src/ultimate3.c b/src/ultimate3.c
index 792db3902..dcde5b3a3 100644
--- a/src/ultimate3.c
+++ b/src/ultimate3.c
@@ -18,6 +18,11 @@
const char version_protocol[] = "UltimateIRCd 3.0.0.a26+";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = ""; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = ""; /* mode char for FLOOD mode on remove */
+
+
IRCDVar ircd[] = {
{"UltimateIRCd 3.0.*", /* ircd name */
"+S", /* nickserv mode */
@@ -40,7 +45,7 @@ IRCDVar ircd[] = {
"+io", /* Global alias mode */
"+S", /* Used by BotServ Bots */
5, /* Chan Max Symbols */
- "-iklmnpqstRKAO", /* Modes to Remove */
+ "-ilmnpqstRKAO", /* Modes to Remove */
"+ao", /* Channel Umode used by Botserv bots */
1, /* SVSNICK */
1, /* Vhost */
diff --git a/src/unreal31.c b/src/unreal31.c
index d948c09a4..89aca79d6 100644
--- a/src/unreal31.c
+++ b/src/unreal31.c
@@ -20,6 +20,10 @@
const char version_protocol[] = "UnrealIRCd 3.1.1+";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = "+f"; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = "-f"; /* mode char for FLOOD mode on remove */
+
IRCDVar ircd[] = {
{"UnrealIRCd 3.1.x", /* ircd name */
"+oS", /* nickserv mode */
@@ -42,7 +46,7 @@ IRCDVar ircd[] = {
"+ioS", /* Global alias mode */
"+qS", /* Used by BotServ Bots */
5, /* Chan Max Symbols */
- "-ckiflmnpstuzACGHKLNOQRSV", /* Modes to Remove */
+ "-cilmnpstuzACGHKNOQRSV", /* Modes to Remove */
"+ao", /* Channel Umode used by Botserv bots */
1, /* SVSNICK */
1, /* Vhost */
diff --git a/src/unreal32.c b/src/unreal32.c
index 062a57caf..43054628e 100644
--- a/src/unreal32.c
+++ b/src/unreal32.c
@@ -20,6 +20,10 @@
const char version_protocol[] = "UnrealIRCd 3.2+";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = "+f"; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = "-f"; /* mode char for FLOOD mode on remove */
+
IRCDVar ircd[] = {
{"UnrealIRCd 3.2.x", /* ircd name */
"+oS", /* nickserv mode */
@@ -452,6 +456,7 @@ void moduleAddIRCDMsgs(void) {
m = createMessage("401", NULL); addCoreMessage(IRCD,m);
m = createMessage("436", anope_event_436); addCoreMessage(IRCD,m);
+ m = createMessage("451", anope_event_null); addCoreMessage(IRCD,m);
m = createMessage("AWAY", anope_event_away); addCoreMessage(IRCD,m);
if (UseTokens) {
m = createMessage("6", anope_event_away); addCoreMessage(IRCD,m);
diff --git a/src/viagra.c b/src/viagra.c
index a9f621888..260915c09 100644
--- a/src/viagra.c
+++ b/src/viagra.c
@@ -18,6 +18,10 @@
const char version_protocol[] = "ViagraIRCd 1.3.x";
+/* Not all ircds use +f for their flood/join throttle system */
+const char flood_mode_char_set[] = ""; /* mode char for FLOOD mode on set */
+const char flood_mode_char_remove[] = ""; /* mode char for FLOOD mode on remove */
+
IRCDVar ircd[] = {
{"ViagraIRCd 1.3.*", /* ircd name */
"+oS", /* nickserv mode */
diff --git a/version.log b/version.log
index 64ab92ef5..f4f734261 100644
--- a/version.log
+++ b/version.log
@@ -8,10 +8,14 @@
VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="5"
-VERSION_BUILD="375"
+VERSION_BUILD="376"
# $Log$
#
+# BUILD : 1.7.5 (376)
+# BUGS : N/A
+# NOTES : CS INFO - DrStein, init.c typo - DrStein, Bahamut +j support - TSL, more protocol clean up
+#
# BUILD : 1.7.5 (375)
# BUGS :
# NOTES : Fixed Changes files errors.