ソースを参照

* Remove 'set mean-kicks' and change to 'chanset +meankicks' (default on, does not upgrade from old .set, must unset after upgrade if wanted)

svn: 3793
Bryan Drewery 18 年 前
コミット
73743349c9

+ 1 - 0
doc/UPDATES

@@ -5,6 +5,7 @@
 * Removed BDHASH as it wasn't even used.
 * SHELLHASH now supports SHA1 hashes.
 * Fix segfault from receiving truncated DNS replies.
+* Remove 'set mean-kicks' and change to 'chanset +meankicks' (default on, does not upgrade from old .set, must unset after upgrade if wanted)
 
 1.2.15 - http://wraith.botpack.net/milestone/1.2.15
 * Fix a possible segfault when binaries compiled wrong

+ 1 - 1
misc/help.txt

@@ -447,6 +447,7 @@ See also: link
         $bknock$b          Bots which are +y will auto-invite any user who
                        does a /knock on the channel.
                        This will invite any user who is not set to auto-kick.
+        $bmeankicks$b      Use mean/offensive kicks/bans in the channel.
         $bnodesynch$b      Allow non-ops to perform channel modes? This can stop
                        the bot from fighting with services such as ChanServ, or
                        from kicking IRCops when setting channel modes without
@@ -1547,7 +1548,6 @@ See also: reload, backup
                           Will always fail at hash though.
 [N]  $bdcc-autoaway$b    Time in seconds until a user is set auto-away on dcc.
                           (0/- to disable)
-[B]  $bmean-kicks$b      Enables 'mean' and 'offensive' kick msgs.
 [B]  $bmanop-warn$b      Warn users via /NOTICE when they msg-op in a channel with manop
                            punishments.
  

+ 2 - 0
src/chan.h

