Author: Kev <klmitch@mit.edu>
authorKevin L. Mitchell <klmitch@mit.edu>
Wed, 29 Mar 2000 15:58:36 +0000 (15:58 +0000)
committerKevin L. Mitchell <klmitch@mit.edu>
Wed, 29 Mar 2000 15:58:36 +0000 (15:58 +0000)
Log message:

* ircd/channel.c (modebuf_flush_int): consolidated the mode string
building logic, reversed the order of the arguments to mode
commands to have '-' preceed '+'

git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@102 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

ChangeLog
ircd/channel.c

index 2d8fcee09eb95de2df4f29469bfd6467909519b1..be367356efaf52a2d0cd3c799f807659a4535a84 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2000-03-29  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/channel.c (modebuf_flush_int): consolidated the mode string
+       building logic, reversed the order of the arguments to mode
+       commands to have '-' preceed '+'
+
 2000-03-29  Thomas Helvey <tomh@inxpress.net>
        * ircd/s_bsd.c (add_connection): don't disable socket options
        let OS tune itself and allow important performance tweaks to 
 #
 # ChangeLog for ircu2.10.11
 #
-# $Id: ChangeLog,v 1.38 2000-03-29 08:13:51 bleep Exp $
+# $Id: ChangeLog,v 1.39 2000-03-29 15:58:36 kev Exp $
 #
 # Insert new changes at beginning of the change list.
 #
index f6cd3446db99f58e92d0957ac783137ddfa0b280..4d1977c44f0ddd595ef5dff78a35a7e71b4bc7c9 100644 (file)
@@ -2765,40 +2765,22 @@ modebuf_flush_int(struct ModeBuf *mbuf, int all)
       bufptr_i = &rembuf_i;
     }
 
-    if (MB_TYPE(mbuf, i) & MODE_CHANOP) {
+    if (MB_TYPE(mbuf, i) & (MODE_CHANOP | MODE_VOICE)) {
       tmp = strlen(MB_CLIENT(mbuf, i)->name);
 
       if ((totalbuflen - IRCD_MAX(5, tmp)) <= 0) /* don't overflow buffer */
        MB_TYPE(mbuf, i) |= MODE_SAVE; /* save for later */
       else {
-       bufptr[(*bufptr_i)++] = 'o';
+       bufptr[(*bufptr_i)++] = MB_TYPE(mbuf, i) & MODE_CHANOP ? 'o' : 'v';
        totalbuflen -= IRCD_MAX(5, tmp) + 1;
       }
-    } else if (MB_TYPE(mbuf, i) & MODE_VOICE) {
-      tmp = strlen(MB_CLIENT(mbuf, i)->name);
-
-      if ((totalbuflen - IRCD_MAX(5, tmp)) <= 0) /* don't overflow buffer */
-       MB_TYPE(mbuf, i) |= MODE_SAVE; /* save for later */
-      else {
-       bufptr[(*bufptr_i)++] = 'v';
-       totalbuflen -= IRCD_MAX(5, tmp) + 1;
-      }
-    } else if (MB_TYPE(mbuf, i) & MODE_KEY) {
-      tmp = strlen(MB_STRING(mbuf, i));
-
-      if ((totalbuflen - tmp) <= 0) /* don't overflow buffer */
-       MB_TYPE(mbuf, i) |= MODE_SAVE; /* save for later */
-      else {
-       bufptr[(*bufptr_i)++] = 'k';
-       totalbuflen -= tmp + 1;
-      }
-    } else if (MB_TYPE(mbuf, i) & MODE_BAN) {
+    } else if (MB_TYPE(mbuf, i) & (MODE_KEY | MODE_BAN)) {
       tmp = strlen(MB_STRING(mbuf, i));
 
       if ((totalbuflen - tmp) <= 0) /* don't overflow buffer */
        MB_TYPE(mbuf, i) |= MODE_SAVE; /* save for later */
       else {
-       bufptr[(*bufptr_i)++] = 'b';
+       bufptr[(*bufptr_i)++] = MB_TYPE(mbuf, i) & MODE_KEY ? 'k' : 'b';
        totalbuflen -= tmp + 1;
       }
     } else if (MB_TYPE(mbuf, i) & MODE_LIMIT) {
@@ -2862,35 +2844,35 @@ modebuf_flush_int(struct ModeBuf *mbuf, int all)
     if (mbuf->mb_dest & MODEBUF_DEST_HACK2) {
       sendto_op_mask(SNO_HACK2, "HACK(2): %s MODE %s %s%s%s%s%s%s [" TIME_T_FMT
                     "]", app_source->name, mbuf->mb_channel->chname,
-                    addbuf_i ? "+" : "", addbuf, rembuf_i ? "-" : "", rembuf,
-                    addstr, remstr, mbuf->mb_channel->creationtime);
+                    rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", addbuf,
+                    remstr, addstr, mbuf->mb_channel->creationtime);
       sendto_serv_butone(mbuf->mb_connect, "%s " TOK_DESYNCH
                         " :HACK: %s MODE %s %s%s%s%s%s%s [" TIME_T_FMT "]",
                         NumServ(&me), app_source->name,
-                        mbuf->mb_channel->chname, addbuf_i ? "+" : "", addbuf,
-                        rembuf_i ? "-" : "", rembuf, addstr, remstr,
+                        mbuf->mb_channel->chname, rembuf_i ? "-" : "", rembuf,
+                        addbuf_i ? "+" : "", addbuf, remstr, addstr,
                         mbuf->mb_channel->creationtime);
     }
 
     if (mbuf->mb_dest & MODEBUF_DEST_HACK3)
       sendto_op_mask(SNO_HACK3, "BOUNCE or HACK(3): %s MODE %s %s%s%s%s%s%s ["
                     TIME_T_FMT "]", app_source->name,
-                    mbuf->mb_channel->chname, addbuf_i ? "+" : "", addbuf,
-                    rembuf_i ? "-" : "", rembuf, addstr, remstr,
+                    mbuf->mb_channel->chname, rembuf_i ? "-" : "", rembuf,
+                    addbuf_i ? "+" : "", addbuf, remstr, addstr,
                     mbuf->mb_channel->creationtime);
 
     if (mbuf->mb_dest & MODEBUF_DEST_HACK4)
       sendto_op_mask(SNO_HACK4, "HACK(4): %s MODE %s %s%s%s%s%s%s [" TIME_T_FMT
                     "]", app_source->name, mbuf->mb_channel->chname,
-                    addbuf_i ? "+" : "", addbuf, rembuf_i ? "-" : "", rembuf,
-                    addstr, remstr, mbuf->mb_channel->creationtime);
+                    rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "", addbuf,
+                    remstr, addstr, mbuf->mb_channel->creationtime);
 
     if (mbuf->mb_dest & MODEBUF_DEST_CHANNEL)
       sendto_channel_butserv(mbuf->mb_channel, app_source,
                             ":%s MODE %s %s%s%s%s%s%s", app_source->name,
-                            mbuf->mb_channel->chname, addbuf_i ? "+" : "",
-                            addbuf, rembuf_i ? "-" : "", rembuf, addstr,
-                            remstr);
+                            mbuf->mb_channel->chname, rembuf_i ? "-" : "",
+                            rembuf, addbuf_i ? "+" : "", addbuf, remstr,
+                            addstr);
   }
 
   /* Now are we supposed to propagate to other servers? */
