X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Feuidindex.c;h=247a998a83d86cf99ba35371555322cb74c458e1;hb=2d108c1f33c86b501a2540ba48eaedded8894f20;hp=95c7c77a792fe05b885f685a5048cf19696fb525;hpb=0fadbcbe2c27134ad71634b9c81d277d118eff17;p=citadel.git diff --git a/citadel/euidindex.c b/citadel/euidindex.c index 95c7c77a7..247a998a8 100644 --- a/citadel/euidindex.c +++ b/citadel/euidindex.c @@ -1,5 +1,15 @@ -/* +/* * Index messages by EUID per room. + * + * Copyright (c) 1987-2020 by the citadel.org team + * + * This program is open source software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. */ #include "sysdep.h" @@ -23,8 +33,6 @@ * */ - - /* * Return nonzero if the supplied room is one which should have * an EUID index. @@ -48,10 +56,6 @@ int DoesThisRoomNeedEuidIndexing(struct ctdlroom *qrbuf) { } - - - - /* * Locate a message in a given room with a given euid, and return * its message number. @@ -60,6 +64,7 @@ long locate_message_by_euid(char *euid, struct ctdlroom *qrbuf) { return CtdlLocateMessageByEuid (euid, qrbuf); } + long CtdlLocateMessageByEuid(char *euid, struct ctdlroom *qrbuf) { char *key; int key_len; @@ -101,7 +106,7 @@ void index_message_by_euid(char *euid, struct ctdlroom *qrbuf, long msgnum) { char *data; int data_len; - syslog(LOG_DEBUG, "euidindex: ndexing message #%ld <%s> in <%s>", msgnum, euid, qrbuf->QRname); + syslog(LOG_DEBUG, "euidindex: indexing message #%ld <%s> in <%s>", msgnum, euid, qrbuf->QRname); key_len = strlen(euid) + sizeof(long) + 1; key = malloc(key_len); @@ -120,14 +125,13 @@ void index_message_by_euid(char *euid, struct ctdlroom *qrbuf, long msgnum) { } - /* * Called by rebuild_euid_index_for_room() to index one message. */ void rebuild_euid_index_for_msg(long msgnum, void *userdata) { struct CtdlMessage *msg = NULL; - msg = CtdlFetchMessage(msgnum, 0, 1); + msg = CtdlFetchMessage(msgnum, 0); if (msg == NULL) return; if (!CM_IsEmpty(msg, eExclusiveID)) { index_message_by_euid(msg->cm_fields[eExclusiveID], &CC->room, msgnum); @@ -163,8 +167,7 @@ void rebuild_euid_index_for_room(struct ctdlroom *qrbuf, void *data) { "euidindex: rebuilding EUID index for <%s>", rplist->name); CtdlUserGoto(rplist->name, 0, 0, NULL, NULL, NULL, NULL); - CtdlForEachMessage(MSGS_ALL, 0L, NULL, NULL, NULL, - rebuild_euid_index_for_msg, NULL); + CtdlForEachMessage(MSGS_ALL, 0L, NULL, NULL, NULL, rebuild_euid_index_for_msg, NULL); } } ptr = rplist; @@ -184,7 +187,6 @@ void rebuild_euid_index(void) { } - /* * Server command to fetch a message number given an euid. */ @@ -222,6 +224,7 @@ void cmd_euid(char *cmdbuf) { cprintf("%d not found\n", ERROR + MESSAGE_NOT_FOUND); } + CTDL_MODULE_INIT(euidindex) { if (!threading) {