@@ -248,6 +248,7 @@ struct chanset_t {
 #define CHAN_STOP_CYCLE     BIT24	/* Some efnetservers have defined NO_CHANOPS_WHEN_SPLIT */
 #define CHAN_AUTOOP         BIT25
 #define CHAN_JOINING        BIT26	/* attempting to join, dont flood with JOIN #chan */
+#define CHAN_MEANKICKS      BIT27	/* use mean/offensive kicks/bans */
 
 #define CHAN_ASKED_EXEMPTS  BIT0
 #define CHAN_ASKED_INVITES  BIT1
@@ -299,6 +300,7 @@ struct chanset_t *findchan_by_dname(const char *name);
 #define channel_autoop(chan) (chan->status & CHAN_AUTOOP)
 #define channel_nomassjoin(chan) (chan->status & CHAN_NOMASSJOIN)
 #define channel_knock(chan) (chan->status & CHAN_KNOCK)
+#define channel_meankicks(chan) (chan->status & CHAN_MEANKICKS)
 /* Chanflag template
  *#define channel_temp(chan) (chan->status & CHAN_PRIVATE)
  */

+ 1 - 1
src/makeres.c

@@ -175,7 +175,7 @@ typedef char * res_t;\n\n");
           sprintf(lower_resps, "%s,\n\tres_%s", lower_resps, cmd);
         } else {			/* END */
           fprintf(outf, "\tRES_END\n};\n\n#define RES_TYPES %d\n", total_responses);
-          fprintf(outf, "const char *response(response_t);\nvoid init_responses();\nconst char *r_banned();\n\n#endif /* !_RESPONSE_H */\n");
+          fprintf(outf, "const char *response(response_t);\nvoid init_responses();\nconst char *r_banned(struct chanset_t* chan);\n\n#endif /* !_RESPONSE_H */\n");
           fprintf(outsf, "static res_t *res[] = {\n\tNULL%s\n};\n#endif /* !_RESPONSES_H */\n", lower_resps);
         }
       } else {				/* NEXT RES TEXT */

+ 2 - 0
src/mod/channels.mod/channels.c

@@ -862,6 +862,8 @@ void channels_report(int idx, int details)
           i += my_strcpy(s + i, "autoop ");
         if (channel_knock(chan))
           i += my_strcpy(s + i, "knock ");
+        if (channel_meankicks(chan))
+          i += my_strcpy(s + i, "meankicks ");
 /* Chanflag template
  *	if (channel_temp(chan))
  *	  i += my_strcpy(s + i, "temp ");

+ 1 - 0
src/mod/channels.mod/cmdschan.c

@@ -1194,6 +1194,7 @@ static void cmd_chaninfo(int idx, char *par)
     SHOW_FLAG("enforcebans", 	channel_enforcebans(chan));
     SHOW_FLAG("fastop",		channel_fastop(chan));
     SHOW_FLAG("inactive",	channel_inactive(chan));
+    SHOW_FLAG("meankicks",	channel_meankicks(chan));
     SHOW_FLAG("nodesynch",	channel_nodesynch(chan));
     SHOW_FLAG("nomassjoin",	channel_nomassjoin(chan));
     SHOW_FLAG("private",	channel_privchan(chan));

+ 4 - 0
src/mod/channels.mod/tclchan.c

@@ -589,6 +589,10 @@ int channel_modify(char *result, struct chanset_t *chan, int items, char **item,
       chan->status |= CHAN_KNOCK;
     else if (!strcmp(item[i], "-knock"))
       chan->status &= ~CHAN_KNOCK;
+    else if (!strcmp(item[i], "+meankicks"))
+      chan->status |= CHAN_MEANKICKS;
+    else if (!strcmp(item[i], "-meankicks"))
+      chan->status &= ~CHAN_MEANKICKS;
 /* Chanflag template
  *  else if (!strcmp(item[i], "+temp"))
  *    chan->status |= CHAN_TEMP;

+ 2 - 1
src/mod/channels.mod/userchan.c

@@ -733,7 +733,7 @@ flood-kick %d:%lu flood-deop %d:%lu flood-nick %d:%lu flood-mjoin %d:%lu \
 closed-ban %d closed-invite %d closed-private %d ban-time %lu \
 exempt-time %lu invite-time %lu voice-non-ident %d auto-delay %d \
 flood-exempt %d flood-lock-time %lu \
-%cenforcebans %cdynamicbans %cuserbans %cbitch \
+%cmeankicks %cenforcebans %cdynamicbans %cuserbans %cbitch \
 %cprivate %ccycle %cinactive %cdynamicexempts %cuserexempts \
 %cdynamicinvites %cuserinvites %cnodesynch %cclosed %cvoice \
 %cfastop %cautoop %cbotbitch %cbackup %cnomassjoin %cknock %c%s}\n",
@@ -771,6 +771,7 @@ flood-exempt %d flood-lock-time %lu \
         chan->auto_delay,
         chan->flood_exempt_mode,
         chan->flood_lock_time,
+ 	PLSMNS(channel_meankicks(chan)),
  	PLSMNS(channel_enforcebans(chan)),
 	PLSMNS(channel_dynamicbans(chan)),
 	PLSMNS(!channel_nouserbans(chan)),

+ 2 - 2
src/mod/irc.mod/chan.c

@@ -1761,7 +1761,7 @@ static int got352or4(struct chanset_t *chan, char *user, char *host, char *nick,
         /* and it's not me, and i'm an op */
         !me) {
       /*  && target_priority(chan, m, 0) */
-      dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chan->name, nick, bankickprefix, r_banned());
+      dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chan->name, nick, bankickprefix, r_banned(chan));
       m->flags |= SENTKICK;
     }
     /* if the user is a +k */
@@ -2516,7 +2516,7 @@ static int gotjoin(char *from, char *chname)
               !(use_exempts && (isexempted(chan, from) || (chan->ircnet_status & CHAN_ASKED_EXEMPTS)))) {
             for (masklist* b = chan->channel.ban; b->mask[0]; b = b->next) {
               if (wild_match(b->mask, from) || match_cidr(b->mask, from)) {
-                dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chname, m->nick, bankickprefix, r_banned());
+                dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chname, m->nick, bankickprefix, r_banned(chan));
                 m->flags |= SENTKICK;
                 return 0;
               }

