Changed plugin_notification_meta_free()'s argument to a notification_meta_t.
authorSebastian Harl <sh@tokkee.org>
Mon, 16 Feb 2009 11:02:09 +0000 (12:02 +0100)
committerSebastian Harl <sh@tokkee.org>
Mon, 16 Feb 2009 14:22:04 +0000 (15:22 +0100)
This is more flexible and allows the function to be used when using the meta
data without an embedding notification object, e.g. when using the filter
chains.

src/exec.c
src/perl.c
src/plugin.c
src/plugin.h
src/utils_threshold.c

index 8add480..973cd52 100644 (file)
@@ -712,7 +712,8 @@ static void *exec_notification_one (void *arg) /* {{{ */
   DEBUG ("exec plugin: Child %i exited with status %i.",
       pid, status);
 
-  plugin_notification_meta_free (n);
+  plugin_notification_meta_free (n->meta);
+  n->meta = NULL;
   sfree (arg);
   pthread_exit ((void *) 0);
   return (NULL);
index efb8bdd..f9c9938 100644 (file)
@@ -529,7 +529,8 @@ static int hv2notification (pTHX_ HV *hash, notification_t *n)
                }
 
                if (0 != av2notification_meta (aTHX_ (AV *)SvRV (*tmp), &n->meta)) {
-                       plugin_notification_meta_free (n);
+                       plugin_notification_meta_free (n->meta);
+                       n->meta = NULL;
                        return -1;
                }
                break;
@@ -925,7 +926,7 @@ static int pplugin_dispatch_notification (pTHX_ HV *notif)
                return -1;
 
        ret = plugin_dispatch_notification (&n);
-       plugin_notification_meta_free (&n);
+       plugin_notification_meta_free (n.meta);
        return ret;
 } /* static int pplugin_dispatch_notification (HV *) */
 
index 61cc09c..9f42f2e 100644 (file)
@@ -1154,7 +1154,7 @@ int plugin_notification_meta_copy (notification_t *dst,
   return (0);
 } /* int plugin_notification_meta_copy */
 
-int plugin_notification_meta_free (notification_t *n)
+int plugin_notification_meta_free (notification_meta_t *n)
 {
   notification_meta_t *this;
   notification_meta_t *next;
@@ -1165,8 +1165,7 @@ int plugin_notification_meta_free (notification_t *n)
     return (-1);
   }
 
-  this = n->meta;
-  n->meta = NULL;
+  this = n;
   while (this != NULL)
   {
     next = this->next;
index 2d99301..3088e06 100644 (file)
@@ -301,6 +301,6 @@ int plugin_notification_meta_add_boolean (notification_t *n,
 int plugin_notification_meta_copy (notification_t *dst,
     const notification_t *src);
 
-int plugin_notification_meta_free (notification_t *n);
+int plugin_notification_meta_free (notification_meta_t *n);
 
 #endif /* PLUGIN_H */
index 1b21138..03a3f2d 100644 (file)
@@ -674,7 +674,7 @@ static int ut_report_state (const data_set_t *ds,
 
   plugin_dispatch_notification (&n);
 
-  plugin_notification_meta_free (&n);
+  plugin_notification_meta_free (n.meta);
   return (0);
 } /* }}} int ut_report_state */