removed some old cruft
[citadel.git] / citadel / serv_sieve.h
index 9c02ed649308984b7545d4cd29831617835317cf..5b98b662e50dab1322d241cb0bcac3eb6016d710 100644 (file)
@@ -1,9 +1,3 @@
-/*
- * $Id: $
- */
-
-
-#ifdef HAVE_LIBSIEVE
 
 #include <sieve2.h>
 #include <sieve2_error.h>
@@ -15,17 +9,24 @@ struct sdm_script {
        char *script_content;
 };
 
+struct sdm_vacation {
+       struct sdm_vacation *next;
+       char fromaddr[256];
+       time_t timestamp;
+};
+
 struct sdm_userdata {
-       sieve2_context_t *sieve2_context;       /**< for libsieve's use */
-       long config_msgnum;                     /**< confirms that a sieve config was located */
+       sieve2_context_t *sieve2_context;       /* for libsieve's use */
+       long config_msgnum;                     /* confirms that a sieve config was located */
        char config_roomname[ROOMNAMELEN];
-       long lastproc;                          /**< last message processed */
+       long lastproc;                          /* last message processed */
        struct sdm_script *first_script;
+       struct sdm_vacation *first_vacation;
 };
 
 struct ctdl_sieve {
        char *rfc822headers;
-       int actiontaken;                /* Set to 1 if the message was successfully acted upon */
+       int cancel_implicit_keep;       /* Set to 1 if the message was successfully acted upon */
        int keep;                       /* Set to 1 to suppress message deletion from the inbox */
        long usernum;                   /* Owner of the mailbox we're processing */
        long msgnum;                    /* Message base ID of the message being processed */
@@ -34,22 +35,30 @@ struct ctdl_sieve {
        char recp_node[256];
        char recp_name[256];
        char sender[256];               /* To whom shall we send reject bounces or vacation messages? */
+       char subject[1024];             /* Retain msg subject so we can use it in vacation messages */
+       char envelope_from[1024];
+       char envelope_to[1024];
 };
 
 
 /* If you change this string you will break all of your Sieve configs. */
 #define CTDLSIEVECONFIGSEPARATOR       "\n-=<CtdlSieveConfigSeparator>=-\n"
 
+/* Maximum time we keep vacation fromaddr records online.  This implies that a vacation
+ * rule cannot exceed this amount of time.   (Any more than 30 days is a ridiculously
+ * long vacation which the person probably doesn't deserve.)
+ */
+#define MAX_VACATION   30
+
 extern struct RoomProcList *sieve_list;
 
 void sieve_queue_room(struct ctdlroom *);
 void perform_sieve_processing(void);
 
 void msiv_load(struct sdm_userdata *u);
-void msiv_store(struct sdm_userdata *u);
+void msiv_store(struct sdm_userdata *u, int changes_made);
 int msiv_setactive(struct sdm_userdata *u, char *script_name);
 char *msiv_getscript(struct sdm_userdata *u, char *script_name);
 int msiv_deletescript(struct sdm_userdata *u, char *script_name);
 void msiv_putscript(struct sdm_userdata *u, char *script_name, char *script_content);
-
-#endif /* HAVE_LIBSIEVE */
+extern char *msiv_extensions;