Просмотр исходного кода

* 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 лет назад
Родитель
Сommit
73743349c9

+ 1 - 0
doc/UPDATES

@@ -5,6 +5,7 @@
 * Removed BDHASH as it wasn't even used.
 * Removed BDHASH as it wasn't even used.
 * SHELLHASH now supports SHA1 hashes.
 * SHELLHASH now supports SHA1 hashes.
 * Fix segfault from receiving truncated DNS replies.
 * 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
 1.2.15 - http://wraith.botpack.net/milestone/1.2.15
 * Fix a possible segfault when binaries compiled wrong
 * 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
         $bknock$b          Bots which are +y will auto-invite any user who
                        does a /knock on the channel.
                        does a /knock on the channel.
                        This will invite any user who is not set to auto-kick.
                        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
         $bnodesynch$b      Allow non-ops to perform channel modes? This can stop
                        the bot from fighting with services such as ChanServ, or
                        the bot from fighting with services such as ChanServ, or
                        from kicking IRCops when setting channel modes without
                        from kicking IRCops when setting channel modes without
@@ -1547,7 +1548,6 @@ See also: reload, backup
                           Will always fail at hash though.
                           Will always fail at hash though.
 [N]  $bdcc-autoaway$b    Time in seconds until a user is set auto-away on dcc.
 [N]  $bdcc-autoaway$b    Time in seconds until a user is set auto-away on dcc.
                           (0/- to disable)
                           (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
 [B]  $bmanop-warn$b      Warn users via /NOTICE when they msg-op in a channel with manop
                            punishments.
                            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_STOP_CYCLE     BIT24	/* Some efnetservers have defined NO_CHANOPS_WHEN_SPLIT */
 #define CHAN_AUTOOP         BIT25
 #define CHAN_AUTOOP         BIT25
 #define CHAN_JOINING        BIT26	/* attempting to join, dont flood with JOIN #chan */
 #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_EXEMPTS  BIT0
 #define CHAN_ASKED_INVITES  BIT1
 #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_autoop(chan) (chan->status & CHAN_AUTOOP)
 #define channel_nomassjoin(chan) (chan->status & CHAN_NOMASSJOIN)
 #define channel_nomassjoin(chan) (chan->status & CHAN_NOMASSJOIN)
 #define channel_knock(chan) (chan->status & CHAN_KNOCK)
 #define channel_knock(chan) (chan->status & CHAN_KNOCK)
+#define channel_meankicks(chan) (chan->status & CHAN_MEANKICKS)
 /* Chanflag template
 /* Chanflag template
  *#define channel_temp(chan) (chan->status & CHAN_PRIVATE)
  *#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);
           sprintf(lower_resps, "%s,\n\tres_%s", lower_resps, cmd);
         } else {			/* END */
         } else {			/* END */
           fprintf(outf, "\tRES_END\n};\n\n#define RES_TYPES %d\n", total_responses);
           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);
           fprintf(outsf, "static res_t *res[] = {\n\tNULL%s\n};\n#endif /* !_RESPONSES_H */\n", lower_resps);
         }
         }
       } else {				/* NEXT RES TEXT */
       } 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 ");
           i += my_strcpy(s + i, "autoop ");
         if (channel_knock(chan))
         if (channel_knock(chan))
           i += my_strcpy(s + i, "knock ");
           i += my_strcpy(s + i, "knock ");
