ctdldump: dump config records. This is now functionally complete.
authorArt Cancro <ajc@citadel.org>
Wed, 12 Jul 2023 02:22:14 +0000 (17:22 -0900)
committerArt Cancro <ajc@citadel.org>
Wed, 12 Jul 2023 02:22:14 +0000 (17:22 -0900)
citadel/utils/ctdldump.c

index ae884a1e59e55b5fc5804eba124ed07ffa47f215..a5c64274fb8f3385a75623f77e5376caca650155 100644 (file)
@@ -337,28 +337,17 @@ void export_usersbynumber(int which_cdb, DBT *in_key, DBT *in_data) {
 }
 
 
-#if 0
 // export function for a config record
-void export_config(int which_cdb, DBT *in_key, DBT *in_data, DBT *out_key, DBT *out_data) {
-
-       // the key is a string
-       out_key->size = in_key->size;
-       out_key->data = realloc(out_key->data, out_key->size + 1);
-       memcpy(out_key->data, in_key->data, in_key->size);
-       char *k = (char *)out_key->data;
-       k[out_key->size] = 0;
-
-       // the data is a pair of strings
-       out_data->size = in_data->size;
-       out_data->data = realloc(out_data->data, out_data->size + 1);
-       memcpy(out_data->data, in_data->data, in_data->size);
-       char *d = (char *)out_data->data;
-       d[out_data->size] = 0;
-
-       // please excuse my friend, he isn't null terminated
-       // printf("\033[32m\033[1mConfig entry: %s -> %s\033[0m\n", (char *)out_key->data, (char *)out_data->data+strlen(out_data->data)+1);
+void export_config(int which_cdb, DBT *in_key, DBT *in_data) {
+
+       size_t keylen = in_key->size;
+       printf("config|");
+       fwrite(in_data->data, keylen, 1, stdout);
+
+       printf("|");
+       fwrite(in_data->data + keylen, in_data->size - keylen, 1, stdout);
+       printf("|\n");
 }
-#endif
 
 
 // For obsolete databases, zero all the output
@@ -381,7 +370,7 @@ void (*export_functions[])(int which_cdb, DBT *in_key, DBT *in_data) = {
        export_euidindex,       // CDB_EUIDINDEX
        export_usersbynumber,   // CDB_USERSBYNUMBER
        zero_function,          // CDB_UNUSED1 (obsolete)
-       zero_function           // CDB_CONFIG
+       export_config           // CDB_CONFIG
 };