@@ -2951,15 +2933,15 @@ modebuf_flush_int(struct ModeBuf *mbuf, int all)
       if (IsServer(mbuf->mb_source))
        sendto_serv_butone(mbuf->mb_connect, "%s " TOK_OPMODE
                           " %s %s%s%s%s%s%s", NumServ(mbuf->mb_source),
-                          mbuf->mb_channel->chname, addbuf_i ? "+" : "",
-                          addbuf, rembuf_i ? "-" : "", rembuf, addstr,
-                          remstr);
+                          mbuf->mb_channel->chname, rembuf_i ? "-" : "",
+                          rembuf, addbuf_i ? "+" : "", addbuf, remstr,
+                          addstr);
       else
        sendto_serv_butone(mbuf->mb_connect, "%s%s " TOK_OPMODE
                           " %s %s%s%s%s%s%s", NumNick(mbuf->mb_source),
-                          mbuf->mb_channel->chname, addbuf_i ? "+" : "",
-                          addbuf, rembuf_i ? "-" : "", rembuf, addstr,
-                          remstr);
+                          mbuf->mb_channel->chname, rembuf_i ? "-" : "",
+                          rembuf, addbuf_i ? "+" : "", addbuf, remstr,
+                          addstr);
     } else if (mbuf->mb_dest & MODEBUF_DEST_BOUNCE) {
       /*
        * If HACK2 was set, we're bouncing; we send the MODE back to the
@@ -2968,8 +2950,8 @@ modebuf_flush_int(struct ModeBuf *mbuf, int all)
        */
       sendto_one(mbuf->mb_connect, "%s " TOK_MODE " %s %s%s%s%s%s%s "
                 TIME_T_FMT, NumServ(&me), mbuf->mb_channel->chname,
-                rembuf_i ? "+" : "", rembuf, addbuf_i ? "-" : "", addbuf,
-                remstr, addstr, 0);
+                addbuf_i ? "-" : "", addbuf, rembuf_i ? "+" : "", rembuf,
+                addstr, remstr, 0);
     } else {
       /*
        * We're propagating a normal MODE command to the rest of the network;
@@ -2978,17 +2960,17 @@ modebuf_flush_int(struct ModeBuf *mbuf, int all)
       if (IsServer(mbuf->mb_source))
        sendto_serv_butone(mbuf->mb_connect, "%s " TOK_MODE " %s %s%s%s%s%s%s "
                           TIME_T_FMT, NumServ(mbuf->mb_source),
-                          mbuf->mb_channel->chname, addbuf_i ? "+" : "",
-                          addbuf, rembuf_i ? "-" : "", rembuf, addstr,
-                          remstr, (mbuf->mb_dest & (MODEBUF_DEST_HACK3 |
+                          mbuf->mb_channel->chname, rembuf_i ? "-" : "",
+                          rembuf, addbuf_i ? "+" : "", addbuf, remstr,
+                          addstr, (mbuf->mb_dest & (MODEBUF_DEST_HACK3 |
                                                     MODEBUF_DEST_HACK4)) ? 0 :
                           mbuf->mb_channel->creationtime);
       else
        sendto_serv_butone(mbuf->mb_connect, "%s%s " TOK_MODE
                           " %s %s%s%s%s%s%s " TIME_T_FMT,
                           NumNick(mbuf->mb_source), mbuf->mb_channel->chname,
-                          addbuf_i ? "+" : "", addbuf, rembuf_i ? "-" : "",
-                          rembuf, addstr, remstr,
+                          rembuf_i ? "-" : "", rembuf, addbuf_i ? "+" : "",
+                          addbuf, remstr, addstr,
                           (mbuf->mb_dest & (MODEBUF_DEST_HACK3 |
                                             MODEBUF_DEST_HACK4)) ? 0 :
                           mbuf->mb_channel->creationtime);