+        if (channel_meankicks(chan))
+          i += my_strcpy(s + i, "meankicks ");
 /* Chanflag template
 /* Chanflag template
  *	if (channel_temp(chan))
  *	if (channel_temp(chan))
  *	  i += my_strcpy(s + i, "temp ");
  *	  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("enforcebans", 	channel_enforcebans(chan));
     SHOW_FLAG("fastop",		channel_fastop(chan));
     SHOW_FLAG("fastop",		channel_fastop(chan));
     SHOW_FLAG("inactive",	channel_inactive(chan));
     SHOW_FLAG("inactive",	channel_inactive(chan));
+    SHOW_FLAG("meankicks",	channel_meankicks(chan));
     SHOW_FLAG("nodesynch",	channel_nodesynch(chan));
     SHOW_FLAG("nodesynch",	channel_nodesynch(chan));
     SHOW_FLAG("nomassjoin",	channel_nomassjoin(chan));
     SHOW_FLAG("nomassjoin",	channel_nomassjoin(chan));
     SHOW_FLAG("private",	channel_privchan(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;
       chan->status |= CHAN_KNOCK;
     else if (!strcmp(item[i], "-knock"))
     else if (!strcmp(item[i], "-knock"))
       chan->status &= ~CHAN_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
 /* Chanflag template
  *  else if (!strcmp(item[i], "+temp"))
  *  else if (!strcmp(item[i], "+temp"))
  *    chan->status |= CHAN_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 \
 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 \
 exempt-time %lu invite-time %lu voice-non-ident %d auto-delay %d \
 flood-exempt %d flood-lock-time %lu \
 flood-exempt %d flood-lock-time %lu \
-%cenforcebans %cdynamicbans %cuserbans %cbitch \
+%cmeankicks %cenforcebans %cdynamicbans %cuserbans %cbitch \
 %cprivate %ccycle %cinactive %cdynamicexempts %cuserexempts \
 %cprivate %ccycle %cinactive %cdynamicexempts %cuserexempts \
 %cdynamicinvites %cuserinvites %cnodesynch %cclosed %cvoice \
 %cdynamicinvites %cuserinvites %cnodesynch %cclosed %cvoice \
 %cfastop %cautoop %cbotbitch %cbackup %cnomassjoin %cknock %c%s}\n",
 %cfastop %cautoop %cbotbitch %cbackup %cnomassjoin %cknock %c%s}\n",
@@ -771,6 +771,7 @@ flood-exempt %d flood-lock-time %lu \
         chan->auto_delay,
         chan->auto_delay,
         chan->flood_exempt_mode,
         chan->flood_exempt_mode,
         chan->flood_lock_time,
         chan->flood_lock_time,
+ 	PLSMNS(channel_meankicks(chan)),
  	PLSMNS(channel_enforcebans(chan)),
  	PLSMNS(channel_enforcebans(chan)),
 	PLSMNS(channel_dynamicbans(chan)),
 	PLSMNS(channel_dynamicbans(chan)),
 	PLSMNS(!channel_nouserbans(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 */
         /* and it's not me, and i'm an op */
         !me) {
         !me) {
       /*  && target_priority(chan, m, 0) */
       /*  && 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;
       m->flags |= SENTKICK;
     }
     }
     /* if the user is a +k */
     /* 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)))) {
               !(use_exempts && (isexempted(chan, from) || (chan->ircnet_status & CHAN_ASKED_EXEMPTS)))) {
             for (masklist* b = chan->channel.ban; b->mask[0]; b = b->next) {
             for (masklist* b = chan->channel.ban; b->mask[0]; b = b->next) {
               if (wild_match(b->mask, from) || match_cidr(b->mask, from)) {
               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;
                 m->flags |= SENTKICK;
                 return 0;
                 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) &&
   if (!m && (bounce_bans || bounce_modes) &&
       (!u_equals_mask(global_bans, mask) || !u_equals_mask(chan->bans, mask)))
       (!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 *
 const char *
-r_banned()
+r_banned(struct chanset_t *chan)
 {
 {
-  if (!offensive_bans)
+  if (channel_meankicks(chan))
     return response(RES_BANNED);
     return response(RES_BANNED);
 
 
   if (randint(1))
   if (randint(1))

+ 1 - 3
src/set.c

@@ -37,7 +37,7 @@ int badprocess = DET_IGNORE;
 char process_list[1024] = "";
 char process_list[1024] = "";
 #endif
 #endif
 bool dccauth = 0;
 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;
 int cloak_script = 0;
 rate_t close_threshold;
 rate_t close_threshold;
 int fight_threshold;
 int fight_threshold;
@@ -58,7 +58,6 @@ int op_bots;
 rate_t op_requests;
 rate_t op_requests;
 int promisc;
 int promisc;
 int trace;
 int trace;
-bool offensive_bans;
 bool manop_warn;
 bool manop_warn;
 char homechan[51] = "";
 char homechan[51] = "";
 char usermode[15] = "";
 char usermode[15] = "";
@@ -93,7 +92,6 @@ static variable_t vars[] = {
  VAR("lag-threshold",	&lag_threshold,		VAR_INT|VAR_NOLHUB,				0, 0, "15"),
  VAR("lag-threshold",	&lag_threshold,		VAR_INT|VAR_NOLHUB,				0, 0, "15"),
  VAR("login",		&login,			VAR_INT|VAR_DETECTED,				0, 4, "warn"),
  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("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("motd",		motd,			VAR_STRING|VAR_HIDE|VAR_NOLOC,			0, 0, NULL),
  VAR("msg-ident",	msgident,		VAR_STRING|VAR_NOLHUB,				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),
  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[],
 extern char		auth_key[], auth_prefix[2], motd[], *def_chanset, alias[],
 			msgident[], msginvite[], msgop[], msgpass[],
 			msgident[], msginvite[], msgop[], msgpass[],
                         homechan[], *altchars;
                         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,
 extern int		cloak_script, fight_threshold, fork_interval, in_bots, set_noshare, dcc_autoaway,
 			kill_threshold, lag_threshold, op_bots, hijack, login, promisc, trace,
 			kill_threshold, lag_threshold, op_bots, hijack, login, promisc, trace,
                         ison_time;
                         ison_time;