dovecot-2.2: push-notification: Use setting_get_time() parsing f...

dovecot at dovecot.org dovecot at dovecot.org
Fri Oct 2 09:24:54 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/7a7111a5ce5e
changeset: 19277:7a7111a5ce5e
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Oct 02 12:23:22 2015 +0300
description:
push-notification: Use setting_get_time() parsing for cache_lifetime OX driver setting.

diffstat:

 src/plugins/push-notification/Makefile.am                   |   1 +
 src/plugins/push-notification/push-notification-driver-ox.c |  19 ++++++++----
 2 files changed, 13 insertions(+), 7 deletions(-)

diffs (74 lines):

diff -r cac0c21f5746 -r 7a7111a5ce5e src/plugins/push-notification/Makefile.am
--- a/src/plugins/push-notification/Makefile.am	Fri Oct 02 12:16:11 2015 +0300
+++ b/src/plugins/push-notification/Makefile.am	Fri Oct 02 12:23:22 2015 +0300
@@ -1,5 +1,6 @@
 AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/lib \
+	-I$(top_srcdir)/src/lib-settings \
 	-I$(top_srcdir)/src/lib-http \
 	-I$(top_srcdir)/src/lib-index \
 	-I$(top_srcdir)/src/lib-mail \
diff -r cac0c21f5746 -r 7a7111a5ce5e src/plugins/push-notification/push-notification-driver-ox.c
--- a/src/plugins/push-notification/push-notification-driver-ox.c	Fri Oct 02 12:16:11 2015 +0300
+++ b/src/plugins/push-notification/push-notification-driver-ox.c	Fri Oct 02 12:23:22 2015 +0300
@@ -6,6 +6,7 @@
 #include "http-url.h"
 #include "ioloop.h"
 #include "istream.h"
+#include "settings-parser.h"
 #include "json-parser.h"
 #include "mailbox-attribute.h"
 #include "mail-storage-private.h"
@@ -25,7 +26,7 @@
 /* Default values. */
 static const char *const default_events[] = { "MessageNew", NULL };
 static const char *const default_mboxes[] = { "INBOX", NULL };
-#define DEFAULT_CACHE_LIFETIME 60
+#define DEFAULT_CACHE_LIFETIME_SECS 60
 #define DEFAULT_TIMEOUT_MSECS 2000
 #define DEFAULT_RETRY_COUNT 1
 
@@ -39,7 +40,7 @@
 /* This is data specific to an OX driver. */
 struct push_notification_driver_ox_config {
     struct http_url *http_url;
-    unsigned int cached_ox_metadata_lifetime;
+    unsigned int cached_ox_metadata_lifetime_secs;
     bool use_unsafe_username;
     unsigned int http_max_retries;
     unsigned int http_timeout_msecs;
@@ -100,9 +101,12 @@
     push_notification_driver_debug(OX_LOG_LABEL, user, "Using URL %s", tmp);
 
     tmp = hash_table_lookup(config->config, (const char *)"cache_lifetime");
-    if ((tmp == NULL) ||
-        (str_to_uint(tmp, &dconfig->cached_ox_metadata_lifetime) < 0)) {
-        dconfig->cached_ox_metadata_lifetime = DEFAULT_CACHE_LIFETIME;
+    if (tmp == NULL)
+        dconfig->cached_ox_metadata_lifetime_secs = DEFAULT_CACHE_LIFETIME_SECS;
+    else if (settings_get_time(tmp, &dconfig->cached_ox_metadata_lifetime_secs, &error) < 0) {
+        *error_r = t_strdup_printf(OX_LOG_LABEL "Failed to parse OX cache_lifetime %s: %s",
+                                   tmp, error);
+        return -1;
     }
 
     tmp = hash_table_lookup(config->config, (const char *)"max_retries");
@@ -118,7 +122,7 @@
 
     push_notification_driver_debug(OX_LOG_LABEL, user,
                                    "Using cache lifetime: %u",
-                                   dconfig->cached_ox_metadata_lifetime);
+                                   dconfig->cached_ox_metadata_lifetime_secs);
 
     if (ox_global == NULL) {
         ox_global = i_new(struct push_notification_driver_ox_global, 1);
@@ -143,7 +147,8 @@
     int ret;
 
     if ((dconfig->cached_ox_metadata != NULL) &&
-        ((dconfig->cached_ox_metadata_timestamp + (time_t)dconfig->cached_ox_metadata_lifetime) > ioloop_time)) {
+        ((dconfig->cached_ox_metadata_timestamp +
+          	(time_t)dconfig->cached_ox_metadata_lifetime_secs) > ioloop_time)) {
         return dconfig->cached_ox_metadata;
     }
 


More information about the dovecot-cvs mailing list