-/*
- * 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.
- */
+// Index messages by EUID per room.
+//
+// Copyright (c) 1987-2022 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"
#include <stdio.h>
#include "citserver.h"
#include "room_ops.h"
-/*
- * The structure of an euidindex record *key* is:
- *
- * |----room_number----|----------EUID-------------|
- * (sizeof long) (actual length of euid)
- *
- *
- * The structure of an euidindex record *value* is:
- *
- * |-----msg_number----|----room_number----|----------EUID-------------|
- * (sizeof long) (sizeof long) (actual length of euid)
- *
- */
-
-/*
- * Return nonzero if the supplied room is one which should have
- * an EUID index.
- */
+// The structure of an euidindex record *key* is:
+//
+// |----room_number----|----------EUID-------------|
+// (sizeof long) (actual length of euid)
+//
+//
+// The structure of an euidindex record *value* is:
+//
+// |-----msg_number----|----room_number----|----------EUID-------------|
+// (sizeof long) (sizeof long) (actual length of euid)
+
+// Return nonzero if the supplied room is one which should have
+// an EUID index.
int DoesThisRoomNeedEuidIndexing(struct ctdlroom *qrbuf) {
switch(qrbuf->QRdefaultview) {
case VIEW_TASKS: return(1);
case VIEW_NOTES: return(1);
case VIEW_WIKI: return(1);
- case VIEW_WIKIMD: return(1);
case VIEW_BLOG: return(1);
}
}
-/*
- * Locate a message in a given room with a given euid, and return
- * its message number.
- */
+// Locate a message in a given room with a given euid, and return
+// its message number.
long locate_message_by_euid(char *euid, struct ctdlroom *qrbuf) {
return CtdlLocateMessageByEuid (euid, qrbuf);
}
msgnum = (-1L);
}
else {
- /* The first (sizeof long) of the record is what we're
- * looking for. Throw away the rest.
- */
+ // 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);
}
}
-/*
- * Store the euid index for a message, which has presumably just been
- * stored in this room by the caller.
- */
+// Store the euid index for a message, which has presumably just been
+// stored in this room by the caller.
void index_message_by_euid(char *euid, struct ctdlroom *qrbuf, long msgnum) {
char *key;
int key_len;
}
-/*
- * Called by rebuild_euid_index_for_room() to index one message.
- */
+// 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;
struct RoomProcList *ptr;
struct ctdlroom qr;
- /* 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.
- */
+ // 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.
if (qrbuf != NULL) {
ptr = (struct RoomProcList *)
malloc(sizeof (struct RoomProcList));
"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;
}
-/*
- * Globally rebuild the EUID indices in every room.
- */
+// Globally rebuild the EUID indices in every room.
void rebuild_euid_index(void) {
- cdb_trunc(CDB_EUIDINDEX); /* delete the old indices */
- CtdlForEachRoom(rebuild_euid_index_for_room, NULL); /* enumerate rm names */
- rebuild_euid_index_for_room(NULL, NULL); /* and index them */
+ cdb_trunc(CDB_EUIDINDEX); // delete the old indices
+ CtdlForEachRoom(rebuild_euid_index_for_room, NULL); // enumerate room names
+ rebuild_euid_index_for_room(NULL, NULL); // and index them
}
-/*
- * Server command to fetch a message number given an euid.
- */
+// Server command to fetch a message number given an euid.
void cmd_euid(char *cmdbuf) {
char euid[256];
long msgnum;