]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/nickserv.c
changed addban to addlamer, added rebindall command
[irc/evilnet/x3.git] / src / nickserv.c
index e35f5915af953b040103cd0f0ca546ac5f066e1f..4e011640714377c969b04443c2a922cbeeeb76a4 100644 (file)
@@ -1321,6 +1321,9 @@ static NICKSERV_FUNC(cmd_register)
       SyncLog("REGISTER %s %s %s %s", hi->handle, syncpass, email_addr ? email_addr : "0", user->info);
     }
 
+    /* this wont work if email is required .. */
+    process_adduser_pending(user);
+
     return 1;
 }
 
@@ -1791,6 +1794,8 @@ static NICKSERV_FUNC(cmd_auth)
     if (hi->passwd[0] != '$')
         cryptpass(passwd, hi->passwd);
     reply("NSMSG_AUTH_SUCCESS");
+
+    process_adduser_pending(user);
     argv[pw_arg] = "****";
     return 1;
 }
@@ -2054,6 +2059,8 @@ static NICKSERV_FUNC(cmd_cookie)
 
     nickserv_eat_cookie(hi->cookie);
 
+    process_adduser_pending(user);
+
     return 1;
 }
 
@@ -3429,6 +3436,7 @@ nickserv_db_read_handle(const char *handle, dict_t obj)
     struct string_list *masks, *slist;
     struct handle_info *hi;
     struct userNode *authed_users;
+    struct userData *channels;
     unsigned long int id;
     unsigned int ii;
     dict_t subdb;
@@ -3442,10 +3450,13 @@ nickserv_db_read_handle(const char *handle, dict_t obj)
     }
     if ((hi = get_handle_info(handle))) {
         authed_users = hi->users;
+        channels = hi->channels;
         hi->users = NULL;
+        hi->channels = NULL;
         dict_remove(nickserv_handle_dict, hi->handle);
     } else {
         authed_users = NULL;
+        channels = NULL;
     }
     hi = register_handle(handle, str, id);
     if (authed_users) {
@@ -3455,6 +3466,7 @@ nickserv_db_read_handle(const char *handle, dict_t obj)
             authed_users = authed_users->next_authed;
         }
     }
+    hi->channels = channels;
     masks = database_get_data(obj, KEY_MASKS, RECDB_STRING_LIST);
     hi->masks = masks ? string_list_copy(masks) : alloc_string_list(1);
     str = database_get_data(obj, KEY_MAXLOGINS, RECDB_QSTRING);