* Set this field on wiki history pages.
struct cdbdata *cdb_bucket;
char *msgtext;
int tok;
+ struct CtdlMessage *msg = NULL;
+
+ msg = CtdlFetchMessage(msgnum, 1);
+ if (msg == NULL) {
+ CtdlLogPrintf(CTDL_ERR, "ft_index_message() could not load msg %ld\n", msgnum);
+ return;
+ }
+
+ if (msg->cm_fields['1'] != NULL) {
+ CtdlLogPrintf(CTDL_DEBUG, "ft_index_message() excluded msg %ld\n", msgnum);
+ CtdlFreeMessage(msg);
+ return;
+ }
CtdlLogPrintf(CTDL_DEBUG, "ft_index_message() %s msg %ld\n",
(op ? "adding" : "removing") , msgnum
CC->redirect_buffer = malloc(SIZ);
CC->redirect_len = 0;
CC->redirect_alloc = SIZ;
- CtdlOutputMsg(msgnum, MT_CITADEL, HEADERS_ALL, 0, 1, NULL, 0);
+ CtdlOutputPreLoadedMsg(msg, MT_CITADEL, HEADERS_ALL, 0, 1, 0);
+ CtdlFreeMessage(msg);
msgtext = CC->redirect_buffer;
CC->redirect_buffer = NULL;
CC->redirect_len = 0;
history_msg->cm_fields['R'] = strdup(CCC->room.QRname);
history_msg->cm_fields['E'] = strdup(history_page);
history_msg->cm_fields['U'] = strdup(history_page);
+ history_msg->cm_fields['1'] = strdup("1"); /* suppress full text indexing */
snprintf(boundary, sizeof boundary, "Citadel--Multipart--%04x--%08lx", getpid(), time(NULL));
history_msg->cm_fields['M'] = malloc(1024);
snprintf(history_msg->cm_fields['M'], 1024,
time_t lastcall; /* Last time the user called */
int USuserpurge; /* Purge time (in days) for user */
char fullname[64]; /* Name for Citadel messages & mail */
- CIT_UBYTE USscreenwidth; /* Screen width (for textmode users)*/
- CIT_UBYTE USscreenheight; /* Screen height(for textmode users)*/
};
Most fields here should be fairly self-explanatory. The ones that might
without having to worry about users being added/removed later on, as you'll
see later in this document.
- The screenwidth and screenheight fields are almost never used anymore. Back
-when people were calling into dialup systems we had no way of knowing the
-user's screen dimensions, but modern networks almost always transmit this
-information so we set it up dynamically.
-
ROOM RECORDS
------------
a message, but rather some other network function:
-> "S" followed by "FILE" (followed by a null, of
course) means that the message text is actually an
- IGnet/Open file transfer.
+ IGnet/Open file transfer. (OBSOLETE)
-> "S" followed by "CANCEL" means that this message
should be deleted from the local message base once
it has been replicated to all network systems.
expected to fill in this field when rejecting a message
with an explanation as to what happened (virus found,
message looks like spam, etc.)
+1 suppress index The presence of this field indicates that the message is
+ disqualified from being added to the full text index.
EXAMPLE