From e3bfada72a4942b8d516074b22028037e757cc0e Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Thu, 12 Jun 2008 15:44:59 +0200 Subject: [PATCH] src/plugin.[ch]: Implement `plugin_notification_meta_copy'. The exec plugin copies the notifications before creating threads, so we need to be able to copy the meta data to a second notification. --- src/plugin.c | 27 +++++++++++++++++++++++++++ src/plugin.h | 4 ++++ 2 files changed, 31 insertions(+) diff --git a/src/plugin.c b/src/plugin.c index 27074a75..77041c9e 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -1013,6 +1013,33 @@ int plugin_notification_meta_add_boolean (notification_t *n, return (plugin_notification_meta_add (n, name, NM_TYPE_BOOLEAN, &value)); } +int plugin_notification_meta_copy (notification_t *dst, + const notification_t *src) +{ + notification_meta_t *meta; + + for (meta = src->meta; meta != NULL; meta = meta->next) + { + if (meta->type == NM_TYPE_STRING) + plugin_notification_meta_add_string (dst, meta->name, + meta->value_string); + else if (meta->type == NM_TYPE_SIGNED_INT) + plugin_notification_meta_add_signed_int (dst, meta->name, + meta->value_signed_int); + else if (meta->type == NM_TYPE_UNSIGNED_INT) + plugin_notification_meta_add_unsigned_int (dst, meta->name, + meta->value_unsigned_int); + else if (meta->type == NM_TYPE_DOUBLE) + plugin_notification_meta_add_double (dst, meta->name, + meta->value_double); + else if (meta->type == NM_TYPE_BOOLEAN) + plugin_notification_meta_add_boolean (dst, meta->name, + meta->value_boolean); + } + + return (0); +} /* int plugin_notification_meta_copy */ + int plugin_notification_meta_free (notification_t *n) { notification_meta_t *this; diff --git a/src/plugin.h b/src/plugin.h index 7aac79fc..3bf7e4c1 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -268,6 +268,10 @@ int plugin_notification_meta_add_double (notification_t *n, int plugin_notification_meta_add_boolean (notification_t *n, const char *name, bool value); + +int plugin_notification_meta_copy (notification_t *dst, + const notification_t *src); + int plugin_notification_meta_free (notification_t *n); #endif /* PLUGIN_H */ -- 2.11.0