Code

Collectd.pm: Added missing entry to the plugin (type id, type name) map.
[collectd.git] / src / openvpn.c
index 0bc69dd466d0e6739a7cd5d7885daff6c1ceeaf4..9c717dd0a64a0f9511473c0c976f10c0f31bd639 100644 (file)
@@ -85,9 +85,8 @@ static int openvpn_strsplit (char *string, char **fields, size_t size)
        return (i);
 } /* int openvpn_strsplit */
 
-
 /* dispatches stats about traffic (TCP or UDP) generated by the tunnel per single endpoint */
-static void iostats_submit (char *name, char *type, counter_t rx, counter_t tx)
+static void iostats_submit (char *pinst, char *tinst, counter_t rx, counter_t tx)
 {
        value_t values[2];
        value_list_t vl = VALUE_LIST_INIT;
@@ -105,23 +104,19 @@ static void iostats_submit (char *name, char *type, counter_t rx, counter_t tx)
        vl.values_len = STATIC_ARRAY_SIZE (values);
        sstrncpy (vl.host, hostname_g, sizeof (vl.host));
        sstrncpy (vl.plugin, "openvpn", sizeof (vl.plugin));
-       sstrncpy (vl.plugin_instance, name, sizeof (vl.plugin_instance));
-
-       if (type) /* new naming schema - improved naming schema option */
-       {
-               sstrncpy (vl.type, "io_octets", sizeof (vl.type));
-               sstrncpy (vl.type_instance, type, sizeof (vl.type_instance));
-       }
-       else /* old naming schema (multicontext only): plugin_instance = hostname rather than filename */
-       {
-               sstrncpy (vl.type, "if_octets", sizeof (vl.type));
-       }
+       if (pinst != NULL)
+               sstrncpy (vl.plugin_instance, pinst,
+                               sizeof (vl.plugin_instance));
+       sstrncpy (vl.type, "if_octets", sizeof (vl.type));
+       if (tinst != NULL)
+               sstrncpy (vl.type_instance, tinst, sizeof (vl.type_instance));
 
        plugin_dispatch_values (&vl);
 } /* void traffic_submit */
 
 /* dispatches stats about data compression shown when in single mode */
