瀏覽代碼

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

svn: 1779
Bryan Drewery 21 年之前
父節點
當前提交
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'
 * Typos in help for 'info'
 * Removed compatability code left from 1.2->1.2.1 switch
 * Removed compatability code left from 1.2->1.2.1 switch
 * Removed/cleaned up more code left from eggdrop/modules
 * 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
 1.2.2
 * Don't sanity check flags for users on DCC CHAT if they are on the bot via .botcmd.
 * 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
                           channel is set to +i. Once the channel is -i then the
                           invite will be removed the next time the bot checks.
                           invite will be removed the next time the bot checks.
                           Please note that this is an IRCnet feature.
                           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.
      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.
       $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.
       $bmanop$b                  Users who op manually in a -manop chan.
       $bmdop$b                   Users who mass deop.
       $bmdop$b                   Users who mass deop.
       $bmop$b                    Users who mass op in a -mop chan.
       $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 */
 #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)
 void deflag_user(struct userrec *u, int why, char *msg, struct chanset_t *chan)
 {
 {
   if (!u)
   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
 #ifdef G_MEAN
 extern struct cfg_entry CFG_MEANDEOP, CFG_MEANKICK, CFG_MEANBAN;
 extern struct cfg_entry CFG_MEANDEOP, CFG_MEANKICK, CFG_MEANBAN;
 #endif /* G_MEAN */
 #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 set_cfg_str(char *, char *, char *);
 void add_cfg(struct cfg_entry *);
 void add_cfg(struct cfg_entry *);
 void got_config_share(int, char *, int);
 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_wasop(x) (x->flags & WASOP)
 #define chan_stopcheck(x) (x->flags & STOPCHECK)
 #define chan_stopcheck(x) (x->flags & STOPCHECK)
 
 
+#define P_IGNORE	0
 #define P_DEOP		1
 #define P_DEOP		1
 #define P_KICK		2
 #define P_KICK		2
 #define P_DELETE	3
 #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;
 			break;
 		case DP_S_MIN:
 		case DP_S_MIN:
-			if (isdigit((unsigned char)ch)) {
+			if (egg_isdigit((unsigned char)ch)) {
 				min = 10 * min + char_to_int (ch);
 				min = 10 * min + char_to_int (ch);
 				ch = *format++;
 				ch = *format++;
 			} else if (ch == '*') {
 			} else if (ch == '*') {
@@ -190,7 +190,7 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args)
 				state = DP_S_MOD;
 				state = DP_S_MOD;
 			break;
 			break;
 		case DP_S_MAX:
 		case DP_S_MAX:
-			if (isdigit((unsigned char)ch)) {
+			if (egg_isdigit((unsigned char)ch)) {
 				if (max < 0)
 				if (max < 0)
 					max = 0;
 					max = 0;
 				max = 10 * max + char_to_int(ch);
 				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");
           sprintf(result, "channel bad-cookie needs argument");
         return ERROR;
         return ERROR;
       }
       }
-      chan->bad_cookie = atoi(item[i]);
+      chan->bad_cookie = deflag_translate(item[i]);
     } else if (!strcmp(item[i], "cookie_time_slack")) {
     } else if (!strcmp(item[i], "cookie_time_slack")) {
       i++;
       i++;
       if (i >= items) {
       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");
           sprintf(result, "channel manop needs argument");
         return ERROR;
         return ERROR;
       }
       }
-      chan->manop = atoi(item[i]);
+      chan->manop = deflag_translate(item[i]);
     } else if (!strcmp(item[i], "mdop")) {
     } else if (!strcmp(item[i], "mdop")) {
       i++;
       i++;
       if (i >= items) {
       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");
           sprintf(result, "channel mdop needs argument");
         return ERROR;
         return ERROR;
       }
       }
-      chan->mdop = atoi(item[i]);
+      chan->mdop = deflag_translate(item[i]);
     } else if (!strcmp(item[i], "mop")) {
     } else if (!strcmp(item[i], "mop")) {
       i++;
       i++;
       if (i >= items) {
       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");
           sprintf(result, "channel mop needs argument");
         return ERROR;
         return ERROR;
       }
       }
-      chan->mop = atoi(item[i]);
+      chan->mop = deflag_translate(item[i]);
 /* Chanint template
 /* Chanint template
  *  } else if (!strcmp(item[i], "temp")) {
  *  } else if (!strcmp(item[i], "temp")) {
  *    i++;
  *    i++;

+ 0 - 1
src/userrec.h

@@ -1,7 +1,6 @@
 #ifndef _USERREC_H
 #ifndef _USERREC_H
 #define _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);
 struct userrec *adduser(struct userrec *, char *, char *, char *, flag_t, int);
 void addhost_by_handle(char *, char *);
 void addhost_by_handle(char *, char *);
 void clear_masks(struct maskrec *);
 void clear_masks(struct maskrec *);