ctdldump.c: export users
authorArt Cancro <ajc@citadel.org>
Tue, 11 Jul 2023 03:09:20 +0000 (18:09 -0900)
committerArt Cancro <ajc@citadel.org>
Tue, 11 Jul 2023 03:09:20 +0000 (18:09 -0900)
citadel/utils/ctdldump.c

index 387dab2e55f6ecdc52f0a2aab95b3e8480840e27..1f623b4258c08888c525bb7bea900fb1a14eec03 100644 (file)
@@ -163,39 +163,30 @@ void export_msgmain(int which_cdb, DBT *in_key, DBT *in_data) {
        // If the msgnum is 0 it's probably not a valid record.
 }
 
-#if 0
 
 // convert function for a user record
-void export_users(int which_cdb, DBT *in_key, DBT *in_data, DBT *out_key, DBT *out_data) {
-
-       // The key is a string so we can just copy it over
-       out_key->size = in_key->size;
-       out_key->data = realloc(out_key->data, out_key->size);
-       memcpy(out_key->data, in_key->data, in_key->size);
-
-       struct ctdluser_32 *user32 = (struct ctdluser_32 *)in_data->data;
-
-       out_data->size = sizeof(struct ctdluser);
-       out_data->data = realloc(out_data->data, out_data->size);
-       struct ctdluser *user64 = (struct ctdluser *)out_data->data;
-
-       user64->version                 = (int)         user32->version;
-       user64->uid                     = (uid_t)       user32->uid;
-       strcpy(user64->password,                        user32->password);
-       user64->flags                   = (unsigned)    user32->flags;
-       user64->axlevel                 = (cit_uint8_t) user32->axlevel;
-       user64->usernum                 = (long)        user32->usernum;
-       user64->lastcall                = (time_t)      user32->lastcall;
-       user64->USuserpurge             = (int)         user32->USuserpurge;
-       strcpy(user64->fullname,                        user32->fullname);
-       user64->msgnum_bio              = (long)        user32->msgnum_bio;
-       user64->msgnum_pic              = (long)        user32->msgnum_pic;
-       strcpy(user64->emailaddrs,                      user32->emailaddrs);
-       user64->msgnum_inboxrules       = (long)        user32->msgnum_inboxrules;
-       user64->lastproc_inboxrules     = (long)        user32->lastproc_inboxrules;
-
-       // printf("\033[32m\033[1mUser: %s\033[0m\n", user64->fullname);
+void export_user(int which_cdb, DBT *in_key, DBT *in_data) {
+
+       struct ctdluser *user = (struct ctdluser *)in_data->data;
+
+       printf("user|%d|%d|%s|%u|%d|%ld|%ld|%d|%s|%ld|%ld|%s|%ld|%ld\n",
+               user->version,                  // Citadel version which created this record
+               user->uid,                      // Associate with a unix account?
+               user->password,                 // password
+               user->flags,                    // See US_ flags
+               user->axlevel,                  // Access level
+               user->usernum,                  // User number (never recycled)
+               user->lastcall,                 // Date/time of most recent login
+               user->USuserpurge,              // Purge time (in days) for user
+               user->fullname,                 // Display name (primary identifier)
+               user->msgnum_bio,               // msgnum of user's profile (bio)
+               user->msgnum_pic,               // msgnum of user's avatar (photo)
+               hexout(user->emailaddrs, strlen(user->emailaddrs)),     // Internet email addresses
+               user->msgnum_inboxrules,        // msgnum of user's inbox filtering rules
+               user->lastproc_inboxrules       // msgnum of last message filtered
+       );
 }
+#if 0
 
 
 // convert function for a room record
@@ -502,7 +493,7 @@ void zero_function(int which_cdb, DBT *in_key, DBT *in_data) {
 
 void (*export_functions[])(int which_cdb, DBT *in_key, DBT *in_data) = {
        export_msgmain,         // CDB_MSGMAIN
-       zero_function,          // CDB_USERS
+       export_user,            // CDB_USERS
        zero_function,          // CDB_ROOMS
        zero_function,          // CDB_FLOORTAB
        zero_function,          // CDB_MSGLISTS