X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fwrite_graphite.c;h=099c62bbaa7e8f8994aa401c806d9493f0876c0c;hp=a8d132060ab731843f842844f0d8ecaf5a871853;hb=06a86a60a7dabc685bdbd81ce3d36ea5f7e2c2d4;hpb=3a9c4019736178fb78e65389acaf97c84cdc3086 diff --git a/src/write_graphite.c b/src/write_graphite.c index a8d13206..099c62bb 100644 --- a/src/write_graphite.c +++ b/src/write_graphite.c @@ -65,7 +65,7 @@ #endif #ifndef WG_DEFAULT_LOG_SEND_ERRORS -#define WG_DEFAULT_LOG_SEND_ERRORS 1 +#define WG_DEFAULT_LOG_SEND_ERRORS true #endif #ifndef WG_DEFAULT_ESCAPE @@ -92,7 +92,7 @@ struct wg_callback { char *node; char *service; char *protocol; - _Bool log_send_errors; + bool log_send_errors; char *prefix; char *postfix; char escape_char; @@ -111,7 +111,7 @@ struct wg_callback { /* Force reconnect useful for load balanced environments */ cdtime_t last_reconnect_time; cdtime_t reconnect_interval; - _Bool reconnect_interval_reached; + bool reconnect_interval_reached; }; /* wg_force_reconnect_check closes cb->sock_fd when it was open for longer @@ -131,7 +131,7 @@ static void wg_force_reconnect_check(struct wg_callback *cb) { close(cb->sock_fd); cb->sock_fd = -1; cb->last_reconnect_time = now; - cb->reconnect_interval_reached = 1; + cb->reconnect_interval_reached = true; INFO("write_graphite plugin: Connection closed after %.3f seconds.", CDTIME_T_TO_DOUBLE(now - cb->last_reconnect_time)); @@ -156,11 +156,9 @@ static int wg_send_buffer(struct wg_callback *cb) { status = swrite(cb->sock_fd, cb->send_buf, strlen(cb->send_buf)); if (status != 0) { if (cb->log_send_errors) { - char errbuf[1024]; ERROR("write_graphite plugin: send to %s:%s (%s) failed with status %zi " "(%s)", - cb->node, cb->service, cb->protocol, status, - sstrerror(errno, errbuf, sizeof(errbuf))); + cb->node, cb->service, cb->protocol, status, STRERRNO); } close(cb->sock_fd); @@ -177,7 +175,7 @@ static int wg_flush_nolock(cdtime_t timeout, struct wg_callback *cb) { int status; DEBUG("write_graphite plugin: wg_flush_nolock: timeout = %.3f; " - "send_buf_fill = %zu;", + "send_buf_fill = %" PRIsz ";", (double)timeout, cb->send_buf_fill); /* timeout == 0 => flush unconditionally */ @@ -238,9 +236,7 @@ static int wg_callback_init(struct wg_callback *cb) { cb->sock_fd = socket(ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol); if (cb->sock_fd < 0) { - char errbuf[1024]; - snprintf(connerr, sizeof(connerr), "failed to open socket: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + snprintf(connerr, sizeof(connerr), "failed to open socket: %s", STRERRNO); continue; } @@ -248,10 +244,8 @@ static int wg_callback_init(struct wg_callback *cb) { status = connect(cb->sock_fd, ai_ptr->ai_addr, ai_ptr->ai_addrlen); if (status != 0) { - char errbuf[1024]; - snprintf(connerr, sizeof(connerr), "failed to connect to remote " - "host: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + snprintf(connerr, sizeof(connerr), "failed to connect to remote host: %s", + STRERRNO); close(cb->sock_fd); cb->sock_fd = -1; continue; @@ -263,9 +257,6 @@ static int wg_callback_init(struct wg_callback *cb) { freeaddrinfo(ai_list); if (cb->sock_fd < 0) { - if (connerr[0] == '\0') - /* this should not happen but try to get a message anyway */ - sstrerror(errno, connerr, sizeof(connerr)); c_complain(LOG_ERR, &cb->init_complaint, "write_graphite plugin: Connecting to %s:%s via %s failed. " "The last error was: %s", @@ -283,7 +274,7 @@ static int wg_callback_init(struct wg_callback *cb) { if (!cb->reconnect_interval_reached || (cb->send_buf_free == 0)) wg_reset_buffer(cb); else - cb->reconnect_interval_reached = 0; + cb->reconnect_interval_reached = false; return 0; } @@ -312,6 +303,7 @@ static void wg_callback_free(void *data) { sfree(cb->prefix); sfree(cb->postfix); + pthread_mutex_unlock(&cb->send_lock); pthread_mutex_destroy(&cb->send_lock); sfree(cb); @@ -381,7 +373,8 @@ static int wg_send_message(char const *message, struct wg_callback *cb) { cb->send_buf_fill += message_len; cb->send_buf_free -= message_len; - DEBUG("write_graphite plugin: [%s]:%s (%s) buf %zu/%zu (%.1f %%) \"%s\"", + DEBUG("write_graphite plugin: [%s]:%s (%s) buf %" PRIsz "/%" PRIsz + " (%.1f %%) \"%s\"", cb->node, cb->service, cb->protocol, cb->send_buf_fill, sizeof(cb->send_buf), 100.0 * ((double)cb->send_buf_fill) / ((double)sizeof(cb->send_buf)), @@ -473,7 +466,7 @@ static int wg_config_node(oconfig_item_t *ci) { cb->protocol = strdup(WG_DEFAULT_PROTOCOL); cb->last_reconnect_time = cdtime(); cb->reconnect_interval = 0; - cb->reconnect_interval_reached = 0; + cb->reconnect_interval_reached = false; cb->log_send_errors = WG_DEFAULT_LOG_SEND_ERRORS; cb->prefix = NULL; cb->postfix = NULL;