summaryrefslogtreecommitdiff
path: root/src/channels.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-11-10 16:19:46 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-11-10 16:19:46 +0000
commitabc959a04d7c6de7f192992693e69cd5e798c8b9 (patch)
tree8737cfa78c14065e0dc3bb9142b37d5ff0f8f154 /src/channels.cpp
parentd36107cfe9bcc2b6edd64cafa99fdfc77c3a5fd9 (diff)
m_spy no longer implements SPYNAMES, instead it overrides normal NAMES on the event that: (1) you are an oper and (2) you are not actually ON the channel.
This way it will not break m_auditorium, m_delayjoin etc, however it will work properly with mircs annoying assumptions in its channel list git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8555 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/channels.cpp')
-rw-r--r--src/channels.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index 764126891..14f0f55f1 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -835,6 +835,14 @@ void Channel::UserList(User *user, CUList *ulist)
FOREACH_RESULT(I_OnUserList,OnUserList(user, this, ulist));
if (MOD_RESULT == 1)
return;
+ if (MOD_RESULT != -1)
+ {
+ if ((this->IsModeSet('s')) && (!this->HasUser(user)))
+ {
+ user->WriteServ("401 %s %s :No such nick/channel",user->nick, this->name);
+ return;
+ }
+ }
dlen = curlen = snprintf(list,MAXBUF,"353 %s %c %s :", user->nick, this->IsModeSet('s') ? '@' : this->IsModeSet('p') ? '*' : '=', this->name);