msgbase.c all migrated to new api now
authorArt Cancro <ajc@citadel.org>
Thu, 17 Aug 2023 22:52:54 +0000 (13:52 -0900)
committerArt Cancro <ajc@citadel.org>
Thu, 17 Aug 2023 22:52:54 +0000 (13:52 -0900)
citadel/server/msgbase.c

index 6878de8ec665ae09f4890a545335decdab3606d7..daee42762e6b986a9ab19c96daa250b734243426 100644 (file)
@@ -2236,18 +2236,7 @@ int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newms
 
        msgs_to_be_merged = malloc(sizeof(long) * num_newmsgs);
        num_msgs_to_be_merged = 0;
-
-       cdbfr = cdb_fetch(CDB_MSGLISTS, &CC->room.QRnumber, sizeof(long));
-       if (cdbfr == NULL) {
-               msglist = NULL;
-               num_msgs = 0;
-       }
-       else {
-               msglist = (long *) cdbfr->ptr;
-               cdbfr->ptr = NULL;      // CtdlSaveMsgPointerInRoom() now owns this memory (this needs attention if we move to LMDB)
-               num_msgs = cdbfr->len / sizeof(long);
-               cdb_free(cdbfr);
-       }
+       num_msgs = CtdlFetchMsgList(CC->room.QRnumber, &msglist);
 
        /* Create a list of msgid's which were supplied by the caller, but do
         * not already exist in the target room.  It is absolutely taboo to
@@ -3217,16 +3206,10 @@ int CtdlDeleteMessages(const char *room_name,   // which room
                if (need_to_free_re) regfree(&re);
                return(0);      /* room not found */
        }
-       cdbfr = cdb_fetch(CDB_MSGLISTS, &qrbuf.QRnumber, sizeof(long));
 
-       if (cdbfr != NULL) {
-               dellist = malloc(cdbfr->len);
-               num_msgs = cdbfr->len / sizeof(long);
-               msglist = (long *) malloc(cdbfr->len);
-               memcpy(msglist, cdbfr->ptr, cdbfr->len);
-               cdb_free(cdbfr);
-       }
+       num_msgs = CtdlFetchMsgList(qrbuf.QRnumber, &msglist);
        if (num_msgs > 0) {
+               dellist = malloc(num_msgs * sizeof(long));
                int have_contenttype = (content_type != NULL) && !IsEmptyStr(content_type);
                int have_delmsgs = (num_dmsgnums == 0) || (dmsgnums == NULL);
                int have_more_del = 1;
@@ -3277,22 +3260,16 @@ int CtdlDeleteMessages(const char *room_name,   // which room
                        }
                        i++;
                }
-/*
-               {
-                       StrBuf *dbg = NewStrBuf();
-                       for (i = 0; i < num_deleted; i++)
-                               StrBufAppendPrintf(dbg, ", %ld", dellist[i]);
-                       syslog(LOG_DEBUG, "msgbase: Deleting: %s", ChrPtr(dbg));
-                       FreeStrBuf(&dbg);
-               }
-*/
+
                num_msgs = sort_msglist(msglist, num_msgs);
                cdb_store(CDB_MSGLISTS, &qrbuf.QRnumber, (int)sizeof(long), msglist, (int)(num_msgs * sizeof(long)));
 
-               if (num_msgs > 0)
+               if (num_msgs > 0) {
                        qrbuf.QRhighest = msglist[num_msgs - 1];
-               else
+               }
+               else {
                        qrbuf.QRhighest = 0;
+               }
        }
        CtdlPutRoomLock(&qrbuf);