diff --git a/src/write_graphite.c b/src/write_graphite.c
index 546111bb1ba998f2122d424b1d92a42de273609e..c1a11df2d0911175b3b512fa21829c7d2139b68f 100644 (file)
--- a/src/write_graphite.c
+++ b/src/write_graphite.c
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;
user_data_t user_data;
char callback_name[DATA_MAX_NAME_LEN];
int i;
+ int status = 0;
cb = malloc (sizeof (*cb));
if (cb == NULL)
/* 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);
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)
{
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. */