tidied up devnull management and prepared functions for coming "dynamic devnull"...
[srvx.git] / src / nickserv.c
index b9931de907b2be615401eec661d972b369502326..17f9a15c8dc3a0e9d9ffab109791919adad633af 100644 (file)
@@ -988,7 +988,7 @@ reg_handle_rename_func(handle_rename_func_t func)
     rf_list[rf_list_used++] = func;
 }
 
-static char *
+char *
 generate_fakehost(struct handle_info *handle)
 {
     extern const char *hidden_host_suffix;
@@ -1009,7 +1009,7 @@ generate_fakehost(struct handle_info *handle)
     return handle->fakehost;
 }
 
-static char *
+char *
 generate_fakeident(struct handle_info *handle, struct userNode *user)
 {
     static char buffer[USERLEN+1];
@@ -1023,7 +1023,7 @@ generate_fakeident(struct handle_info *handle, struct userNode *user)
     return handle->fakeident;
 }
 
-static void
+void
 apply_fakehost(struct handle_info *handle, struct userNode *user)
 {
     struct userNode *target;
@@ -1382,11 +1382,11 @@ static NICKSERV_FUNC(cmd_register)
         return 0;
     /* Add any masks they should get. */
     if (nickserv_conf.default_hostmask) {
-        string_list_append(hi->masks, strdup("*@*"));
+        nickserv_addmask(NULL, hi, strdup("*@*"));
     } else {
-        string_list_append(hi->masks, generate_hostmask(user, GENMASK_OMITNICK|GENMASK_NO_HIDING|GENMASK_ANY_IDENT));
+        nickserv_addmask(NULL, hi, generate_hostmask(user, GENMASK_OMITNICK|GENMASK_NO_HIDING|GENMASK_ANY_IDENT));
         if (irc_in_addr_is_valid(user->ip) && !irc_pton(&ip, NULL, user->hostname))
-            string_list_append(hi->masks, generate_hostmask(user, GENMASK_OMITNICK|GENMASK_BYIP|GENMASK_NO_HIDING|GENMASK_ANY_IDENT));
+            nickserv_addmask(NULL, hi, generate_hostmask(user, GENMASK_OMITNICK|GENMASK_BYIP|GENMASK_NO_HIDING|GENMASK_ANY_IDENT));
     }
 
     /* If they're the first to register, give them level 1000. */
@@ -1959,9 +1959,9 @@ static NICKSERV_FUNC(cmd_auth)
         cryptpass(passwd, hi->passwd);
     if (!hi->masks->used) {
         irc_in_addr_t ip;
-        string_list_append(hi->masks, generate_hostmask(user, GENMASK_OMITNICK|GENMASK_NO_HIDING|GENMASK_ANY_IDENT));
+        nickserv_addmask(NULL, hi, generate_hostmask(user, GENMASK_OMITNICK|GENMASK_NO_HIDING|GENMASK_ANY_IDENT));
         if (irc_in_addr_is_valid(user->ip) && irc_pton(&ip, NULL, user->hostname))
-            string_list_append(hi->masks, generate_hostmask(user, GENMASK_OMITNICK|GENMASK_BYIP|GENMASK_NO_HIDING|GENMASK_ANY_IDENT));
+            nickserv_addmask(NULL, hi, generate_hostmask(user, GENMASK_OMITNICK|GENMASK_BYIP|GENMASK_NO_HIDING|GENMASK_ANY_IDENT));
     }
     authlog_add(hi, user, NULL);
     argv[pw_arg] = "****";
@@ -1969,7 +1969,7 @@ static NICKSERV_FUNC(cmd_auth)
     return 1;
 }
 
-struct handle_info *checklogin(const char *user, const char *pass, const char *numeric, const char *hostmask, const char *ipmask)
+struct handle_info *checklogin(const char *user, const char *pass, UNUSED_ARG(const char *numeric), const char *hostmask, const char *ipmask)
 {
     struct handle_info *hi;
     unsigned int match = 0, ii = 0;
@@ -2421,13 +2421,15 @@ nickserv_addmask(struct userNode *user, struct handle_info *hi, const char *mask
     char *new_mask = canonicalize_hostmask(strdup(mask));
     for (i=0; i<hi->masks->used; i++) {
         if (!irccasecmp(new_mask, hi->masks->list[i])) {
-            send_message(user, nickserv, "NSMSG_ADDMASK_ALREADY", new_mask);
+            if(user)
+                send_message(user, nickserv, "NSMSG_ADDMASK_ALREADY", new_mask);
             free(new_mask);
             return 0;
         }
     }
     string_list_append(hi->masks, new_mask);
-    send_message(user, nickserv, "NSMSG_ADDMASK_SUCCESS", new_mask);
+    if(user)
+        send_message(user, nickserv, "NSMSG_ADDMASK_SUCCESS", new_mask);
     return 1;
 }
 
@@ -2659,7 +2661,7 @@ static OPTION_FUNC(opt_devnull)
             hi->devnull = NULL;
         } else {
             devnull = unsplit_string(argv+1, argc-1, NULL);
-            if(devnull_check(devnull) == 1) { 
+            if(devnull_check_name(devnull)) { 
                 if(hi->devnull)
                     free(hi->devnull);
                 hi->devnull = strdup(devnull);