]> jfr.im git - irc/evilnet/x3.git/commitdiff
arch sync
authorrubin <redacted>
Thu, 5 May 2005 03:19:09 +0000 (03:19 +0000)
committerrubin <redacted>
Thu, 5 May 2005 03:19:09 +0000 (03:19 +0000)
ChangeLog.X3
src/nickserv.c

index ad01b449e9f0231496645e0d803aa19819e4cfc2..9bd6c60dddf8db2fe0f3dacdbf6070085d3fa36b 100644 (file)
@@ -14,7 +14,9 @@
 
        * src/hash.h: adduser pending, and increased maxbans to 128 from 45.
 
-       * src/nickserv.c: adduser pending cleanup and activation code
+       * src/nickserv.c: adduser pending cleanup and activation code,
+                         Arch sync (Avoid losing channel information when
+                         replacing an account using the mergedb command.)
 
        * src/proto-p10.c: adduser pending cleanup code 
 
index 9882dabd6e2692010d79c9c2c3289ac53e95e19d..4e011640714377c969b04443c2a922cbeeeb76a4 100644 (file)
@@ -3436,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;
@@ -3449,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) {
@@ -3462,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);