the owner of the mailbox rather than from Citadel.
Our back end Sieve implementation is now complete.
snprintf(upload_notice, sizeof upload_notice,
"NEW UPLOAD: '%s'\n %s\n",
CC->upl_file, CC->upl_comment);
- quickie_message(CC->curr_user, NULL, CC->room.QRname,
+ quickie_message(CC->curr_user, NULL, NULL, CC->room.QRname,
upload_notice, 0, NULL);
} else {
abort_upl(CC);
/*
* Convenience function for generating small administrative messages.
*/
-void quickie_message(char *from, char *to, char *room, char *text,
+void quickie_message(char *from, char *fromaddr, char *to, char *room, char *text,
int format_type, char *subject)
{
struct CtdlMessage *msg;
msg->cm_magic = CTDLMESSAGE_MAGIC;
msg->cm_anon_type = MES_NORMAL;
msg->cm_format_type = format_type;
- msg->cm_fields['A'] = strdup(from);
+
+ if (from != NULL) {
+ msg->cm_fields['A'] = strdup(from);
+ }
+ else if (fromaddr != NULL) {
+ msg->cm_fields['A'] = strdup(fromaddr);
+ if (strchr(msg->cm_fields['A'], '@')) {
+ *strchr(msg->cm_fields['A'], '@') = 0;
+ }
+ }
+ else {
+ msg->cm_fields['A'] = strdup("Citadel");
+ }
+
+ if (fromaddr != NULL) msg->cm_fields['F'] = strdup(fromaddr);
if (room != NULL) msg->cm_fields['O'] = strdup(room);
msg->cm_fields['N'] = strdup(NODENAME);
if (to != NULL) {
/* $Id$ */
-#define aide_message(text) quickie_message("Citadel",NULL,AIDEROOM,text,0,NULL)
+#define aide_message(text) quickie_message("Citadel",NULL,NULL,AIDEROOM,text,0,NULL)
enum {
MSGS_ALL,
long send_message (struct CtdlMessage *);
void loadtroom (void);
long CtdlSubmitMsg(struct CtdlMessage *, struct recptypes *, char *);
-void quickie_message (char *, char *, char *, char *, int, char *);
+void quickie_message (char *, char *, char *, char *, char *, int, char *);
void cmd_ent0 (char *entargs);
void cmd_dele (char *delstr);
void cmd_move (char *args);
quickie_message( /* This delivers the message */
"Citadel",
+ NULL,
email,
NULL,
confirmation_request,
quickie_message( /* This delivers the message */
"Citadel",
+ NULL,
email,
NULL,
confirmation_request,
);
quickie_message( /* This delivers the message */
- "Citadel", /* FIXME make it myself */
+ NULL,
+ cs->envelope_to,
cs->sender,
NULL,
reject_text,
);
quickie_message( /* This delivers the message */
- "Citadel", /* FIXME make it myself */
+ NULL,
+ cs->envelope_to,
cs->sender,
NULL,
vacamsg_text,
/*
* Callback function to fetch message body
- * FIXME implement this
- */
-#if 0
+ * (Uncomment the code if we implement this extension)
+ *
int ctdl_getbody(sieve2_context_t *s, void *my)
{
return SIEVE2_ERROR_UNSUPPORTED;
}
-#endif
+ *
+ */
/*
}
/* Save the config */
- quickie_message("Citadel", NULL, u->config_roomname,
+ quickie_message("Citadel", NULL, NULL, u->config_roomname,
text,
4,
"Sieve configuration"