From 1e317eba1b4f4732adc2bd6a43ee719998910e70 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Sun, 7 Apr 2013 17:45:47 +0200 Subject: [PATCH] write_riemann plugin: Reorder the functions to get rid or prototypes. --- src/write_riemann.c | 156 +++++++++++++++++++++----------------------- 1 file changed, 73 insertions(+), 83 deletions(-) diff --git a/src/write_riemann.c b/src/write_riemann.c index 6ef27ca2..d31a988e 100644 --- a/src/write_riemann.c +++ b/src/write_riemann.c @@ -56,16 +56,6 @@ struct riemann_host { static char **riemann_tags; static size_t riemann_tags_num; -static int riemann_send(struct riemann_host *, Msg const *); -static int riemann_notification(const notification_t *, user_data_t *); -static int riemann_write(const data_set_t *, const value_list_t *, user_data_t *); -static int riemann_connect(struct riemann_host *); -static int riemann_disconnect (struct riemann_host *host); -static void riemann_free(void *); -static int riemann_config_node(oconfig_item_t *); -static int riemann_config(oconfig_item_t *); -void module_register(void); - static void riemann_event_protobuf_free (Event *event) /* {{{ */ { if (event == NULL) @@ -102,6 +92,79 @@ static void riemann_msg_protobuf_free (Msg *msg) /* {{{ */ sfree (msg); } /* }}} void riemann_msg_protobuf_free */ +/* host->lock must be held when calling this function. */ +static int +riemann_connect(struct riemann_host *host) +{ + int e; + struct addrinfo *ai, *res, hints; + char const *node; + char const *service; + + if (host->flags & F_CONNECT) + return 0; + + memset(&hints, 0, sizeof(hints)); + memset(&service, 0, sizeof(service)); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = host->use_tcp ? SOCK_STREAM : SOCK_DGRAM; +#ifdef AI_ADDRCONFIG + hints.ai_flags |= AI_ADDRCONFIG; +#endif + + node = (host->node != NULL) ? host->node : RIEMANN_HOST; + service = (host->service != NULL) ? host->service : RIEMANN_PORT; + + if ((e = getaddrinfo(node, service, &hints, &res)) != 0) { + ERROR ("write_riemann plugin: Unable to resolve host \"%s\": %s", + node, gai_strerror(e)); + return -1; + } + + host->s = -1; + for (ai = res; ai != NULL; ai = ai->ai_next) { + if ((host->s = socket(ai->ai_family, + ai->ai_socktype, + ai->ai_protocol)) == -1) { + continue; + } + + if (connect(host->s, ai->ai_addr, ai->ai_addrlen) != 0) { + close(host->s); + host->s = -1; + continue; + } + + host->flags |= F_CONNECT; + DEBUG("write_riemann plugin: got a succesful connection for: %s:%s", + node, service); + break; + } + + freeaddrinfo(res); + + if (host->s < 0) { + WARNING("write_riemann plugin: Unable to connect to Riemann at %s:%s", + node, service); + return -1; + } + return 0; +} + +/* host->lock must be held when calling this function. */ +static int +riemann_disconnect (struct riemann_host *host) +{ + if ((host->flags & F_CONNECT) == 0) + return (0); + + close (host->s); + host->s = -1; + host->flags &= ~F_CONNECT; + + return (0); +} + static int riemann_send(struct riemann_host *host, Msg const *msg) { @@ -489,79 +552,6 @@ riemann_write(const data_set_t *ds, return status; } -/* host->lock must be held when calling this function. */ -static int -riemann_connect(struct riemann_host *host) -{ - int e; - struct addrinfo *ai, *res, hints; - char const *node; - char const *service; - - if (host->flags & F_CONNECT) - return 0; - - memset(&hints, 0, sizeof(hints)); - memset(&service, 0, sizeof(service)); - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = host->use_tcp ? SOCK_STREAM : SOCK_DGRAM; -#ifdef AI_ADDRCONFIG - hints.ai_flags |= AI_ADDRCONFIG; -#endif - - node = (host->node != NULL) ? host->node : RIEMANN_HOST; - service = (host->service != NULL) ? host->service : RIEMANN_PORT; - - if ((e = getaddrinfo(node, service, &hints, &res)) != 0) { - ERROR ("write_riemann plugin: Unable to resolve host \"%s\": %s", - node, gai_strerror(e)); - return -1; - } - - host->s = -1; - for (ai = res; ai != NULL; ai = ai->ai_next) { - if ((host->s = socket(ai->ai_family, - ai->ai_socktype, - ai->ai_protocol)) == -1) { - continue; - } - - if (connect(host->s, ai->ai_addr, ai->ai_addrlen) != 0) { - close(host->s); - host->s = -1; - continue; - } - - host->flags |= F_CONNECT; - DEBUG("write_riemann plugin: got a succesful connection for: %s:%s", - node, service); - break; - } - - freeaddrinfo(res); - - if (host->s < 0) { - WARNING("write_riemann plugin: Unable to connect to Riemann at %s:%s", - node, service); - return -1; - } - return 0; -} - -/* host->lock must be held when calling this function. */ -static int -riemann_disconnect (struct riemann_host *host) -{ - if ((host->flags & F_CONNECT) == 0) - return (0); - - close (host->s); - host->s = -1; - host->flags &= ~F_CONNECT; - - return (0); -} - static void riemann_free(void *p) { -- 2.30.2