dovecot-2.2-pigeonhole: lib-sieve: Make message the time the mes...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Fri Nov 13 23:36:34 UTC 2015


details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/e26cb6c0bf07
changeset: 2131:e26cb6c0bf07
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Sat Nov 14 00:36:19 2015 +0100
description:
lib-sieve: Make message the time the message processing started available to any extension.

diffstat:

 src/lib-sieve/plugins/date/ext-date-common.c |   6 ++++--
 src/lib-sieve/sieve-message.c                |  10 ++++++++++
 src/lib-sieve/sieve-message.h                |   2 ++
 3 files changed, 16 insertions(+), 2 deletions(-)

diffs (66 lines):

diff -r d1e5a06fc9d7 -r e26cb6c0bf07 src/lib-sieve/plugins/date/ext-date-common.c
--- a/src/lib-sieve/plugins/date/ext-date-common.c	Sat Nov 14 00:30:30 2015 +0100
+++ b/src/lib-sieve/plugins/date/ext-date-common.c	Sat Nov 14 00:36:19 2015 +0100
@@ -33,12 +33,14 @@
 {
 	struct ext_date_context *dctx;
 	pool_t pool;
+	struct timeval msg_time;
+	time_t current_date;
 	struct tm *tm;
-	time_t current_date;
 	int zone_offset;
 
 	/* Get current time at instance main script is started */
-	time(&current_date);
+	sieve_message_context_time(renv->msgctx, &msg_time);
+	current_date = msg_time.tv_sec;
 
 	tm = localtime(&current_date);
 	zone_offset = utc_offset(tm, current_date);
diff -r d1e5a06fc9d7 -r e26cb6c0bf07 src/lib-sieve/sieve-message.c
--- a/src/lib-sieve/sieve-message.c	Sat Nov 14 00:30:30 2015 +0100
+++ b/src/lib-sieve/sieve-message.c	Sat Nov 14 00:36:19 2015 +0100
@@ -76,6 +76,7 @@
 	int refcount;
 
 	struct sieve_instance *svinst;
+	struct timeval time;
 
 	struct mail_user *mail_user;
 	const struct sieve_message_data *msgdata;
@@ -163,6 +164,9 @@
 	msgctx->mail_user = mail_user;
 	msgctx->msgdata = msgdata;
 
+	if (gettimeofday(&msgctx->time, NULL) < 0)
+		i_fatal("gettimeofday(): %m");
+
 	sieve_message_context_reset(msgctx);
 
 	return msgctx;
@@ -247,6 +251,12 @@
 	return msgctx->context_pool;
 }
 
+void sieve_message_context_time(struct sieve_message_context *msgctx,
+   struct timeval *time)
+{
+   *time = msgctx->time;
+}
+
 /* Extension support */
 
 void sieve_message_context_extension_set
diff -r d1e5a06fc9d7 -r e26cb6c0bf07 src/lib-sieve/sieve-message.h
--- a/src/lib-sieve/sieve-message.h	Sat Nov 14 00:30:30 2015 +0100
+++ b/src/lib-sieve/sieve-message.h	Sat Nov 14 00:36:19 2015 +0100
@@ -29,6 +29,8 @@
 
 pool_t sieve_message_context_pool
 	(struct sieve_message_context *msgctx) ATTR_PURE;
+void sieve_message_context_time(struct sieve_message_context *msgctx,
+	struct timeval *time);
 
 /* Extension support */
 


More information about the dovecot-cvs mailing list