X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Feuidindex.c;h=dbc89adaa6c8153cade0153a8cfbf74780b88632;hb=348e6d05bebe8459f1f4999eb66d822023f67095;hp=2dac3730fd79a66e1e509d4f8164fe73abc20303;hpb=912d0fbd1b5c090696d4d61c698510142afba937;p=citadel.git diff --git a/citadel/euidindex.c b/citadel/euidindex.c index 2dac3730f..dbc89adaa 100644 --- a/citadel/euidindex.c +++ b/citadel/euidindex.c @@ -1,8 +1,5 @@ /* - * $Id$ - * * Index messages by EUID per room. - * */ #include "sysdep.h" @@ -72,10 +69,12 @@ int DoesThisRoomNeedEuidIndexing(struct ctdlroom *qrbuf) { case VIEW_BBS: return(0); case VIEW_MAILBOX: return(0); case VIEW_ADDRESSBOOK: return(1); + case VIEW_DRAFTS: return(0); case VIEW_CALENDAR: return(1); case VIEW_TASKS: return(1); case VIEW_NOTES: return(1); case VIEW_WIKI: return(1); + case VIEW_BLOG: return(1); } return(0); @@ -91,12 +90,16 @@ int DoesThisRoomNeedEuidIndexing(struct ctdlroom *qrbuf) { * its message number. */ 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; struct cdbdata *cdb_euid; long msgnum = (-1L); - CtdlLogPrintf(CTDL_DEBUG, "Searching for EUID <%s> in <%s>\n", euid, qrbuf->QRname); + syslog(LOG_DEBUG, "Searching for EUID <%s> in <%s>\n", euid, qrbuf->QRname); key_len = strlen(euid) + sizeof(long) + 1; key = malloc(key_len); @@ -116,7 +119,7 @@ long locate_message_by_euid(char *euid, struct ctdlroom *qrbuf) { memcpy(&msgnum, cdb_euid->ptr, sizeof(long)); cdb_free(cdb_euid); } - CtdlLogPrintf(CTDL_DEBUG, "returning msgnum = %ld\n", msgnum); + syslog(LOG_DEBUG, "returning msgnum = %ld\n", msgnum); return(msgnum); } @@ -131,7 +134,7 @@ void index_message_by_euid(char *euid, struct ctdlroom *qrbuf, long msgnum) { char *data; int data_len; - CtdlLogPrintf(CTDL_DEBUG, "Indexing message #%ld <%s> in <%s>\n", msgnum, euid, qrbuf->QRname); + syslog(LOG_DEBUG, "Indexing message #%ld <%s> in <%s>\n", msgnum, euid, qrbuf->QRname); key_len = strlen(euid) + sizeof(long) + 1; key = malloc(key_len); @@ -171,7 +174,7 @@ void rebuild_euid_index_for_room(struct ctdlroom *qrbuf, void *data) { struct RoomProcList *ptr; struct ctdlroom qr; - /* Lazy programming here. Call this function as a ForEachRoom backend + /* Lazy programming here. Call this function as a CtdlForEachRoom backend * in order to queue up the room names, or call it with a null room * to make it do the processing. */ @@ -187,12 +190,12 @@ void rebuild_euid_index_for_room(struct ctdlroom *qrbuf, void *data) { } while (rplist != NULL) { - if (getroom(&qr, rplist->name) == 0) { + if (CtdlGetRoom(&qr, rplist->name) == 0) { if (DoesThisRoomNeedEuidIndexing(&qr)) { - CtdlLogPrintf(CTDL_DEBUG, + syslog(LOG_DEBUG, "Rebuilding EUID index for <%s>\n", rplist->name); - usergoto(rplist->name, 0, 0, NULL, NULL); + CtdlUserGoto(rplist->name, 0, 0, NULL, NULL); CtdlForEachMessage(MSGS_ALL, 0L, NULL, NULL, NULL, rebuild_euid_index_for_msg, NULL); } @@ -209,7 +212,7 @@ void rebuild_euid_index_for_room(struct ctdlroom *qrbuf, void *data) { */ void rebuild_euid_index(void) { cdb_trunc(CDB_EUIDINDEX); /* delete the old indices */ - ForEachRoom(rebuild_euid_index_for_room, NULL); /* enumerate rm names */ + CtdlForEachRoom(rebuild_euid_index_for_room, NULL); /* enumerate rm names */ rebuild_euid_index_for_room(NULL, NULL); /* and index them */ } @@ -226,10 +229,10 @@ void cmd_euid(char *cmdbuf) { int num_msgs = 0; int i; - if (CtdlAccessCheck(ac_logged_in)) return; + if (CtdlAccessCheck(ac_logged_in_or_guest)) return; extract_token(euid, cmdbuf, 0, '|', sizeof euid); - msgnum = locate_message_by_euid(euid, &CC->room); + msgnum = CtdlLocateMessageByEuid(euid, &CC->room); if (msgnum <= 0L) { cprintf("%d not found\n", ERROR + MESSAGE_NOT_FOUND); return; @@ -254,7 +257,9 @@ void cmd_euid(char *cmdbuf) { CTDL_MODULE_INIT(euidindex) { - CtdlRegisterProtoHook(cmd_euid, "EUID", "Autoconverted. TODO: document me."); + if (!threading) { + CtdlRegisterProtoHook(cmd_euid, "EUID", "Perform operations on Extended IDs for messages"); + } /* return our Subversion id for the Log */ - return "$Id$"; + return "euidindex"; }