src/utils_cache.c: Fix incorrect checking of persistent thresholds.
authorAndrés J. Díaz <ajdiaz@connectical.com>
Wed, 27 May 2009 09:14:40 +0000 (11:14 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Wed, 27 May 2009 09:16:34 +0000 (11:16 +0200)
I attached a patch to solve a problem related with notifications. When a value
is missing for a while (2 intervals), a FAILURE notification is raised, and if
Persist is false, the notification is repeated each interval, but man page
says:

  If set to false (the default) then a notification is only generated if a
  value is out of range but the previous value was okay.

So, I think that is a bug, if not I'm sorry for the noise :)

Regards,
  Andres

P.S.: The problem is only a mixing in if conditions into uc_check_timeout
      function.

Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/utils_cache.c

index a63c7d1..2995501 100644 (file)
@@ -303,13 +303,13 @@ int uc_check_timeout (void)
       sfree (key);
       cache_free (ce);
     }
-    else if (status == 1) /* persist */
+    else if (status == 2) /* persist */
     {
       DEBUG ("uc_check_timeout: %s is missing, sending notification.",
          keys[i]);
       ce->state = STATE_MISSING;
     }
-    else if (status == 2) /* do not persist */
+    else if (status == 1) /* do not persist */
     {
       if (ce->state == STATE_MISSING)
       {