From c9bd94510cac5e20e9ca3d64caa27a02e3bafbdb Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Wed, 12 Apr 2023 11:12:56 -0400 Subject: [PATCH] copying msglists done --- citadel/utils/ctdl3264.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/citadel/utils/ctdl3264.c b/citadel/utils/ctdl3264.c index bb3ff6fc7..d7d1ba8ce 100644 --- a/citadel/utils/ctdl3264.c +++ b/citadel/utils/ctdl3264.c @@ -273,15 +273,23 @@ void convert_msglists(int which_cdb, DBT *in_key, DBT *in_data, DBT *out_key, DB int num_msgs = in_data->size / sizeof(int32_t); printf("msglist for room %ld (%d messages)\n", out_roomnum, num_msgs); + // the key is a "long" + out_key->size = sizeof(out_roomnum); + out_key->data = realloc(out_key->data, out_key->size); + memcpy(out_key->data, &out_roomnum, sizeof(out_roomnum)); + + // the data is another array, but a wider type + out_data->size = sizeof(long) * num_msgs; + out_data->data = realloc(out_data->data, out_data->size); + int32_t in_msg = 0; long out_msg = 0; for (i=0; idata + (i * sizeof(int32_t))), sizeof(int32_t)); - printf("#%d\n", in_msg); + out_msg = (long) in_msg; + memcpy((out_data->data + (i * sizeof(long))), &out_msg, sizeof(long)); + printf("#%ld\n", out_msg); } - - - } -- 2.39.2