PUTNOTIF: Add the ability to populate meta options
authorJohn-John Tedro <johnjohn.tedro@gmail.com>
Mon, 2 Sep 2013 21:30:51 +0000 (21:30 +0000)
committerJohn-John Tedro <johnjohn.tedro@gmail.com>
Mon, 2 Sep 2013 21:30:51 +0000 (21:30 +0000)
src/utils_cmd_putnotif.c
src/utils_parse_option.c

index 5a9faff..af9cf0e 100644 (file)
@@ -68,6 +68,18 @@ static int set_option (notification_t *n, const char *option, const char *value)
   DEBUG ("utils_cmd_putnotif: set_option (option = %s, value = %s);",
       option, value);
 
+  /* Add a meta option in the form: <type>:<key> */
+  if (option[0] != '\0' && option[1] == ':') {
+    /* Refuse empty key */
+    if (option[2] == '\0')
+      return (1);
+
+    if (option[0] == 's')
+      return plugin_notification_meta_add_string (n, option + 2, value);
+    else
+      return (1);
+  }
+
   if (strcasecmp ("severity", option) == 0)
     return (set_option_severity (n, value));
   else if (strcasecmp ("time", option) == 0)
index 820f14f..8086d63 100644 (file)
@@ -127,7 +127,7 @@ int parse_option (char **ret_buffer, char **ret_key, char **ret_value)
 
   /* Look for the equal sign */
   buffer = key;
-  while (isalnum ((int) *buffer) || *buffer == '_')
+  while (isalnum ((int) *buffer) || *buffer == '_' || *buffer == ':')
     buffer++;
   if ((*buffer != '=') || (buffer == key))
     return (1);