collectd: Ignore any errors if openvpn status files are missing
[ipfire-2.x.git] / src / patches / collectd / silence-openvpn-errors.patch
index c909761..c258486 100644 (file)
@@ -1,8 +1,28 @@
 diff --git a/src/openvpn.c b/src/openvpn.c
-index d446e9957b68..cc33eed61e25 100644
+index d446e9957b68..ef5bf1078285 100644
 --- a/src/openvpn.c
 +++ b/src/openvpn.c
-@@ -567,7 +567,7 @@ static int openvpn_read (void)
+@@ -70,6 +70,7 @@ static const char *config_keys[] =
+ };
+ static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
++static int version_detect (const char *filename);
+ /* Helper function
+  * copy-n-pasted from common.c - changed delim to ","  */
+@@ -540,6 +541,11 @@ static int openvpn_read (void)
+                       continue;
+               }
++              // If the version was not detected yet, we try to guess again
++              if (vpn_list[i]->version == 0) {
++                      vpn_list[i]->version = version_detect(vpn_list[i]->file);
++              }
++
+               switch (vpn_list[i]->version)
+               {
+                       case SINGLE:
+@@ -567,7 +573,7 @@ static int openvpn_read (void)
                read += vpn_read;
        }
  
@@ -11,3 +31,34 @@ index d446e9957b68..cc33eed61e25 100644
  } /* int openvpn_read */
  
  static int version_detect (const char *filename)
+@@ -630,16 +636,6 @@ static int version_detect (const char *filename)
+               }
+       }
+-      if (version == 0)
+-      {
+-              /* This is only reached during configuration, so complaining to
+-               * the user is in order. */
+-              NOTICE ("openvpn plugin: %s: Unknown file format, please "
+-                              "report this as bug. Make sure to include "
+-                              "your status file, so the plugin can "
+-                              "be adapted.", filename);
+-      }
+-
+       fclose (fh);
+       return version;
+@@ -656,13 +652,6 @@ static int openvpn_config (const char *key, const char *value)
+               /* try to detect the status file format */
+               status_version = version_detect (value);
+-              if (status_version == 0)
+-              {
+-                      WARNING ("openvpn plugin: unable to detect status version, \
+-                                      discarding status file \"%s\".", value);
+-                      return (1);
+-              }
+-
+               status_file = sstrdup (value);
+               if (status_file == NULL)
+               {