summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: cbeef3f)
raw | patch | inline | side by side (parent: cbeef3f)
author | Marco Chiappero <marco@absence.it> | |
Tue, 1 Dec 2009 11:09:51 +0000 (12:09 +0100) | ||
committer | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Tue, 1 Dec 2009 11:09:51 +0000 (12:09 +0100) |
I'm attaching a new version that includes this config key. By default the old
naming schema is used, while for the single mode the new naming schema is
always used since there's no backward compatibility to be preserved. You can
use the previous file[1] for the 5.0 branch where only the new naming schema
will be used. A new man page text is still lacking, maybe I'll write it in the
next days.
naming schema is used, while for the single mode the new naming schema is
always used since there's no backward compatibility to be preserved. You can
use the previous file[1] for the 5.0 branch where only the new naming schema
will be used. A new man page text is still lacking, maybe I'll write it in the
next days.
src/openvpn.c | patch | blob | history |
diff --git a/src/openvpn.c b/src/openvpn.c
index 5a14e9e803c5aabaa1766d309ef2c263bfd24e28..0bc69dd466d0e6739a7cd5d7885daff6c1ceeaf4 100644 (file)
--- a/src/openvpn.c
+++ b/src/openvpn.c
static int vpn_num = 0;
static int store_compression = 1;
+static int new_naming_schema = 0;
static const char *config_keys[] =
{
"StatusFile",
- "Compression"
+ "Compression",
+ "ImprovedNamingSchema"
};
static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
values[0].counter = rx;
values[1].counter = tx;
- /* NOTE: using plugin_instance to identify each vpn config (and
+ /* NOTE ON THE NEW NAMING SCHEMA:
+ * using plugin_instance to identify each vpn config (and
* status) file; using type_instance to identify the endpoint
* host when in multimode, traffic or overhead when in single.
*/
@@ -103,8 +106,16 @@ static void iostats_submit (char *name, char *type, counter_t rx, counter_t tx)
sstrncpy (vl.host, hostname_g, sizeof (vl.host));
sstrncpy (vl.plugin, "openvpn", sizeof (vl.plugin));
sstrncpy (vl.plugin_instance, name, sizeof (vl.plugin_instance));
- sstrncpy (vl.type, "io_octets", sizeof (vl.type));
- sstrncpy (vl.type_instance, type, sizeof (vl.type_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));
+ }
plugin_dispatch_values (&vl);
} /* void traffic_submit */
if (fields_num < 4)
continue;
- iostats_submit (name, /* vpn instance */
- fields[0], /* "Common Name" */
- atoll (fields[2]), /* "Bytes Received" */
- atoll (fields[3])); /* "Bytes Sent" */
+ if (new_naming_schema)
+ {
+ iostats_submit (fields[0], /* "Common Name" */
+ NULL, /* unused when in multimode */
+ atoll (fields[2]), /* "Bytes Received" */
+ atoll (fields[3])); /* "Bytes Sent" */
+ }
+ else
+ {
+ iostats_submit (name, /* vpn instance */
+ fields[0], /* "Common Name" */
+ atoll (fields[2]), /* "Bytes Received" */
+ atoll (fields[3])); /* "Bytes Sent" */
+ }
+
read = 1;
}
{
if (strcmp (fields[0], "CLIENT_LIST") == 0)
{
- iostats_submit (name, /* vpn instance */
- fields[1], /* "Common Name" */
- atoll (fields[4]), /* "Bytes Received" */
- atoll (fields[5])); /* "Bytes Sent" */
+ 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;
}
}
{
if (strcmp (fields[0], "CLIENT_LIST") == 0)
{
- iostats_submit (name, /* vpn instance */
- fields[1], /* "Common Name" */
- atoll (fields[4]), /* "Bytes Received" */
- atoll (fields[5])); /* "Bytes Sent" */
+ 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;
}
}
}
else
{
- /* doesn't waist memory, uses status_file starting at filename + 1 */
+ /* doesn't waste memory, uses status_file starting at filename + 1 */
status_name = filename + 1;
}
DEBUG ("openvpn plugin: no 'compression statistcs' collected");
}
}
+ else if (strcasecmp ("ImprovedNamingSchema", key) == 0)
+ {
+ if (IS_TRUE (value))
+ {
+ DEBUG ("openvpn plugin: using the new naming schema");
+ new_naming_schema = 1;
+ }
+ else
+ {
+ new_naming_schema = 0;
+ }
+ }
else
{
return (-1);