]> jfr.im git - irc/quakenet/snircd-patchqueue.git/commitdiff
addopkickcmd - add privs LOCAL_OPKICK and OPKICK
authorwiebe <redacted>
Tue, 3 Feb 2009 17:41:20 +0000 (18:41 +0100)
committerwiebe <redacted>
Tue, 3 Feb 2009 17:41:20 +0000 (18:41 +0100)
addopkickcmd.patch

index 0cb966a6272a4b20d3291cf3aaf94dc4cb10f23d..7fb94c1761e017891fe4aa2d4e6fffa1a12a9c57 100644 (file)
@@ -5,9 +5,21 @@ if implemented, it must not be enabled until ALL servers and services are upgrad
 generates HACK(4) snomask notice for accountability with oper as source
 probably needs some work (for one i simply copied the header from m_kick.c)
 
-diff -r 61341aed2877 include/handlers.h
---- a/include/handlers.h       Sat Jan 31 18:33:55 2009 +0100
-+++ b/include/handlers.h       Sat Jan 31 18:35:03 2009 +0100
+diff -r a77bd3d09dec include/client.h
+--- a/include/client.h Tue Feb 03 18:16:21 2009 +0100
++++ b/include/client.h Tue Feb 03 18:40:09 2009 +0100
+@@ -116,6 +116,8 @@
+     PRIV_LOCAL_JUPE, /**< oper can local JUPE */
+     PRIV_OPMODE, /**< oper can OP/CLEARMODE */
+     PRIV_LOCAL_OPMODE, /**< oper can local OP/CLEARMODE */
++    PRIV_OPKICK,  /**< oper can OPKICK */
++    PRIV_LOCAL_OPKICK,  /**< oper can local OPKICK */
+     PRIV_SET,  /**< oper can SET */
+     PRIV_WHOX, /**< oper can use /who x */
+     PRIV_BADCHAN, /**< oper can BADCHAN */
+diff -r a77bd3d09dec include/handlers.h
+--- a/include/handlers.h       Tue Feb 03 18:16:21 2009 +0100
++++ b/include/handlers.h       Tue Feb 03 18:40:09 2009 +0100
 @@ -167,6 +167,7 @@
  extern int mo_kill(struct Client*, struct Client*, int, char*[]);
  extern int mo_notice(struct Client*, struct Client*, int, char*[]);
@@ -24,9 +36,9 @@ diff -r 61341aed2877 include/handlers.h
  extern int ms_opmode(struct Client*, struct Client*, int, char*[]);
  extern int ms_part(struct Client*, struct Client*, int, char*[]);
  extern int ms_ping(struct Client*, struct Client*, int, char*[]);
-diff -r 61341aed2877 include/ircd_features.h
---- a/include/ircd_features.h  Sat Jan 31 18:33:55 2009 +0100
-+++ b/include/ircd_features.h  Sat Jan 31 18:35:03 2009 +0100
+diff -r a77bd3d09dec include/ircd_features.h
+--- a/include/ircd_features.h  Tue Feb 03 18:16:21 2009 +0100
++++ b/include/ircd_features.h  Tue Feb 03 18:40:09 2009 +0100
 @@ -105,6 +105,7 @@
    /* features that affect all operators */
    FEAT_EXTENDED_CHECKCMD,
@@ -35,9 +47,9 @@ diff -r 61341aed2877 include/ircd_features.h
    FEAT_SETHOST,
    FEAT_SETHOST_USER,
    FEAT_SETHOST_AUTO,
-diff -r 61341aed2877 include/msg.h
---- a/include/msg.h    Sat Jan 31 18:33:55 2009 +0100
-+++ b/include/msg.h    Sat Jan 31 18:35:03 2009 +0100
+diff -r a77bd3d09dec include/msg.h
+--- a/include/msg.h    Tue Feb 03 18:16:21 2009 +0100
++++ b/include/msg.h    Tue Feb 03 18:40:09 2009 +0100
 @@ -236,6 +236,10 @@
  #define TOK_KICK                "K"
  #define CMD_KICK              MSG_KICK, TOK_KICK
@@ -49,9 +61,9 @@ diff -r 61341aed2877 include/msg.h
  #define MSG_USERHOST            "USERHOST"      /* USER -> USRH */
  #define TOK_USERHOST            "USERHOST"
  #define CMD_USERHOST          MSG_USERHOST, TOK_USERHOST
