Code

allow to configure the maximum effective interval between attempts to read data by...
authorAlexey Remizov <rem@onsec.ru>
Fri, 22 Aug 2014 07:02:47 +0000 (11:02 +0400)
committerAlexey Remizov <rem@onsec.ru>
Fri, 22 Aug 2014 07:02:47 +0000 (11:02 +0400)
src/configfile.c
src/plugin.c

index d2a307d9451d97babd69c1a14e4fd0548dc9c4ae..8c5ecdfc9b849c4b9dcb323200b584fd1824de4d 100644 (file)
@@ -118,7 +118,8 @@ static cf_global_option_t cf_global_options[] =
        {"Timeout",     NULL, "2"},
        {"AutoLoadPlugin", NULL, "false"},
        {"PreCacheChain",  NULL, "PreCache"},
-       {"PostCacheChain", NULL, "PostCache"}
+       {"PostCacheChain", NULL, "PostCache"},
+       {"MaxEffectiveInterval", NULL, "86400"}
 };
 static int cf_global_options_num = STATIC_ARRAY_SIZE (cf_global_options);
 
index 30a1ff1a304911f91e571fe56cd22c4d15535078..8407318973e49bc11880a7e6103d5cfa5e1a4559 100644 (file)
@@ -482,9 +482,14 @@ static void *plugin_read_thread (void __attribute__((unused)) *args)
                 * intervals in which it will be called. */
                if (status != 0)
                {
+                       const char *mei = global_option_get ("MaxEffectiveInterval");
+                       int max_effective_interval = atoi (mei);
+                       if (max_effective_interval <= 0) {
+                               max_effective_interval = 86400;
+                       }
                        rf->rf_effective_interval *= 2;
-                       if (rf->rf_effective_interval > TIME_T_TO_CDTIME_T (86400))
-                               rf->rf_effective_interval = TIME_T_TO_CDTIME_T (86400);
+                       if (rf->rf_effective_interval > TIME_T_TO_CDTIME_T (max_effective_interval))
+                               rf->rf_effective_interval = TIME_T_TO_CDTIME_T (max_effective_interval);
 
                        NOTICE ("read-function of plugin `%s' failed. "
                                        "Will suspend it for %.3f seconds.",