X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fctdlproto%2Fserv_messages.c;h=0751e28a91ead449f721e3f30d99c26aaecdd056;hb=c4609169aa7baf208848e72c16d33a3f892353b8;hp=9f08d880f626f05cd164bc1348d022300a8e4038;hpb=e750a47a92b48dfa6faf63a61a71f103871c9e5b;p=citadel.git diff --git a/citadel/modules/ctdlproto/serv_messages.c b/citadel/modules/ctdlproto/serv_messages.c index 9f08d880f..0751e28a9 100644 --- a/citadel/modules/ctdlproto/serv_messages.c +++ b/citadel/modules/ctdlproto/serv_messages.c @@ -1,7 +1,7 @@ /* * represent messages to the citadel clients * - * Copyright (c) 1987-2012 by the citadel.org team + * Copyright (c) 1987-2015 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. @@ -12,63 +12,19 @@ * GNU General Public License for more details. */ -#include "sysdep.h" -#include -#include #include -#include - -#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "md5.h" - #include -#include "citadel.h" -#include "server.h" -#include "serv_extensions.h" -#include "database.h" -///#include "msgbase.h" -#include "support.h" -#include "sysdep_decls.h" + #include "citserver.h" -#include "room_ops.h" +#include "ctdl_module.h" +#include "internet_addressing.h" #include "user_ops.h" -#include "files.h" +#include "room_ops.h" #include "config.h" -#include "control.h" -#include "genstamp.h" -#include "internet_addressing.h" -#include "euidindex.h" -#include "journaling.h" -#include "citadel_dirs.h" -#include "clientsocket.h" -#include "threads.h" - -#include "ctdl_module.h" extern char *msgkeys[]; - /* * Back end for the MSGS command: output message number only. */ @@ -78,7 +34,6 @@ void simple_listing(long msgnum, void *userdata) } - /* * Back end for the MSGS command: output header summary. */ @@ -86,7 +41,7 @@ void headers_listing(long msgnum, void *userdata) { struct CtdlMessage *msg; - msg = CtdlFetchMessage(msgnum, 0); + msg = CtdlFetchMessage(msgnum, 0, 1); if (msg == NULL) { cprintf("%ld|0|||||\n", msgnum); return; @@ -110,7 +65,7 @@ void headers_euid(long msgnum, void *userdata) { struct CtdlMessage *msg; - msg = CtdlFetchMessage(msgnum, 0); + msg = CtdlFetchMessage(msgnum, 0, 1); if (msg == NULL) { cprintf("%ld||\n", msgnum); return; @@ -181,7 +136,7 @@ void cmd_msgs(char *cmdbuf) else mode = MSGS_ALL; - if ( (mode == MSGS_SEARCH) && (!config.c_enable_fulltext) ) { + if ( (mode == MSGS_SEARCH) && (!CtdlGetConfigInt("c_enable_fulltext")) ) { cprintf("%d Full text index is not enabled on this server.\n", ERROR + CMD_NOT_SUPPORTED); return; @@ -235,7 +190,7 @@ void cmd_msg0(char *cmdbuf) msgid = extract_long(cmdbuf, 0); headers_only = extract_int(cmdbuf, 1); - CtdlOutputMsg(msgid, MT_CITADEL, headers_only, 1, 0, NULL, 0, NULL, NULL); + CtdlOutputMsg(msgid, MT_CITADEL, headers_only, 1, 0, NULL, 0, NULL, NULL, NULL); return; } @@ -251,7 +206,7 @@ void cmd_msg2(char *cmdbuf) msgid = extract_long(cmdbuf, 0); headers_only = extract_int(cmdbuf, 1); - CtdlOutputMsg(msgid, MT_RFC822, headers_only, 1, 1, NULL, 0, NULL, NULL); + CtdlOutputMsg(msgid, MT_RFC822, headers_only, 1, 1, NULL, 0, NULL, NULL, NULL); } @@ -272,7 +227,7 @@ void cmd_msg3(char *cmdbuf) } msgnum = extract_long(cmdbuf, 0); - msg = CtdlFetchMessage(msgnum, 1); + msg = CtdlFetchMessage(msgnum, 1, 1); if (msg == NULL) { cprintf("%d Message %ld not found.\n", ERROR + MESSAGE_NOT_FOUND, msgnum); @@ -305,7 +260,7 @@ void cmd_msg4(char *cmdbuf) msgid = extract_long(cmdbuf, 0); extract_token(section, cmdbuf, 1, '|', sizeof section); - CtdlOutputMsg(msgid, MT_MIME, 0, 1, 0, (section[0] ? section : NULL) , 0, NULL, NULL); + CtdlOutputMsg(msgid, MT_MIME, 0, 1, 0, (section[0] ? section : NULL) , 0, NULL, NULL, NULL); } @@ -338,7 +293,7 @@ void cmd_opna(char *cmdbuf) extract_token(desired_section, cmdbuf, 1, '|', sizeof desired_section); safestrncpy(CC->download_desired_section, desired_section, sizeof CC->download_desired_section); - CtdlOutputMsg(msgid, MT_DOWNLOAD, 0, 1, 1, NULL, 0, NULL, NULL); + CtdlOutputMsg(msgid, MT_DOWNLOAD, 0, 1, 1, NULL, 0, NULL, NULL, NULL); } @@ -354,7 +309,7 @@ void cmd_dlat(char *cmdbuf) extract_token(desired_section, cmdbuf, 1, '|', sizeof desired_section); safestrncpy(CC->download_desired_section, desired_section, sizeof CC->download_desired_section); - CtdlOutputMsg(msgid, MT_SPEW_SECTION, 0, 1, 1, NULL, 0, NULL, NULL); + CtdlOutputMsg(msgid, MT_SPEW_SECTION, 0, 1, 1, NULL, 0, NULL, NULL, NULL); } /* @@ -376,10 +331,10 @@ void cmd_ent0(char *entargs) int anonymous = 0; char errmsg[SIZ]; int err = 0; - struct recptypes *valid = NULL; - struct recptypes *valid_to = NULL; - struct recptypes *valid_cc = NULL; - struct recptypes *valid_bcc = NULL; + recptypes *valid = NULL; + recptypes *valid_to = NULL; + recptypes *valid_cc = NULL; + recptypes *valid_bcc = NULL; char subject[SIZ]; int subject_required = 0; int do_confirm = 0; @@ -404,6 +359,7 @@ void cmd_ent0(char *entargs) switch(CC->room.QRdefaultview) { case VIEW_NOTES: case VIEW_WIKI: + case VIEW_WIKIMD: extract_token(supplied_euid, entargs, 9, '|', sizeof supplied_euid); break; default: @@ -642,13 +598,13 @@ void cmd_ent0(char *entargs) } free(all_recps); - if ((valid != NULL) && (valid->num_room == 1)) + if ((valid != NULL) && (valid->num_room == 1) && !IsEmptyStr(valid->recp_orgroom)) { /* posting into an ML room? set the envelope from * to the actual mail address so others get a valid * reply-to-header. */ - msg->cm_fields[eenVelopeTo] = strdup(valid->recp_orgroom); + CM_SetField(msg, eenVelopeTo, valid->recp_orgroom, strlen(valid->recp_orgroom)); } if (msg != NULL) {