From b40b1d88c8de57cbf505b6e3134d536e153639fa Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 10 Jul 2023 18:09:20 -0900 Subject: [PATCH] ctdldump.c: export users --- citadel/utils/ctdldump.c | 53 +++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/citadel/utils/ctdldump.c b/citadel/utils/ctdldump.c index 387dab2e5..1f623b425 100644 --- a/citadel/utils/ctdldump.c +++ b/citadel/utils/ctdldump.c @@ -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 -- 2.39.2