InitialMailCheck() uses new API
authorArt Cancro <ajc@citadel.org>
Thu, 17 Aug 2023 21:25:48 +0000 (12:25 -0900)
committerArt Cancro <ajc@citadel.org>
Thu, 17 Aug 2023 21:25:48 +0000 (12:25 -0900)
citadel/server/msgbase.c
citadel/server/user_ops.c

index edde4dc015468711de3df2e8f74b8823e719e2d8..d01a50577ad5f471a6dfe44d092704ed0de43b2d 100644 (file)
@@ -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);
 }
 
index 31bd579d3ab15a884a698142c35c9272a5f550f8..a82014c211a39736caa90f7620a201ecac958c08 100644 (file)
@@ -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);