cprintf("Content-type: %s\n", cbtype);
cprintf("Content-length: %d\n",
- length + add_newline);
+ (int)(length + add_newline) );
cprintf("Content-transfer-encoding: %s\n", encoding);
cprintf("\n");
client_write(content, length);
*/
/*
- * Fetch the message from disk. We also keep the most recently
- * read message in memory, in case we want to read it again, or fetch
- * MIME parts out of it, or whatever.
+ * Fetch the message from disk.
*/
- if ( (CC->cached_msg != NULL) && (CC->cached_msgnum == msg_num) ) {
- TheMessage = CC->cached_msg;
- }
- else {
- TheMessage = CtdlFetchMessage(msg_num);
- if (CC->cached_msg != NULL) {
- phree(CC->cached_msg);
- }
- CC->cached_msg = TheMessage;
- CC->cached_msgnum = msg_num;
- }
+ TheMessage = CtdlFetchMessage(msg_num);
if (TheMessage == NULL) {
if (do_proto) cprintf("%d Can't locate msg %ld on disk\n",
TheMessage, msg_num, mode,
headers_only, do_proto, crlf);
- /* don't free the memory; we're keeping it in the cache */
- /* CtdlFreeMessage(TheMessage); */
+ CtdlFreeMessage(TheMessage);
return(retcode);
}
* Convenience function for generating small administrative messages.
*/
void quickie_message(char *from, char *to, char *room, char *text,
- int format_type)
+ int format_type, char *subject)
{
struct CtdlMessage *msg;
struct recptypes *recp = NULL;
msg->cm_fields['R'] = strdoop(to);
recp = validate_recipients(to);
}
+ if (subject != NULL) {
+ msg->cm_fields['U'] = strdoop(subject);
+ }
msg->cm_fields['M'] = strdoop(text);
CtdlSubmitMsg(msg, recp, room);
/* read in the lines of message text one by one */
while ( (client_gets(buf)>0) && strcmp(buf, terminator) ) {
- /* strip trailing newline type stuff */
- if (buf[strlen(buf)-1]==10) buf[strlen(buf)-1]=0;
- if (buf[strlen(buf)-1]==13) buf[strlen(buf)-1]=0;
-
+ /* Measure the line and strip trailing newline characters */
linelen = strlen(buf);
+ if (linelen > 0) if (buf[linelen-1]==13) buf[linelen--]=0;
+ if (linelen > 0) if (buf[linelen-1]==10) buf[linelen--]=0;
/* augment the buffer if we have to */
if ((message_len + linelen + 2) > buffer_len) {