-static void compression_submit (char *name, char *type, counter_t uncompressed, counter_t compressed)
+static void compression_submit (char *pinst, char *tinst,
+               counter_t uncompressed, counter_t compressed)
 {
        value_t values[2];
        value_list_t vl = VALUE_LIST_INIT;
@@ -133,9 +128,12 @@ static void compression_submit (char *name, char *type, counter_t uncompressed,
        vl.values_len = STATIC_ARRAY_SIZE (values);
        sstrncpy (vl.host, hostname_g, sizeof (vl.host));
        sstrncpy (vl.plugin, "openvpn", sizeof (vl.plugin));
-       sstrncpy (vl.plugin_instance, name, sizeof (vl.plugin_instance));
+       if (pinst != NULL)
+               sstrncpy (vl.plugin_instance, pinst,
+                               sizeof (vl.plugin_instance));
        sstrncpy (vl.type, "compression", sizeof (vl.type));
-       sstrncpy (vl.type_instance, type, sizeof (vl.type_instance));
+       if (tinst != NULL)
+               sstrncpy (vl.type_instance, tinst, sizeof (vl.type_instance));
 
        plugin_dispatch_values (&vl);
 } /* void compression_submit */
@@ -265,15 +263,15 @@ static int multi1_read (char *name, FILE *fh)
 
                if (new_naming_schema)
                {
-                       iostats_submit (fields[0],          /* "Common Name" */
-                                       NULL,               /* unused when in multimode */
+                       iostats_submit (name,               /* vpn instance */
+                                       fields[0],          /* "Common Name" */
                                        atoll (fields[2]),  /* "Bytes Received" */
                                        atoll (fields[3])); /* "Bytes Sent" */
                }
                else
                {
-                       iostats_submit (name,               /* vpn instance */
-                                       fields[0],          /* "Common Name" */
+                       iostats_submit (fields[0],          /* "Common Name" */
+                                       NULL,               /* unused when in multimode */
                                        atoll (fields[2]),  /* "Bytes Received" */
                                        atoll (fields[3])); /* "Bytes Sent" */
                }
@@ -303,31 +301,29 @@ static int multi2_read (char *name, FILE *fh)
                 *  with more or less fields.
                 */
                if (fields_num != 8)
-               {
                        continue;
+
+               if (strcmp (fields[0], "CLIENT_LIST") != 0)
+                       continue;
+
+               if (new_naming_schema)
+               {
+                       /* plugin inst = file name, type inst = fields[1] */
+                       iostats_submit (name,               /* vpn instance */
+                                       fields[1],          /* "Common Name" */
+                                       atoll (fields[4]),  /* "Bytes Received" */
+                                       atoll (fields[5])); /* "Bytes Sent" */
                }
                else
                {
-                       if (strcmp (fields[0], "CLIENT_LIST") == 0)
-                       {
-                               if (new_naming_schema)
-                               {
-                                       iostats_submit (name,               /* vpn instance */
-                                                       fields[1],          /* "Common Name" */
-                                                       atoll (fields[4]),  /* "Bytes Received" */
-                                                       atoll (fields[5])); /* "Bytes Sent" */
-                               }
-                               else
-                               {
-                                       iostats_submit (fields[1],          /* "Common Name" */
-                                                       NULL,               /* unused when in multimode */
-                                                       atoll (fields[4]),  /* "Bytes Received" */
-                                                       atoll (fields[5])); /* "Bytes Sent" */
-                               }
-
-                               read = 1;
-                       }
+                       /* plugin inst = fields[1], type inst = "" */
+                       iostats_submit (fields[1],          /* "Common Name" */
+                                       NULL,               /* unused when in multimode */
+                                       atoll (fields[4]),  /* "Bytes Received" */
+                                       atoll (fields[5])); /* "Bytes Sent" */
                }
+
+               read = 1;
        }
 
        return (read);
@@ -357,25 +353,25 @@ static int multi3_read (char *name, FILE *fh)
                }
                else
                {
-                       if (strcmp (fields[0], "CLIENT_LIST") == 0)
+                       if (strcmp (fields[0], "CLIENT_LIST") != 0)
+                               continue;
+
+                       if (new_naming_schema)
+                       {
+                               iostats_submit (name,               /* vpn instance */
+                                               fields[1],          /* "Common Name" */
+                                               atoll (fields[4]),  /* "Bytes Received" */
+                                               atoll (fields[5])); /* "Bytes Sent" */
+                       }
+                       else
                        {
-                               if (new_naming_schema)
-                               {
-                                       iostats_submit (name,               /* vpn instance */
-                                                       fields[1],          /* "Common Name" */
-                                                       atoll (fields[4]),  /* "Bytes Received" */
-                                                       atoll (fields[5])); /* "Bytes Sent" */
-                               }
-                               else
-                               {
-                                       iostats_submit (fields[1],          /* "Common Name" */
-                                                       NULL,               /* unused when in multimode */
-                                                       atoll (fields[4]),  /* "Bytes Received" */
-                                                       atoll (fields[5])); /* "Bytes Sent" */
-                               }
-
-                               read = 1;
+                               iostats_submit (fields[1],          /* "Common Name" */
+                                               NULL,               /* unused when in multimode */
+                                               atoll (fields[4]),  /* "Bytes Received" */
+                                               atoll (fields[5])); /* "Bytes Sent" */
                        }
+
+                       read = 1;
                }
        }
 
@@ -572,7 +568,7 @@ static int openvpn_config (const char *key, const char *value)
 
                DEBUG ("openvpn plugin: status file \"%s\" added", temp->file);
 
-       }
+       } /* if (strcasecmp ("StatusFile", key) == 0) */
        else if (strcasecmp ("Compression", key) == 0)
        {
                if (IS_TRUE (value))
@@ -582,7 +578,7 @@ static int openvpn_config (const char *key, const char *value)
                        store_compression = 0;
                        DEBUG ("openvpn plugin: no 'compression statistcs' collected");
                }
-       }
+       } /* if (strcasecmp ("Compression", key) == 0) */
        else if (strcasecmp ("ImprovedNamingSchema", key) == 0)
        {
                if (IS_TRUE (value))
@@ -594,7 +590,7 @@ static int openvpn_config (const char *key, const char *value)
                {
                        new_naming_schema = 0;
                }
-       }
+       } /* if (strcasecmp ("ImprovedNamingSchema", key) == 0) */
        else
        {
                return (-1);
@@ -626,3 +622,5 @@ void module_register (void)
        plugin_register_read ("openvpn", openvpn_read);
        plugin_register_shutdown ("openvpn", openvpn_shutdown);
 } /* void module_register */
+
+/* vim: set sw=2 ts=2 : */