summaryrefslogtreecommitdiff
path: root/src/channels.c
diff options
context:
space:
mode:
authortrystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-12-03 06:07:44 +0000
committertrystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-12-03 06:07:44 +0000
commit1aaeba38f4e5f3169ad1f17bbf28ceaae0af9f8a (patch)
tree22c3896351bc7634005a52958a5c993b1afa3c75 /src/channels.c
parentf18d506cad80b9ed28f02ee33f35332320f3ea04 (diff)
BUILD : 1.7.6 (469) BUGS : N/A NOTES : 1. ultimate3 setting the wrong channel mode on botserv bots 2. helpserv.c is doxygen ready, did some code clean up 3. Services Clients (+S) now override channel modes (yeah no more deopping NeoStats), this only works on ircds where there is a clear services mode (Unreal, Viagra, Ultimeate2/3) 4. send.c is doxygen ready, did some code clean up 5. commands.c id doxygen ready, did some code clean up
git-svn-id: svn://svn.anope.org/anope/trunk@469 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@323 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/channels.c')
-rw-r--r--src/channels.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/channels.c b/src/channels.c
index 3dafaf233..0651df12f 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -235,6 +235,19 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
mode, chan->name, user->nick);
if (add) {
+ /*
+ Okay everyones biggest complaint is that NeoStats or any other
+ services clients are flagged as services but we still strip their
+ channel modes when strict is enabled. This lets them keep the mode and
+ we update our internal user/channel struct - TSL
+ */
+ if (ircd->servicesmode) {
+ if (user->mode & ircd->servicesmode) {
+ chan_remove_user_status(chan, user, cum->status);
+ continue;
+ }
+ }
+
/* Fixes bug #68
- might be a bit ugly but it works, the idea is that since the
is_valid function strips out all of the modes there is no point