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 /src | |
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
Diffstat (limited to 'src')
-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 |
20 files changed, 33 insertions, 0 deletions
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(); |