1
0
Эх сурвалжийг харах

* Port [3675] to 1.2.15
* Move actual clearhosts loop from cmd_clearhosts into clearhosts() (prep for auto clearing leaf hosts)


svn: 3676

Bryan Drewery 18 жил өмнө
parent
commit
a6429d8ccc
3 өөрчлөгдсөн 17 нэмэгдсэн , 8 устгасан
  1. 2 8
      src/cmds.c
  2. 14 0
      src/userrec.c
  3. 1 0
      src/userrec.h

+ 2 - 8
src/cmds.c

@@ -3706,15 +3706,9 @@ static void cmd_clearhosts(int idx, char *par)
     }
   }
 
-  if (get_user(&USERENTRY_HOSTS, u2)) {
-    while (struct list_type *q = (struct list_type *) get_user(&USERENTRY_HOSTS, u2)) {
-      char *host = strdup(q->extra);
-      delhost_by_handle(handle, host);
-      check_this_user(handle, 1, host);
-      free(host);
-    }
+  if (clearhosts(u2))
     dprintf(idx, "Cleared hosts for %s.\n", handle);
-  } else
+  else
     dprintf(idx, "%s had no hosts set.\n", handle);
   if (conf.bot->hub)
     write_userfile(idx);

+ 14 - 0
src/userrec.c

@@ -17,6 +17,7 @@
 #include "botnet.h"
 #include "src/mod/share.mod/share.h"
 #include "src/mod/channels.mod/channels.h"
+#include "src/mod/irc.mod/irc.h"
 #include "main.h"
 #include "users.h"
 #include "chan.h"
@@ -786,3 +787,16 @@ void user_del_chan(char *dname)
     }
   }
 }
+
+bool clearhosts(struct userrec *u) {
+  if (get_user(&USERENTRY_HOSTS, u)) {
+    while (struct list_type *q = (struct list_type *) get_user(&USERENTRY_HOSTS, u)) {
+      char *host = strdup(q->extra);
+      delhost_by_handle(u->handle, host);
+      check_this_user(u->handle, 1, host);
+      free(host);
+    }
+    return 1;
+  }
+  return 0;
+}

+ 1 - 0
src/userrec.h

@@ -16,6 +16,7 @@ int write_userfile(int);
 void touch_laston(struct userrec *, char *, time_t);
 void user_del_chan(char *);
 struct userrec *host_conflicts(char *);
+bool clearhosts(struct userrec *);
 
 extern struct userrec  		*userlist, *lastuser;
 extern int			cache_hit, cache_miss, userfile_perm;