]> jfr.im git - irc/quakenet/snircd-patchqueue.git/commitdiff
isrealchannelservice: change all appropriate ischannlservice checks to isrealchannels...
authorwiebe <redacted>
Wed, 17 Mar 2010 13:51:51 +0000 (14:51 +0100)
committerwiebe <redacted>
Wed, 17 Mar 2010 13:51:51 +0000 (14:51 +0100)
ischannelservice.patch

index 9f68e559e34c8f34b7718974fcdc4d2d91c0a5e7..9f67309dce8c62dc6c3ea03f5ccff1f5cd7c2751 100644 (file)
@@ -4,10 +4,9 @@ IsRealChannelService() - client has usermode +k and is on a services server (+s
 Function ms_invite did not return an error when the source was a channel service,
 that should only be for a real channel service.
 
-
-diff -r 979639f84630 include/client.h
---- a/include/client.h Fri Jan 30 15:56:19 2009 +0100
-+++ b/include/client.h Fri Jan 30 16:38:40 2009 +0100
+diff -r 48ace0dc0261 include/client.h
+--- a/include/client.h Wed Mar 17 14:34:56 2010 +0100
++++ b/include/client.h Wed Mar 17 14:50:51 2010 +0100
 @@ -568,6 +568,8 @@
  #define IsBurstOrBurstAck(x)    (HasFlag(x, FLAG_BURST) || HasFlag(x, FLAG_BURST_ACK))
  /** Return non-zero if the client has set mode +k (channel service). */
@@ -17,9 +16,9 @@ diff -r 979639f84630 include/client.h
  /** Return non-zero if the client's socket is disconnected. */
  #define IsDead(x)               HasFlag(x, FLAG_DEADSOCKET)
  /** Return non-zero if the client has set mode +d (deaf). */
-diff -r 979639f84630 ircd/channel.c
---- a/ircd/channel.c   Fri Jan 30 15:56:19 2009 +0100
-+++ b/ircd/channel.c   Fri Jan 30 16:38:40 2009 +0100
+diff -r 48ace0dc0261 ircd/channel.c
+--- a/ircd/channel.c   Wed Mar 17 14:34:56 2010 +0100
++++ b/ircd/channel.c   Wed Mar 17 14:50:51 2010 +0100
 @@ -180,7 +180,7 @@
     * however there are typically no more than 1000 people in a channel
     * at a time.
@@ -29,7 +28,7 @@ diff -r 979639f84630 ircd/channel.c
      m = chptr->members;
      while (m) {
        assert(m->channel == chptr);
-@@ -3190,7 +3190,7 @@
+@@ -3176,7 +3176,7 @@
         * Allow +X'ed users to mess with +k'ed.
         * --Bigfoot
         */
@@ -38,7 +37,7 @@ diff -r 979639f84630 ircd/channel.c
        if (state->flags & MODE_PARSE_FORCE) /* it was forced */
          sendto_opmask_butone(0, SNO_HACK4, "Deop of +k user on %H by %s",
                               state->chptr,
-@@ -3198,7 +3198,7 @@
+@@ -3184,7 +3184,7 @@
                                cli_name((cli_user(state->sptr))->server)));
  
          else if (MyUser(state->sptr) && state->flags & MODE_PARSE_SET && (state->sptr != state->cli_change[i].client)) {
@@ -47,9 +46,66 @@ diff -r 979639f84630 ircd/channel.c
              send_reply(state->sptr, ERR_ISREALSERVICE,
                       cli_name(state->cli_change[i].client),
                       state->chptr->chname);
-diff -r 979639f84630 ircd/m_invite.c
---- a/ircd/m_invite.c  Fri Jan 30 15:56:19 2009 +0100
-+++ b/ircd/m_invite.c  Fri Jan 30 16:38:40 2009 +0100
+@@ -3641,7 +3641,7 @@
+     if (!(flags & (CHFL_ZOMBIE | CHFL_DELAYED)))
+       sendcmdto_channel_butserv_butone(jbuf->jb_source, CMD_PART, chan, NULL, 0,
+                   ((flags & CHFL_BANNED) || ((chan->mode.mode & MODE_NOQUITPARTS)
+-                   && !IsChannelService(member->user)) || !jbuf->jb_comment) ?
++                   && !IsRealChannelService(member->user)) || !jbuf->jb_comment) ?
+                   "%H" : "%H :%s", chan, jbuf->jb_comment);
+     else if (MyUser(jbuf->jb_source))
+       sendcmdto_one(jbuf->jb_source, CMD_PART, jbuf->jb_source,
+diff -r 48ace0dc0261 ircd/ircd_relay.c
+--- a/ircd/ircd_relay.c        Wed Mar 17 14:34:56 2010 +0100
++++ b/ircd/ircd_relay.c        Wed Mar 17 14:50:51 2010 +0100
+@@ -205,7 +205,7 @@
+    * This first: Almost never a server/service
+    * Servers may have channel services, need to check for it here
+    */
+-  if (client_can_send_to_channel(sptr, chptr, 1) || IsChannelService(sptr)) {
++  if (client_can_send_to_channel(sptr, chptr, 1) || IsRealChannelService(sptr)) {
+     sendcmdto_channel_butone(sptr, CMD_PRIVATE, chptr, cli_from(sptr),
+                            SKIP_DEAF | SKIP_BURST, "%H :%s", chptr, text);
+   }
+@@ -233,7 +233,7 @@
+    * This first: Almost never a server/service
+    * Servers may have channel services, need to check for it here
+    */
+-  if (client_can_send_to_channel(sptr, chptr, 1) || IsChannelService(sptr)) {
++  if (client_can_send_to_channel(sptr, chptr, 1) || IsRealChannelService(sptr)) {
+     sendcmdto_channel_butone(sptr, CMD_NOTICE, chptr, cli_from(sptr),
+                            SKIP_DEAF | SKIP_BURST, "%H :%s", chptr, text);
+   }
+@@ -290,7 +290,7 @@
+    */
+   if (!(acptr = FindUser(name)) || !MyUser(acptr) ||
+       (!EmptyString(host) && 0 != match(host, cli_user(acptr)->host)) ||
+-      !IsChannelService(acptr))
++      !IsRealChannelService(acptr))
+   {
+     /*
+      * By this stage we might as well not bother because they will
+@@ -385,7 +385,7 @@
+     send_reply(sptr, ERR_NOSUCHNICK, name);
+     return;
+   }
+-  if ((!IsChannelService(acptr) &&
++  if ((!IsRealChannelService(acptr) &&
+        check_target_limit(sptr, acptr, cli_name(acptr), 0)) ||
+       is_silenced(sptr, acptr))
+     return;
+@@ -431,7 +431,7 @@
+   if (0 == (acptr = FindUser(name)))
+     return;
+-  if ((!IsChannelService(acptr) && 
++  if ((!IsRealChannelService(acptr) && 
+        check_target_limit(sptr, acptr, cli_name(acptr), 0)) ||
+       is_silenced(sptr, acptr))
+     return;
+diff -r 48ace0dc0261 ircd/m_invite.c
+--- a/ircd/m_invite.c  Wed Mar 17 14:34:56 2010 +0100
++++ b/ircd/m_invite.c  Wed Mar 17 14:50:51 2010 +0100
 @@ -271,7 +271,7 @@
    } else if (IsBurstOrBurstAck(cptr))
      return 0;
@@ -59,9 +115,9 @@ diff -r 979639f84630 ircd/m_invite.c
      send_reply(sptr, ERR_NOTONCHANNEL, chptr->chname);
      return 0;
    }
-diff -r 979639f84630 ircd/m_kick.c
---- a/ircd/m_kick.c    Fri Jan 30 15:56:19 2009 +0100
-+++ b/ircd/m_kick.c    Fri Jan 30 16:38:40 2009 +0100
+diff -r 48ace0dc0261 ircd/m_kick.c
+--- a/ircd/m_kick.c    Wed Mar 17 14:34:56 2010 +0100
++++ b/ircd/m_kick.c    Wed Mar 17 14:50:51 2010 +0100
 @@ -136,17 +136,14 @@
     * Allow +X'ed users to kick +k'ed, but not U-lined services.
     * --Bigfoot
@@ -87,9 +143,9 @@ diff -r 979639f84630 ircd/m_kick.c
    }
  
    /* Prevent kicking opers from local channels -DM- */
-diff -r 979639f84630 ircd/m_kill.c
---- a/ircd/m_kill.c    Fri Jan 30 15:56:19 2009 +0100
-+++ b/ircd/m_kill.c    Fri Jan 30 16:38:40 2009 +0100
+diff -r 48ace0dc0261 ircd/m_kill.c
+--- a/ircd/m_kill.c    Wed Mar 17 14:34:56 2010 +0100
++++ b/ircd/m_kill.c    Wed Mar 17 14:50:51 2010 +0100
 @@ -293,7 +293,7 @@
     * Allow +X'ed users to kill +k'ed, but not U-lined services.
     * --Bigfoot
@@ -99,35 +155,15 @@ diff -r 979639f84630 ircd/m_kill.c
      return send_reply(sptr, ERR_ISREALSERVICE, "KILL", cli_name(victim));
  
    if (IsChannelService(victim) && !IsXtraOp(sptr) && !(victim==sptr))
-diff -r 979639f84630 ircd/m_whois.c
---- a/ircd/m_whois.c   Fri Jan 30 15:56:19 2009 +0100
-+++ b/ircd/m_whois.c   Fri Jan 30 16:38:40 2009 +0100
-@@ -143,8 +143,13 @@
-   send_reply(sptr, RPL_WHOISUSER, name, user->username, user->host,
-                  cli_info(acptr));
-+  /* TODO: IsChannelService or IsRealChannelService?
-+   * we have usermode +n to hide channels already, so could go with the IsReal.. version
-+   * if an oper wants to hide channels too, they can set +n
-+   * in that case also remove || (acptr==sptr)
-+   */
-   /* Display the channels this user is on. */
--  if ((!IsChannelService(acptr) && !IsNoChan(acptr)) || (acptr==sptr))
-+  if ((!IsRealChannelService(acptr) && !IsNoChan(acptr)) || (acptr==sptr))
-   {
-     struct Membership* chan;
-     mlen = strlen(cli_name(&me)) + strlen(cli_name(sptr)) + 12 + strlen(name);
-diff -r 979639f84630 ircd/whocmds.c
---- a/ircd/whocmds.c   Fri Jan 30 15:56:19 2009 +0100
-+++ b/ircd/whocmds.c   Fri Jan 30 16:38:40 2009 +0100
-@@ -94,8 +94,9 @@
-   {
-     chan = find_channel_member(acptr, repchan);
-   }
-+  /* TODO: use IsRealChannelService or IsChannelService? */
-   else if ((!fields || (fields & (WHO_FIELD_CHA | WHO_FIELD_FLA)))
--           && !IsChannelService(acptr) && !IsNoChan(acptr)) 
-+           && !IsRealChannelService(acptr) && !IsNoChan(acptr)) 
-   {
-     for (chan = cli_user(acptr)->channel; chan; chan = chan->next_channel)
-       if (PubChannel(chan->channel) &&
+diff -r 48ace0dc0261 ircd/m_silence.c
+--- a/ircd/m_silence.c Wed Mar 17 14:34:56 2010 +0100
++++ b/ircd/m_silence.c Wed Mar 17 14:50:51 2010 +0100
+@@ -289,7 +289,7 @@
+   /* 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) && ((acptr == sptr) || IsChannelService(acptr))) {
++    if (cli_user(acptr) && ((acptr == sptr) || IsRealChannelService(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);