From 8516f9abb625fa7b9321e62307305aa6499be4e8 Mon Sep 17 00:00:00 2001
From: Florian Forster <octo@collectd.org>
Date: Sun, 14 Sep 2014 19:28:05 +0200
Subject: [PATCH 17/22] openvpn plugin: Don't signal an error when no clients
 are connected.

In the multi1_read() function, an error (zero) was returned when no
clients were currently connected to the OpenVPN server, because the
"read" variable was initialized to zero and the while loop exited before
it was set to one. This is not the intended behavior.

Thanks to @srix for reporting this issue!

Fixes: #731
---
 src/openvpn.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/openvpn.c b/src/openvpn.c
index d2b6f17..7d4e4a0 100644
--- a/src/openvpn.c
+++ b/src/openvpn.c
@@ -267,7 +267,7 @@ static int multi1_read (char *name, FILE *fh)
 {
 	char buffer[1024];
 	char *fields[10];
-	int  fields_num, read = 0, found_header = 0;
+	int  fields_num, found_header = 0;
 	long long sum_users = 0;
 
 	/* read the file until the "ROUTING TABLE" line is found (no more info after) */
@@ -314,17 +314,15 @@ static int multi1_read (char *name, FILE *fh)
 						atoll (fields[3])); /* "Bytes Sent" */
 			}
 		}
-
-		read = 1;
 	}
 
+	if (ferror (fh))
+		return (0);
+
 	if (collect_user_count)
-	{
 		numusers_submit(name, name, sum_users);
-		read = 1;
-	}
 
-	return (read);
+	return (1);
 } /* int multi1_read */
 
 /* for reading status version 2 */
-- 
1.9.3

