From 47fa4b2ce10f2b6e17ceaf81b7004232c5316c79 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Thu, 17 Aug 2023 12:25:48 -0900 Subject: [PATCH] InitialMailCheck() uses new API --- citadel/server/msgbase.c | 15 +++------------ citadel/server/user_ops.c | 17 ++++++----------- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/citadel/server/msgbase.c b/citadel/server/msgbase.c index edde4dc01..d01a50577 100644 --- a/citadel/server/msgbase.c +++ b/citadel/server/msgbase.c @@ -2286,8 +2286,7 @@ int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newms highest_msg = msglist[num_msgs - 1]; /* Write it back to disk. */ - cdb_store(CDB_MSGLISTS, &CC->room.QRnumber, (int)sizeof(long), - msglist, (int)(num_msgs * sizeof(long))); + cdb_store(CDB_MSGLISTS, &CC->room.QRnumber, (int)sizeof(long), msglist, (int)(num_msgs * sizeof(long))); /* Free up the memory we used. */ free(msglist); @@ -2359,9 +2358,7 @@ int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newms * This is the same as CtdlSaveMsgPointersInRoom() but it only accepts * a single message. */ -int CtdlSaveMsgPointerInRoom(char *roomname, long msgid, - int do_repl_check, struct CtdlMessage *supplied_msg) -{ +int CtdlSaveMsgPointerInRoom(char *roomname, long msgid, int do_repl_check, struct CtdlMessage *supplied_msg) { return CtdlSaveMsgPointersInRoom(roomname, &msgid, 1, do_repl_check, supplied_msg, 0); } @@ -2421,12 +2418,7 @@ long CtdlSaveThisMessage(struct CtdlMessage *msg, long msgid, int Reply) { } else { if (is_bigmsg) { - retval = cdb_store(CDB_BIGMSGS, - &msgid, - (int)sizeof(long), - holdM, - (holdMLen + 1) - ); + retval = cdb_store(CDB_BIGMSGS, &msgid, (int)sizeof(long), holdM, (holdMLen + 1)); if (retval < 0) { syslog(LOG_ERR, "msgbase: failed to store message body for msgid %ld: %ld", msgid, retval); } @@ -2435,7 +2427,6 @@ long CtdlSaveThisMessage(struct CtdlMessage *msg, long msgid, int Reply) { /* Free the memory we used for the serialized message */ free(smr.ser); - return(retval); } diff --git a/citadel/server/user_ops.c b/citadel/server/user_ops.c index 31bd579d3..a82014c21 100644 --- a/citadel/server/user_ops.c +++ b/citadel/server/user_ops.c @@ -18,6 +18,7 @@ #include "citadel_ldap.h" #include "ctdl_module.h" #include "user_ops.h" +#include "room_ops.h" #include "makeuserkey.h" #include "internet_addressing.h" @@ -1081,24 +1082,17 @@ int InitialMailCheck() { char mailboxname[ROOMNAMELEN]; struct ctdlroom mailbox; struct visit vbuf; - struct cdbdata *cdbfr; long *msglist = NULL; int num_msgs = 0; CtdlMailboxName(mailboxname, sizeof mailboxname, &CC->user, MAILROOM); - if (CtdlGetRoom(&mailbox, mailboxname) != 0) + if (CtdlGetRoom(&mailbox, mailboxname) != 0) { return(0); + } CtdlGetRelationship(&vbuf, &CC->user, &mailbox); - cdbfr = cdb_fetch(CDB_MSGLISTS, &mailbox.QRnumber, sizeof(long)); - - if (cdbfr != NULL) { - msglist = malloc(cdbfr->len); - memcpy(msglist, cdbfr->ptr, cdbfr->len); - num_msgs = cdbfr->len / sizeof(long); - cdb_free(cdbfr); - } - if (num_msgs > 0) + num_msgs = CtdlFetchMsgList(mailbox.QRnumber, &msglist); + if (num_msgs > 0) { for (a = 0; a < num_msgs; ++a) { if (msglist[a] > 0L) { if (msglist[a] > vbuf.v_lastseen) { @@ -1106,6 +1100,7 @@ int InitialMailCheck() { } } } + } if (msglist != NULL) free(msglist); -- 2.39.2