diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-05-05 12:42:20 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-05-05 12:42:20 +0000 |
commit | f938b078f8e283f52a4be36da584ee001030a247 (patch) | |
tree | 38bde4cfb369dcc9edc16a5008997e278d766ee5 /src/message.cpp | |
parent | 31900d8083615e8d3af2317410360fdaa75eba56 (diff) |
Fixes to:
+s and +p channels wouldn't be synched correctly
+s and +p never show in whois even when you're a member of them
+s and +p never show in list even if you're a member of them
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1308 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/message.cpp')
-rw-r--r-- | src/message.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/message.cpp b/src/message.cpp index c90793090..59e961d9a 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -463,7 +463,7 @@ void TidyBan(char *ban) char lst[MAXBUF]; -char* chlist(userrec *user) +char* chlist(userrec *user,userrec* source) { char cmp[MAXBUF]; log(DEBUG,"chlist: %s",user->nick); @@ -482,7 +482,8 @@ char* chlist(userrec *user) strlcat(cmp," ",MAXBUF); if (!strstr(lst,cmp)) { - if ((!user->chans[i].channel->c_private) && (!user->chans[i].channel->secret)) + // if the channel is NOT private/secret, OR the source user is on the channel + if (((!user->chans[i].channel->c_private) && (!user->chans[i].channel->secret)) || (has_channel(source,user->chans[i].channel))) { strlcat(lst,cmode(user,user->chans[i].channel),MAXBUF); strlcat(lst,user->chans[i].channel->name,MAXBUF); |