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

* Fixed chanset (manop/mop/mdop/bad-cookie) to accept english parameters: ignore/deop/kick/delete/remove.

svn: 1779
Bryan Drewery 21 лет назад
Родитель
Сommit
8769e75691
8 измененных файлов с 35 добавлено и 16 удалено
  1. 1 0
      doc/UPDATES
  2. 7 8
      misc/help.txt
  3. 18 0
      src/cfg.c
  4. 2 1
      src/cfg.h
  5. 1 0
      src/chan.h
  6. 2 2
      src/compat/snprintf.c
  7. 4 4
      src/mod/channels.mod/tclchan.c
  8. 0 1
      src/userrec.h

+ 1 - 0
doc/UPDATES

@@ -13,6 +13,7 @@ Lines prefixxed with '-' were disabled before release and are not finishsed.
 * Typos in help for 'info'
 * Removed compatability code left from 1.2->1.2.1 switch
 * Removed/cleaned up more code left from eggdrop/modules
+* Fixed chanset (manop/mop/mdop/bad-cookie) to accept english parameters: ignore/deop/kick/delete/remove. 
 
 1.2.2
 * Don't sanity check flags for users on DCC CHAT if they are on the bot via .botcmd.

+ 7 - 8
misc/help.txt

@@ -413,17 +413,16 @@ See also: link
                           channel is set to +i. Once the channel is -i then the
                           invite will be removed the next time the bot checks.
                           Please note that this is an IRCnet feature.
+        $bcookie-time-slack$b    How many seconds off of botnet timesync is allowed
+                                 in cookies.
      The following options chose how to respond to specific events.
-        Each can be set from 0-3.
-        0           Ignore
-        1           Deop (chattr +d)
-        2           Kick (chattr +k)
-        3           Remove user
+        Each can be set as any of the specified options.
+        ignore/0           Ignore
+        deop/1             Deop (chattr +d)
+        kick/2             Kick (chattr +k)
+        delete/remove/3    Remove user
       
       $bbad-cookie$b             Missing or invalid cookie in bot op line.
- 
-      $bcookie-time-slack$b      How many seconds off of botnet timesync is allowed
-                                 in cookies.
       $bmanop$b                  Users who op manually in a -manop chan.
       $bmdop$b                   Users who mass deop.
       $bmop$b                    Users who mass op in a -mop chan.

+ 18 - 0
src/cfg.c

@@ -170,6 +170,24 @@ struct cfg_entry CFG_CMDPREFIX = {
 #endif /* LEAF */
 };
 
+int deflag_translate(const char *buf)
+{
+  int num = atoi(buf);
+
+  if (egg_isdigit(num))
+    return num;
+
+  if (!egg_strcasecmp(buf, "ignore"))
+    return P_IGNORE;
+  else if (!egg_strcasecmp(buf, "deop"))
+    return P_DEOP;
+  else if (!egg_strcasecmp(buf, "kick"))
+    return P_KICK;
+  else if (!egg_strcasecmp(buf, "delete") || !egg_strcasecmp(buf, "remove"))
+    return P_DELETE;  
+  return P_IGNORE;
+}
+
 void deflag_user(struct userrec *u, int why, char *msg, struct chanset_t *chan)
 {
   if (!u)

+ 2 - 1
src/cfg.h

@@ -29,7 +29,8 @@ extern struct cfg_entry CFG_MOTD, CFG_CMDPREFIX, CFG_FORKINTERVAL, CFG_CHANSET,
 #ifdef G_MEAN
 extern struct cfg_entry CFG_MEANDEOP, CFG_MEANKICK, CFG_MEANBAN;
 #endif /* G_MEAN */
-
+void deflag_user(struct userrec *, int, char *, struct chanset_t *);
+int deflag_translate(const char *);
 void set_cfg_str(char *, char *, char *);
 void add_cfg(struct cfg_entry *);
 void got_config_share(int, char *, int);

+ 1 - 0
src/chan.h

@@ -52,6 +52,7 @@ typedef struct memstruct {
 #define chan_wasop(x) (x->flags & WASOP)
 #define chan_stopcheck(x) (x->flags & STOPCHECK)
 
+#define P_IGNORE	0
 #define P_DEOP		1
 #define P_KICK		2
 #define P_DELETE	3

+ 2 - 2
src/compat/snprintf.c

@@ -172,7 +172,7 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args)
 			}
 			break;
 		case DP_S_MIN:
-			if (isdigit((unsigned char)ch)) {
+			if (egg_isdigit((unsigned char)ch)) {
 				min = 10 * min + char_to_int (ch);
 				ch = *format++;
 			} else if (ch == '*') {
@@ -190,7 +190,7 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args)
 				state = DP_S_MOD;
 			break;
 		case DP_S_MAX:
-			if (isdigit((unsigned char)ch)) {
+			if (egg_isdigit((unsigned char)ch)) {
 				if (max < 0)
 					max = 0;
 				max = 10 * max + char_to_int(ch);

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

@@ -432,7 +432,7 @@ int channel_modify(char *result, struct chanset_t *chan, int items, char **item)
           sprintf(result, "channel bad-cookie needs argument");
         return ERROR;
       }
-      chan->bad_cookie = atoi(item[i]);
+      chan->bad_cookie = deflag_translate(item[i]);
     } else if (!strcmp(item[i], "cookie_time_slack")) {
       i++;
       if (i >= items) {
@@ -448,7 +448,7 @@ int channel_modify(char *result, struct chanset_t *chan, int items, char **item)
           sprintf(result, "channel manop needs argument");
         return ERROR;
       }
-      chan->manop = atoi(item[i]);
+      chan->manop = deflag_translate(item[i]);
     } else if (!strcmp(item[i], "mdop")) {
       i++;
       if (i >= items) {
@@ -456,7 +456,7 @@ int channel_modify(char *result, struct chanset_t *chan, int items, char **item)
           sprintf(result, "channel mdop needs argument");
         return ERROR;
       }
-      chan->mdop = atoi(item[i]);
+      chan->mdop = deflag_translate(item[i]);
     } else if (!strcmp(item[i], "mop")) {
       i++;
       if (i >= items) {
@@ -464,7 +464,7 @@ int channel_modify(char *result, struct chanset_t *chan, int items, char **item)
           sprintf(result, "channel mop needs argument");
         return ERROR;
       }
-      chan->mop = atoi(item[i]);
+      chan->mop = deflag_translate(item[i]);
 /* Chanint template
  *  } else if (!strcmp(item[i], "temp")) {
  *    i++;

+ 0 - 1
src/userrec.h

@@ -1,7 +1,6 @@
 #ifndef _USERREC_H
 #define _USERREC_H
 
-void deflag_user(struct userrec *, int, char *, struct chanset_t *);
 struct userrec *adduser(struct userrec *, char *, char *, char *, flag_t, int);
 void addhost_by_handle(char *, char *);
 void clear_masks(struct maskrec *);