Code

add log_logstash plugin to emit logstash json_event messages.
[collectd.git] / src / write_graphite.c
index 546111bb1ba998f2122d424b1d92a42de273609e..c1a11df2d0911175b3b512fa21829c7d2139b68f 100644 (file)
@@ -199,14 +199,8 @@ static int wg_callback_init (struct wg_callback *cb)
 
     if (0 == strcasecmp ("tcp", protocol))
         ai_hints.ai_socktype = SOCK_STREAM;
-    else if (0 == strcasecmp ("udp", protocol))
-        ai_hints.ai_socktype = SOCK_DGRAM;
     else
-    {
-        ERROR ("write_graphite plugin: unknown protocol (%s)",
-                protocol);
-        return (-1);
-    }
+        ai_hints.ai_socktype = SOCK_DGRAM;
 
     ai_list = NULL;
 
@@ -456,6 +450,7 @@ static int wg_config_node (oconfig_item_t *ci)
     user_data_t user_data;
     char callback_name[DATA_MAX_NAME_LEN];
     int i;
+    int status = 0;
 
     cb = malloc (sizeof (*cb));
     if (cb == NULL)
@@ -478,7 +473,7 @@ static int wg_config_node (oconfig_item_t *ci)
     /* FIXME: Legacy configuration syntax. */
     if (strcasecmp ("Carbon", ci->key) != 0)
     {
-        int status = cf_util_get_string (ci, &cb->name);
+        status = cf_util_get_string (ci, &cb->name);
         if (status != 0)
         {
             wg_callback_free (cb);
@@ -498,7 +493,17 @@ static int wg_config_node (oconfig_item_t *ci)
         else if (strcasecmp ("Port", child->key) == 0)
             cf_util_get_service (child, &cb->service);
         else if (strcasecmp ("Protocol", child->key) == 0)
+        {
             cf_util_get_string (child, &cb->protocol);
+
+            if (strcasecmp ("UDP", cb->protocol) != 0 &&
+                strcasecmp ("TCP", cb->protocol) != 0)
+            {
+                ERROR ("write_graphite plugin: Unknown protocol (%s)",
+                        cb->protocol);
+                status = -1;
+            }
+        }
         else if (strcasecmp ("LogSendErrors", child->key) == 0)
             cf_util_get_boolean (child, &cb->log_send_errors);
         else if (strcasecmp ("Prefix", child->key) == 0)
@@ -520,7 +525,17 @@ static int wg_config_node (oconfig_item_t *ci)
         {
             ERROR ("write_graphite plugin: Invalid configuration "
                         "option: %s.", child->key);
+            status = -1;
         }
+
+        if (status != 0)
+            break;
+    }
+
+    if (status != 0)
+    {
+        wg_callback_free (cb);
+        return (status);
     }
 
     /* FIXME: Legacy configuration syntax. */