diff options
author | Paul J Stevens <paul@nfg.nl> | 2010-05-02 15:30:08 +0200 |
---|---|---|
committer | Paul J Stevens <paul@nfg.nl> | 2010-05-02 15:30:08 +0200 |
commit | 4d82947c8fab388885925e1e7d11c3b316e6e65a (patch) | |
tree | 0866242af94d6935a3cbe8cefd1f2589f0a80615 | |
parent | 6dc60b4274dc2823567217f2904e88608a5486c3 (diff) |
propagate sub-address into sieve handler
-rw-r--r-- | src/dbmail-message.c | 2 | ||||
-rw-r--r-- | src/modules/sortnull.c | 2 | ||||
-rw-r--r-- | src/modules/sortsieve.c | 4 | ||||
-rw-r--r-- | src/sort.h | 2 | ||||
-rw-r--r-- | src/sortmodule.c | 4 |
5 files changed, 8 insertions, 6 deletions
diff --git a/src/dbmail-message.c b/src/dbmail-message.c index 51de6f29..d4cecf18 100644 --- a/src/dbmail-message.c +++ b/src/dbmail-message.c @@ -1846,7 +1846,7 @@ dsn_class_t sort_and_deliver(DbmailMessage *message, config_get_value("SIEVE", "DELIVERY", val); if (strcasecmp(val, "yes") == 0 && dm_sievescript_isactive(useridnr)) { TRACE(TRACE_INFO, "Calling for a Sieve sort"); - sort_result_t *sort_result = sort_process(useridnr, message); + sort_result_t *sort_result = sort_process(useridnr, message, mailbox); if (sort_result) { cancelkeep = sort_get_cancelkeep(sort_result); reject = sort_get_reject(sort_result); diff --git a/src/modules/sortnull.c b/src/modules/sortnull.c index b58b420c..5cbf2d20 100644 --- a/src/modules/sortnull.c +++ b/src/modules/sortnull.c @@ -40,7 +40,7 @@ sort_result_t *sort_validate(u64_t user_idnr UNUSED, char *scriptname UNUSED) return NULL; } -sort_result_t *sort_process(u64_t user_idnr UNUSED, DbmailMessage *message UNUSED) +sort_result_t *sort_process(u64_t user_idnr UNUSED, DbmailMessage *message UNUSED, const char *mailbox UNUSED) { TRACE(TRACE_WARNING, "SIEVE sorting enabled in DELIVERY section of dbmail.conf," " but this build of DBMail was statically configured without Sieve."); diff --git a/src/modules/sortsieve.c b/src/modules/sortsieve.c index 84611b0e..fa16411c 100644 --- a/src/modules/sortsieve.c +++ b/src/modules/sortsieve.c @@ -872,7 +872,7 @@ freesieve: * such as dbmail-lmtpd, the daemon should * finish storing the message and restart. * */ -sort_result_t *sort_process(u64_t user_idnr, DbmailMessage *message) +sort_result_t *sort_process(u64_t user_idnr, DbmailMessage *message, const char *mailbox) { int res, exitnull = 0; struct sort_result *result = NULL; @@ -896,6 +896,8 @@ sort_result_t *sort_process(u64_t user_idnr, DbmailMessage *message) goto freesieve; } sort_context->result->errormsg = g_string_new(""); + if (mailbox) + sort_context->result->mailbox = mailbox; res = dm_sievescript_get(user_idnr, &sort_context->script); if (res != 0) { @@ -27,7 +27,7 @@ typedef struct sort_result sort_result_t; -sort_result_t *sort_process(u64_t user_idnr, DbmailMessage *message); +sort_result_t *sort_process(u64_t user_idnr, DbmailMessage *message, const char *mailbox); sort_result_t *sort_validate(u64_t user_idnr, char *scriptname); const char *sort_listextensions(void); void sort_free_result(sort_result_t *sort_result); diff --git a/src/sortmodule.c b/src/sortmodule.c index d80bf9de..b3d4c331 100644 --- a/src/sortmodule.c +++ b/src/sortmodule.c @@ -91,7 +91,7 @@ int sort_load_driver(void) return 0; } -sort_result_t *sort_process(u64_t user_idnr, DbmailMessage *message) +sort_result_t *sort_process(u64_t user_idnr, DbmailMessage *message, const char *mailbox) { if (!sort) sort_load_driver(); @@ -99,7 +99,7 @@ sort_result_t *sort_process(u64_t user_idnr, DbmailMessage *message) TRACE(TRACE_ERR, "Error loading sort driver"); return NULL; } - return sort->process(user_idnr, message); + return sort->process(user_idnr, message, mailbox); } sort_result_t *sort_validate(u64_t user_idnr, char *scriptname) |