+ 1 - 1
src/mod/irc.mod/mode.c

@@ -720,7 +720,7 @@ got_ban(struct chanset_t *chan, memberlist *m, char *mask, char *isserver)
         }
       }
     }
-    kick_all(chan, mask, resn[0] ? (const char *) resn : r_banned(), match_my_nick(m->nick) ? 0 : 1);
+    kick_all(chan, mask, resn[0] ? (const char *) resn : r_banned(chan), match_my_nick(m->nick) ? 0 : 1);
   }
   if (!m && (bounce_bans || bounce_modes) &&
       (!u_equals_mask(global_bans, mask) || !u_equals_mask(chan->bans, mask)))

+ 2 - 2
src/response.c

@@ -46,9 +46,9 @@ response(response_t type)
 }
 
 const char *
-r_banned()
+r_banned(struct chanset_t *chan)
 {
-  if (!offensive_bans)
+  if (channel_meankicks(chan))
     return response(RES_BANNED);
 
   if (randint(1))

+ 1 - 3
src/set.c

@@ -37,7 +37,7 @@ int badprocess = DET_IGNORE;
 char process_list[1024] = "";
 #endif
 bool dccauth = 0;
-char *def_chanset = "+enforcebans +dynamicbans +userbans -bitch +cycle -inactive +userexempts -dynamicexempts +userinvites -dynamicinvites -nodesynch -closed -take -voice -private -fastop";
+char *def_chanset = "+enforcebans +dynamicbans +userbans -bitch +cycle -inactive +userexempts -dynamicexempts +userinvites -dynamicinvites -nodesynch -closed -take -voice -private -fastop +meankicks";
 int cloak_script = 0;
 rate_t close_threshold;
 int fight_threshold;
@@ -58,7 +58,6 @@ int op_bots;
 rate_t op_requests;
 int promisc;
 int trace;
-bool offensive_bans;
 bool manop_warn;
 char homechan[51] = "";
 char usermode[15] = "";
@@ -93,7 +92,6 @@ static variable_t vars[] = {
  VAR("lag-threshold",	&lag_threshold,		VAR_INT|VAR_NOLHUB,				0, 0, "15"),
  VAR("login",		&login,			VAR_INT|VAR_DETECTED,				0, 4, "warn"),
  VAR("manop-warn",	&manop_warn,		VAR_INT|VAR_BOOL|VAR_NOLHUB,			0, 1, "1"),
- VAR("mean-kicks",	&offensive_bans,	VAR_INT|VAR_BOOL|VAR_NOLHUB,			0, 1, "1"),
  VAR("motd",		motd,			VAR_STRING|VAR_HIDE|VAR_NOLOC,			0, 0, NULL),
  VAR("msg-ident",	msgident,		VAR_STRING|VAR_NOLHUB,				0, 0, NULL),
  VAR("msg-invite",	msginvite,		VAR_STRING|VAR_NOLHUB,				0, 0, NULL),

+ 1 - 1
src/set.h

@@ -65,7 +65,7 @@ typedef struct rate_b {
 extern char		auth_key[], auth_prefix[2], motd[], *def_chanset, alias[],
 			msgident[], msginvite[], msgop[], msgpass[],
                         homechan[], *altchars;
-extern bool		dccauth, auth_obscure, offensive_bans, manop_warn, auth_chan, oidentd, ident_botnick, irc_autoaway;
+extern bool		dccauth, auth_obscure, manop_warn, auth_chan, oidentd, ident_botnick, irc_autoaway;
 extern int		cloak_script, fight_threshold, fork_interval, in_bots, set_noshare, dcc_autoaway,
 			kill_threshold, lag_threshold, op_bots, hijack, login, promisc, trace,
                         ison_time;