Restrict the visibility of /silence lists (fixing SF #2701725).
authorMichael Poole <mdpoole@troilus.org>
Thu, 7 Jan 2010 03:06:13 +0000 (03:06 +0000)
committerMichael Poole <mdpoole@troilus.org>
Thu, 7 Jan 2010 03:06:13 +0000 (03:06 +0000)
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1937 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

ChangeLog
ircd/m_silence.c

index 092c2c668e302788d42d746d6ec9405dee3f9dde..9fa3b4f7adbb6ab1f4508fe771da9f0fa572808f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-06  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_silence.c (m_silence): Only show the silence list for the
+       requesting client and for channel services, to help keep other
+       clients' servers hidden.
+
 2010-01-06  Michael Poole <mdpoole@troilus.org>
 
        * ircd/gline.c (gline_add): If a forced G-line has already
index 818c6ff3b6be085b0219c8374f2a2d9089c2ef25..ce9d4dc5ed58d63738f446cc68a1f32020ee2019 100644 (file)
@@ -289,7 +289,7 @@ int m_silence(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
   /* See if the user is requesting a silence list. */
   acptr = sptr;
   if (parc < 2 || EmptyString(parv[1]) || (acptr = FindUser(parv[1]))) {
-    if (cli_user(acptr)) {
+    if (cli_user(acptr) && ((acptr == sptr) || IsChannelService(acptr))) {
       for (sile = cli_user(acptr)->silence; sile; sile = sile->next) {
         send_reply(sptr, RPL_SILELIST, cli_name(acptr),
                    (sile->flags & BAN_EXCEPTION ? "~" : ""),  sile->banstr);