Code

openvpn plugin: Don't signal an error when no clients are connected.
authorFlorian Forster <octo@collectd.org>
Sun, 14 Sep 2014 17:28:05 +0000 (19:28 +0200)
committerFlorian Forster <octo@collectd.org>
Sun, 14 Sep 2014 17:28:05 +0000 (19:28 +0200)
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

index 6d89b37016b8d0270a612a09977e2400deca1032..0fd940584e1dac434bcf6ca4ea3db4d05b18a995 100644 (file)
@@ -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 */