-diff -r 61341aed2877 ircd/Makefile.in
---- a/ircd/Makefile.in Sat Jan 31 18:33:55 2009 +0100
-+++ b/ircd/Makefile.in Sat Jan 31 18:35:03 2009 +0100
+diff -r a77bd3d09dec ircd/Makefile.in
+--- a/ircd/Makefile.in Tue Feb 03 18:16:21 2009 +0100
++++ b/ircd/Makefile.in Tue Feb 03 18:40:09 2009 +0100
 @@ -151,6 +151,7 @@
        m_nick.c \
        m_notice.c \
@@ -75,9 +87,38 @@ diff -r 61341aed2877 ircd/Makefile.in
  m_opmode.o: m_opmode.c ../config.h ../include/client.h \
    ../include/ircd_defs.h ../include/dbuf.h ../include/msgq.h \
    ../include/ircd_events.h ../config.h ../include/ircd_handler.h \
-diff -r 61341aed2877 ircd/ircd_features.c
---- a/ircd/ircd_features.c     Sat Jan 31 18:33:55 2009 +0100
-+++ b/ircd/ircd_features.c     Sat Jan 31 18:35:03 2009 +0100
+diff -r a77bd3d09dec ircd/client.c
+--- a/ircd/client.c    Tue Feb 03 18:16:21 2009 +0100
++++ b/ircd/client.c    Tue Feb 03 18:40:09 2009 +0100
+@@ -174,6 +174,7 @@
+     FlagSet(&privs_local, PRIV_LOCAL_GLINE);
+     FlagSet(&privs_local, PRIV_LOCAL_JUPE);
+     FlagSet(&privs_local, PRIV_LOCAL_OPMODE);
++    FlagSet(&privs_local, PRIV_LOCAL_OPKICK);
+     FlagSet(&privs_local, PRIV_WHOX);
+     FlagSet(&privs_local, PRIV_DISPLAY);
+     FlagSet(&privs_local, PRIV_FORCE_LOCAL_OPMODE);
+@@ -222,6 +223,7 @@
+     ClrPriv(client, PRIV_GLINE);
+     ClrPriv(client, PRIV_JUPE);
+     ClrPriv(client, PRIV_OPMODE);
++    ClrPriv(client, PRIV_OPKICK);
+     ClrPriv(client, PRIV_BADCHAN);
+   }
+ }
+@@ -237,7 +239,8 @@
+   P(SHOW_INVIS),     P(SHOW_ALL_INVIS), P(UNLIMIT_QUERY), P(KILL),
+   P(LOCAL_KILL),     P(REHASH),         P(RESTART),       P(DIE),
+   P(GLINE),          P(LOCAL_GLINE),    P(JUPE),          P(LOCAL_JUPE),
+-  P(OPMODE),         P(LOCAL_OPMODE),   P(SET),           P(WHOX),
++  P(OPMODE),         P(LOCAL_OPMODE),   P(OPKICK),        P(LOCAL_OPKICK),   
++  P(SET),            P(WHOX),
+   P(BADCHAN),        P(LOCAL_BADCHAN),  P(SEE_CHAN),      P(PROPAGATE),
+   P(DISPLAY),        P(SEE_OPERS),      P(WIDE_GLINE),    P(LIST_CHAN),
+   P(FORCE_OPMODE),   P(FORCE_LOCAL_OPMODE), P(APASS_OPMODE),
+diff -r a77bd3d09dec ircd/ircd_features.c
+--- a/ircd/ircd_features.c     Tue Feb 03 18:16:21 2009 +0100
++++ b/ircd/ircd_features.c     Tue Feb 03 18:40:09 2009 +0100
 @@ -359,6 +359,7 @@
    /* features that affect all operators */
    F_B(EXTENDED_CHECKCMD, 0, 0, 0),
@@ -86,9 +127,48 @@ diff -r 61341aed2877 ircd/ircd_features.c
    F_B(SETHOST, 0, 0, 0),
    F_B(SETHOST_USER, 0, 0, 0),
    F_B(SETHOST_AUTO, 0, 0, 0),
