Ver código fonte

* Added bool var 'mean-kicks' which enables offensive/mean kick msgs.

svn: 2200
Bryan Drewery 21 anos atrás
pai
commit
7ed79e646c
8 arquivos alterados com 22 adições e 5 exclusões
  1. 1 0
      doc/UPDATES
  2. 2 0
      misc/help.txt
  3. 1 1
      src/makeres.c
  4. 2 2
      src/mod/irc.mod/chan.c
  5. 1 1
      src/mod/irc.mod/mode.c
  6. 12 0
      src/response.c
  7. 2 0
      src/set.c
  8. 1 1
      src/set.h

+ 1 - 0
doc/UPDATES

@@ -59,6 +59,7 @@ Lines prefixed with '-' were disabled before release and are not finished, or ar
 * Added var 'autoaway': How long in seconds until an idle user is set away on dcc auto. (Def: 1800, 30min)
 * Added rate vars 'flood-msg' and 'flood-ctcp' to control how quickly a bot ignores on flood.
 * Added rate var 'flood-g' which will set +g for 60 seconds after this many msgs:sec has been detected. (#74)
+* Added bool var 'mean-kicks' which enables offensive/mean kick msgs.
 * Optimized WHO parsing more to alieviate some cpu usage in large chans
 * Binary writing is now a bit faster as the hash is calculated on the fly now.
 * Rewrote how logs are shared over botnet, now uses much less bw and resources. (#31)

+ 2 - 0
misc/help.txt

@@ -1499,6 +1499,8 @@ See also: reload, backup
                           Will always fail at auth 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.
+ 
   *  Msg cmd vars may be left blank to disable usage of cmd.
 [S]  $bmsgop$b           Defines the cmd for opping via msging the bot.
 [S]  $bmsgpass$b         Defines the cmd for setting a pass via msging the bot.

+ 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();\n\n#endif /* !_RESPONSE_H */\n");
+          fprintf(outf, "const char *response(response_t);\nvoid init_responses();\nconst char *r_banned();\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 - 2
src/mod/irc.mod/chan.c

@@ -1647,7 +1647,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, response(RES_BANNED));
+      dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chan->name, nick, bankickprefix, r_banned());
       m->flags |= SENTKICK;
     }
     /* if the user is a +k */
@@ -2401,7 +2401,7 @@ static int gotjoin(char *from, char *chname)
               me_op(chan)) {
             for (b = chan->channel.ban; b->mask[0]; b = b->next) {
               if (wild_match(b->mask, from)) {
-                dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chname, m->nick, bankickprefix, response(RES_BANNED));
+                dprintf(DP_SERVER, "KICK %s %s :%s%s\n", chname, m->nick, bankickprefix, r_banned());
                 m->flags |= SENTKICK;
                 goto exit;
               }

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

@@ -752,7 +752,7 @@ got_ban(struct chanset_t *chan, memberlist *m, char *mask, char *isserver)
         }
       }
     }
-    kick_all(chan, mask, resn[0] ? (const char *) resn : response(RES_BANNED), match_my_nick(m->nick) ? 0 : 1);
+    kick_all(chan, mask, resn[0] ? (const char *) resn : r_banned(), 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)))

+ 12 - 0
src/response.c

@@ -44,3 +44,15 @@ response(response_t type)
 
   return res[type][randint(response_totals[type])];
 }
+
+const char *
+r_banned()
+{
+  if (!offensive_bans)
+    return response(RES_BANNED);
+
+  if (randint(1))
+    return response(RES_BANNED);
+  else
+    return response(RES_BANNED_OFFENSIVE);
+}

+ 2 - 0
src/set.c

@@ -46,6 +46,7 @@ rate_t op_requests = { 2, 5 };
 char process_list[1024] = "";
 int promisc = DET_WARN;
 int trace = DET_WARN;
+bool offensive_bans = 1;
 
 static variable_t vars[] = {
  {"alias",		alias,			sizeof(alias),			VAR_STRING|VAR_LIST|VAR_NOLOC|VAR_PERM, NULL, NULL},
@@ -68,6 +69,7 @@ static variable_t vars[] = {
  {"kill-threshold",	&kill_threshold,	0,				VAR_INT|VAR_NOLOC, NULL, NULL},
  {"lag-threshold",	&lag_threshold,		0,				VAR_INT|VAR_NOLHUB, NULL, NULL},
  {"login",		&login,			0,				VAR_INT|VAR_DETECTED, NULL, NULL},
+ {"mean-kicks",		&offensive_bans,	0,				VAR_INT|VAR_BOOL|VAR_NOLHUB, NULL, NULL},
  {"motd",		motd,			sizeof(motd),			VAR_STRING|VAR_HIDE|VAR_NOLOC, NULL, NULL},
  {"msg-ident",		msgident,		sizeof(msgident),		VAR_STRING|VAR_NOLHUB, NULL, NULL},
  {"msg-invite",		msginvite,		sizeof(msginvite),		VAR_STRING|VAR_NOLHUB, NULL, NULL},

+ 1 - 1
src/set.h

@@ -52,7 +52,7 @@ typedef struct rate_b {
 
 extern char		auth_key[], auth_prefix[2], motd[], *def_chanset, alias[],
 			msgident[], msginvite[], msgop[], msgpass[], process_list[];
-extern bool		dccauth, auth_obscure;
+extern bool		dccauth, auth_obscure, offensive_bans;
 extern int		cloak_script, fight_threshold, fork_interval, in_bots, set_noshare, dcc_autoaway,
 			kill_threshold, lag_threshold, op_bots, badprocess, hijack, login, promisc, trace;
 extern rate_t		op_requests, close_threshold;