diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-03-11 22:59:43 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-03-11 22:59:43 +0000 |
commit | 5a51984db1796220d1dfcaf2797940b1efc100df (patch) | |
tree | 6448a3fdae7b8d24f4721249b96723ee36a98a41 | |
parent | b75abf9ba3c220d52033b866c15ef7e6f9c0a3b8 (diff) |
Added support for tracking permanent channels
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2807 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | include/extern.h | 4 | ||||
-rw-r--r-- | include/services.h | 1 | ||||
-rw-r--r-- | src/channels.c | 4 | ||||
-rw-r--r-- | src/ircd.c | 11 | ||||
-rw-r--r-- | src/protocol/bahamut.c | 1 | ||||
-rw-r--r-- | src/protocol/charybdis.c | 1 | ||||
-rw-r--r-- | src/protocol/dreamforge.c | 1 | ||||
-rw-r--r-- | src/protocol/hybrid.c | 1 | ||||
-rw-r--r-- | src/protocol/inspircd11.c | 1 | ||||
-rw-r--r-- | src/protocol/inspircd12.c | 1 | ||||
-rw-r--r-- | src/protocol/plexus2.c | 1 | ||||
-rw-r--r-- | src/protocol/plexus3.c | 1 | ||||
-rw-r--r-- | src/protocol/ptlink.c | 1 | ||||
-rw-r--r-- | src/protocol/rageircd.c | 1 | ||||
-rw-r--r-- | src/protocol/ratbox.c | 1 | ||||
-rw-r--r-- | src/protocol/shadowircd.c | 1 | ||||
-rw-r--r-- | src/protocol/solidircd.c | 1 | ||||
-rw-r--r-- | src/protocol/ultimate2.c | 1 | ||||
-rw-r--r-- | src/protocol/ultimate3.c | 1 | ||||
-rw-r--r-- | src/protocol/unreal31.c | 1 | ||||
-rw-r--r-- | src/protocol/unreal32.c | 1 | ||||
-rw-r--r-- | src/protocol/viagra.c | 1 | ||||
-rw-r--r-- | version.log | 3 |
24 files changed, 40 insertions, 2 deletions
@@ -1,5 +1,6 @@ Anope Version 1.8 - SVN ----------------------- +3/10 F Added support for tracking permanent channels [ #00] Anope Version 1.8.3 ------------------- diff --git a/include/extern.h b/include/extern.h index a504e1227..d236fa1e8 100644 --- a/include/extern.h +++ b/include/extern.h @@ -696,6 +696,7 @@ E void pmodule_set_umode(void (*func) (User * user, int ac, char **av)); E void pmodule_valid_nick(int (*func) (char *nick)); E void pmodule_valid_chan(int (*func) (char *chan)); E void pmodule_flood_mode_check(int (*func) (char *value)); +E void pmodule_jointhrottle_mode_check(int (*func) (char *value)); E void pmodule_ircd_var(IRCDVar * ircdvar); E void pmodule_ircd_cap(IRCDCAPAB * cap); E void pmodule_ircd_version(char *version); @@ -714,7 +715,7 @@ E void pmodule_secret_cmode(int mode); E void pmodule_private_cmode(int mode); E void pmodule_key_mode(int mode); E void pmodule_limit_mode(int mode); -E void pmodule_jointhrottle_mode_check(int (*func) (char *value)); +E void pmodule_permchan_mode(int mode); E int anope_get_secret_mode(); E int anope_get_invite_mode(); @@ -723,6 +724,7 @@ E int anope_get_limit_mode(); E int anope_get_private_mode(); E int anope_get_invis_mode(); E int anope_get_oper_mode(); +E int anope_get_permchan_mode(); /**** language.c ****/ diff --git a/include/services.h b/include/services.h index fc7ea044b..666f25225 100644 --- a/include/services.h +++ b/include/services.h @@ -1231,6 +1231,7 @@ typedef struct ircd_modes_ { int chan_private; int chan_key; int chan_limit; + int chan_perm; } IRCDModes; diff --git a/src/channels.c b/src/channels.c index c7b96a860..aa7ed4712 100644 --- a/src/channels.c +++ b/src/channels.c @@ -52,6 +52,10 @@ void chan_deluser(User * user, Channel * c) anope_cmd_part(c->ci->bi->nick, c->name, NULL); } + /* Channel is permament and shouldn't be deleted */ + if (anope_get_permchan_mode() && c->mode & anope_get_permchan_mode()) + return; + if (!c->users) chan_delete(c); } diff --git a/src/ircd.c b/src/ircd.c index 987333a24..8d7bb04b9 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -1203,6 +1203,11 @@ void pmodule_limit_mode(int mode) ircd_modes.chan_limit = mode; } +void pmodule_permchan_mode(int mode) +{ + ircd_modes.chan_perm = mode; +} + int anope_get_invis_mode() { return ircd_modes.user_invis; @@ -1237,3 +1242,9 @@ int anope_get_limit_mode() { return ircd_modes.chan_limit; } + +int anope_get_permchan_mode() +{ + return ircd_modes.chan_perm; +} + diff --git a/src/protocol/bahamut.c b/src/protocol/bahamut.c index 65dc176d3..5afcb0cbe 100644 --- a/src/protocol/bahamut.c +++ b/src/protocol/bahamut.c @@ -1678,6 +1678,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/charybdis.c b/src/protocol/charybdis.c index fb51fdcfb..7a3898f54 100644 --- a/src/protocol/charybdis.c +++ b/src/protocol/charybdis.c @@ -1989,6 +1989,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/dreamforge.c b/src/protocol/dreamforge.c index c8095d0f0..178287adc 100644 --- a/src/protocol/dreamforge.c +++ b/src/protocol/dreamforge.c @@ -1385,6 +1385,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/hybrid.c b/src/protocol/hybrid.c index ef183a63e..be3ab6841 100644 --- a/src/protocol/hybrid.c +++ b/src/protocol/hybrid.c @@ -1574,6 +1574,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c index 830685992..0cd011304 100644 --- a/src/protocol/inspircd11.c +++ b/src/protocol/inspircd11.c @@ -1958,6 +1958,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/inspircd12.c b/src/protocol/inspircd12.c index 12244f5cd..a815a3455 100644 --- a/src/protocol/inspircd12.c +++ b/src/protocol/inspircd12.c @@ -2672,6 +2672,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(CMODE_P); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/plexus2.c b/src/protocol/plexus2.c index 3c15e1c9b..bc1611911 100644 --- a/src/protocol/plexus2.c +++ b/src/protocol/plexus2.c @@ -1880,6 +1880,7 @@ AnopeInit (int argc, char **argv) pmodule_private_cmode (CMODE_p); pmodule_key_mode (CMODE_k); pmodule_limit_mode (CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds (); moduleAddIRCDMsgs (); diff --git a/src/protocol/plexus3.c b/src/protocol/plexus3.c index 073784521..c42af5f5e 100644 --- a/src/protocol/plexus3.c +++ b/src/protocol/plexus3.c @@ -1857,6 +1857,7 @@ AnopeInit (int argc, char **argv) pmodule_private_cmode (CMODE_p); pmodule_key_mode (CMODE_k); pmodule_limit_mode (CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds (); moduleAddIRCDMsgs (); diff --git a/src/protocol/ptlink.c b/src/protocol/ptlink.c index 28623aed1..4e23cdd74 100644 --- a/src/protocol/ptlink.c +++ b/src/protocol/ptlink.c @@ -1798,6 +1798,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/rageircd.c b/src/protocol/rageircd.c index 513e7dd81..ac7b25625 100644 --- a/src/protocol/rageircd.c +++ b/src/protocol/rageircd.c @@ -1678,6 +1678,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/ratbox.c b/src/protocol/ratbox.c index 17e6f3516..d5dc33fc0 100644 --- a/src/protocol/ratbox.c +++ b/src/protocol/ratbox.c @@ -1883,6 +1883,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/shadowircd.c b/src/protocol/shadowircd.c index 161a0aaaa..e9a3da012 100644 --- a/src/protocol/shadowircd.c +++ b/src/protocol/shadowircd.c @@ -1834,6 +1834,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/solidircd.c b/src/protocol/solidircd.c index a138454b7..578c33b49 100644 --- a/src/protocol/solidircd.c +++ b/src/protocol/solidircd.c @@ -1706,6 +1706,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/ultimate2.c b/src/protocol/ultimate2.c index 47072761e..9b409b37e 100644 --- a/src/protocol/ultimate2.c +++ b/src/protocol/ultimate2.c @@ -1735,6 +1735,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/ultimate3.c b/src/protocol/ultimate3.c index 9eb625bc7..4c308d49b 100644 --- a/src/protocol/ultimate3.c +++ b/src/protocol/ultimate3.c @@ -1819,6 +1819,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/unreal31.c b/src/protocol/unreal31.c index 36b572158..b48db601e 100644 --- a/src/protocol/unreal31.c +++ b/src/protocol/unreal31.c @@ -1600,6 +1600,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c index 44b3df282..083e64615 100644 --- a/src/protocol/unreal32.c +++ b/src/protocol/unreal32.c @@ -2256,6 +2256,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/src/protocol/viagra.c b/src/protocol/viagra.c index 76783ee7d..9a10ae908 100644 --- a/src/protocol/viagra.c +++ b/src/protocol/viagra.c @@ -1717,6 +1717,7 @@ int AnopeInit(int argc, char **argv) pmodule_private_cmode(CMODE_p); pmodule_key_mode(CMODE_k); pmodule_limit_mode(CMODE_l); + pmodule_permchan_mode(0); moduleAddAnopeCmds(); moduleAddIRCDMsgs(); diff --git a/version.log b/version.log index 479d28d7c..40203b59c 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,11 @@ VERSION_MAJOR="1" VERSION_MINOR="8" VERSION_PATCH="3" VERSION_EXTRA="-svn" -VERSION_BUILD="2801" +VERSION_BUILD="2807" # $Log$ # Changes since 1.8.3 Release +#Revision 2807 - Added support for tracking permanent channels #Revision 2801 - Fixed some memory leaks in ns_register #Revision 2800 - Fixed a bug that would cause users access in channels to seemingly disappear. Introduced in release 1.8.3, revision 2667 #Revision 2792 - Documented /nickserv list's ability to accept ranges |