-diff -r 61341aed2877 ircd/m_opkick.c
+diff -r a77bd3d09dec ircd/ircd_lexer.l
+--- a/ircd/ircd_lexer.l        Tue Feb 03 18:16:21 2009 +0100
++++ b/ircd/ircd_lexer.l        Tue Feb 03 18:40:09 2009 +0100
+@@ -132,11 +132,13 @@
+   { "local_jupe", TPRIV_LOCAL_JUPE },
+   { "local_kill", TPRIV_LOCAL_KILL },
+   { "local_opmode", TPRIV_LOCAL_OPMODE },
++  { "local_opkick", TPRIV_LOCAL_OPKICK },
+   { "mb", MBYTES },
+   { "megabytes", MBYTES },
+   { "mode_lchan", TPRIV_MODE_LCHAN },
+   { "operator", OPER },
+   { "opmode", TPRIV_OPMODE },
++  { "opkick", TPRIV_OPKICK },
+   { "password", PASS },
+   { "propagate", TPRIV_PROPAGATE },
+   { "realname", REAL },
+diff -r a77bd3d09dec ircd/ircd_parser.y
+--- a/ircd/ircd_parser.y       Tue Feb 03 18:16:21 2009 +0100
++++ b/ircd/ircd_parser.y       Tue Feb 03 18:40:09 2009 +0100
+@@ -182,7 +182,8 @@
+ %token TPRIV_CHAN_LIMIT TPRIV_MODE_LCHAN TPRIV_DEOP_LCHAN TPRIV_WALK_LCHAN
+ %token TPRIV_LOCAL_KILL TPRIV_REHASH TPRIV_RESTART TPRIV_DIE
+ %token TPRIV_GLINE TPRIV_LOCAL_GLINE TPRIV_LOCAL_JUPE TPRIV_LOCAL_BADCHAN
+-%token TPRIV_LOCAL_OPMODE TPRIV_OPMODE TPRIV_SET TPRIV_WHOX TPRIV_BADCHAN
++%token TPRIV_LOCAL_OPMODE TPRIV_OPMODE TPRIV_LOCAL_OPKICK TPRIV_OPKICK
++%token TPRIV_SET TPRIV_WHOX TPRIV_BADCHAN
+ %token TPRIV_SEE_CHAN TPRIV_SHOW_INVIS TPRIV_SHOW_ALL_INVIS TPRIV_PROPAGATE
+ %token TPRIV_UNLIMIT_QUERY TPRIV_DISPLAY TPRIV_SEE_OPERS TPRIV_WIDE_GLINE
+ %token TPRIV_FORCE_OPMODE TPRIV_FORCE_LOCAL_OPMODE TPRIV_APASS_OPMODE
+@@ -672,6 +673,8 @@
+           TPRIV_LOCAL_JUPE { $$ = PRIV_LOCAL_JUPE; } |
+           TPRIV_LOCAL_OPMODE { $$ = PRIV_LOCAL_OPMODE; } |
+           TPRIV_OPMODE { $$ = PRIV_OPMODE; }|
++          TPRIV_LOCAL_OPKICK { $$ = PRIV_LOCAL_OPKICK; }|
++          TPRIV_OPKICK { $$ = PRIV_OPKICK; }|
+           TPRIV_SET { $$ = PRIV_SET; } |
+           TPRIV_WHOX { $$ = PRIV_WHOX; } |
+           TPRIV_BADCHAN { $$ = PRIV_BADCHAN; } |
+diff -r a77bd3d09dec ircd/m_opkick.c
 --- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/ircd/m_opkick.c  Sat Jan 31 18:35:03 2009 +0100
++++ b/ircd/m_opkick.c  Tue Feb 03 18:40:09 2009 +0100
 @@ -0,0 +1,231 @@
 +/*
 + * IRC - Internet Relay Chat, ircd/m_opkick.c
@@ -217,7 +297,7 @@ diff -r 61341aed2877 ircd/m_opkick.c
 +  if (!(chptr = get_channel(sptr, name, CGT_NO_CREATE)))
 +    return send_reply(sptr, ERR_NOSUCHCHANNEL, name);
 +
-+  if (!HasPriv(sptr, IsLocalChannel(chptr->chname) ? PRIV_LOCAL_OPMODE : PRIV_OPMODE))
++  if (!HasPriv(sptr, IsLocalChannel(chptr->chname) ? PRIV_LOCAL_OPKICK : PRIV_OPKICK))
 +    return send_reply(sptr, ERR_NOPRIVILEGES);
 +
 +  if (!(who = find_chasing(sptr, parv[2], 0, 1)))
@@ -321,9 +401,9 @@ diff -r 61341aed2877 ircd/m_opkick.c
 +  }
 +  return 0;
 +}
-diff -r 61341aed2877 ircd/parse.c
---- a/ircd/parse.c     Sat Jan 31 18:33:55 2009 +0100
-+++ b/ircd/parse.c     Sat Jan 31 18:35:03 2009 +0100
+diff -r a77bd3d09dec ircd/parse.c
+--- a/ircd/parse.c     Tue Feb 03 18:16:21 2009 +0100
++++ b/ircd/parse.c     Tue Feb 03 18:40:09 2009 +0100
 @@ -656,6 +656,17 @@
      0, MAXPARA, MFLG_SLOW, 0, NULL,
      { m_unregistered, m_not_oper, m_check, m_check, m_ignore }