From 21cf33c999276b95866b842e7910ac6b673cbb35 Mon Sep 17 00:00:00 2001 From: Pavel Rochnyack Date: Fri, 26 May 2017 12:46:09 +0600 Subject: [PATCH] apcups: Fix reconnect implementation Implementation was broken, it doesn't reconnects as planned. --- src/apcups.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/apcups.c b/src/apcups.c index f6ee2dbf..7c6a47c1 100644 --- a/src/apcups.c +++ b/src/apcups.c @@ -240,7 +240,7 @@ static int apc_query_server(char const *node, char const *service, char recvline[1024]; char *tokptr; char *toksaveptr; - _Bool retry = 1; + int try = 0; int status; #if APCMAIN @@ -250,7 +250,7 @@ static int apc_query_server(char const *node, char const *service, #define PRINT_VALUE(name, val) /**/ #endif - while (retry) { + while (1) { if (global_sockfd < 0) { global_sockfd = net_open(node, service); if (global_sockfd < 0) { @@ -262,10 +262,10 @@ static int apc_query_server(char const *node, char const *service, status = net_send(&global_sockfd, "status", strlen("status")); if (status != 0) { - /* net_send is closing the socket on error. */ + /* net_send closes the socket on error. */ assert(global_sockfd < 0); - if (retry) { - retry = 0; + if (try == 0) { + try++; count_retries++; continue; } @@ -275,7 +275,7 @@ static int apc_query_server(char const *node, char const *service, } break; - } /* while (retry) */ + } /* while (1) */ /* When collectd's collection interval is larger than apcupsd's * timeout, we would have to retry / re-connect each iteration. Try to -- 2.30.2