// 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
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