]> code.citadel.org Git - citadel.git/blobdiff - citadel/server/user_ops.c
InitialMailCheck() uses new API
[citadel.git] / citadel / server / user_ops.c
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);