diff --git a/src/openvpn.c b/src/openvpn.c
index 0bc69dd466d0e6739a7cd5d7885daff6c1ceeaf4..9c717dd0a64a0f9511473c0c976f10c0f31bd639 100644 (file)
--- a/src/openvpn.c
+++ b/src/openvpn.c
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 */
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" */
}
* 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);
}
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;
}
}
DEBUG ("openvpn plugin: status file \"%s\" added", temp->file);
- }
+ } /* if (strcasecmp ("StatusFile", key) == 0) */
else if (strcasecmp ("Compression", key) == 0)
{
if (IS_TRUE (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))
{
new_naming_schema = 0;
}
- }
+ } /* if (strcasecmp ("ImprovedNamingSchema", key) == 0) */
else
{
return (-1);
plugin_register_read ("openvpn", openvpn_read);
plugin_register_shutdown ("openvpn", openvpn_shutdown);
} /* void module_register */
+
+/* vim: set sw=2 ts=2 : */