]> code.citadel.org Git - citadel.git/blobdiff - citadel/server/euidindex.c
cdb_fetch() and cdb_next_item() now return a struct cdbdata instead of a pointer...
[citadel.git] / citadel / server / euidindex.c
index b992d6f82c8e16648e937eb311ee22c4c3952fe9..2ebd2048430aa13af79819adf85ba43c37a6114d 100644 (file)
@@ -1,6 +1,6 @@
 // Index messages by EUID per room.
 //
-// Copyright (c) 1987-2022 by the citadel.org team
+// Copyright (c) 1987-2023 by the citadel.org team
 //
 // This program is open source software.  Use, duplication, or disclosure
 // is subject to the terms of the GNU General Public License, version 3.
@@ -52,7 +52,7 @@ long locate_message_by_euid(char *euid, struct ctdlroom *qrbuf) {
 long CtdlLocateMessageByEuid(char *euid, struct ctdlroom *qrbuf) {
        char *key;
        int key_len;
-       struct cdbdata *cdb_euid;
+       struct cdbdata cdb_euid;
        long msgnum = (-1L);
 
        syslog(LOG_DEBUG, "euidindex: searching for EUID <%s> in <%s>", euid, qrbuf->QRname);
@@ -65,13 +65,12 @@ long CtdlLocateMessageByEuid(char *euid, struct ctdlroom *qrbuf) {
        cdb_euid = cdb_fetch(CDB_EUIDINDEX, key, key_len);
        free(key);
 
-       if (cdb_euid == NULL) {
+       if (cdb_euid.len == 0) {
                msgnum = (-1L);
        }
        else {
                // The first (sizeof long) of the record is what we're looking for.  Throw away the rest.
-               memcpy(&msgnum, cdb_euid->ptr, sizeof(long));
-               cdb_free(cdb_euid);
+               memcpy(&msgnum, cdb_euid.ptr, sizeof(long));
        }
        syslog(LOG_DEBUG, "euidindex: returning msgnum = %ld", msgnum);
        return(msgnum);