curl_xml: fix 3 small memory leaks
[collectd.git] / src / ipvs.c
index a64e7b7..7bd8c69 100644 (file)
@@ -45,7 +45,9 @@
 #endif /* HAVE_NETINET_IN_H */
 
 /* this can probably only be found in the kernel sources */
-#if HAVE_NET_IP_VS_H
+#if HAVE_LINUX_IP_VS_H
+# include <linux/ip_vs.h>
+#elif HAVE_NET_IP_VS_H
 # include <net/ip_vs.h>
 #elif HAVE_IP_VS_H
 # include <ip_vs.h>
@@ -235,13 +237,12 @@ static void cipvs_submit_connections (char *pi, char *ti, counter_t value)
        vl.values     = values;
        vl.values_len = 1;
 
-       vl.time     = time (NULL);
        vl.interval = interval_g;
 
-       strcpy (vl.host, hostname_g);
-       strcpy (vl.plugin, "ipvs");
+       sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+       sstrncpy (vl.plugin, "ipvs", sizeof (vl.plugin));
        sstrncpy (vl.plugin_instance, pi, sizeof (vl.plugin_instance));
-       strcpy (vl.type, "connections");
+       sstrncpy (vl.type, "connections", sizeof (vl.type));
        sstrncpy (vl.type_instance, (NULL != ti) ? ti : "total",
                sizeof (vl.type_instance));
 
@@ -261,11 +262,10 @@ static void cipvs_submit_if (char *pi, char *t, char *ti,
        vl.values     = values;
        vl.values_len = 2;
 
-       vl.time     = time (NULL);
        vl.interval = interval_g;
 
-       strcpy (vl.host, hostname_g);
-       strcpy (vl.plugin, "ipvs");
+       sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+       sstrncpy (vl.plugin, "ipvs", sizeof (vl.plugin));
        sstrncpy (vl.plugin_instance, pi, sizeof (vl.plugin_instance));
        sstrncpy (vl.type, t, sizeof (vl.type));
        sstrncpy (vl.type_instance, (NULL != ti) ? ti : "total",
@@ -280,7 +280,7 @@ static void cipvs_submit_dest (char *pi, struct ip_vs_dest_entry *de) {
 
        char ti[DATA_MAX_NAME_LEN];
 
-       if (0 != get_ti (de, ti, DATA_MAX_NAME_LEN))
+       if (0 != get_ti (de, ti, sizeof (ti)))
                return;
 
        cipvs_submit_connections (pi, ti, stats.conns);
@@ -298,7 +298,7 @@ static void cipvs_submit_service (struct ip_vs_service_entry *se)
 
        int i = 0;
 
-       if (0 != get_pi (se, pi, DATA_MAX_NAME_LEN))
+       if (0 != get_pi (se, pi, sizeof (pi)))
                return;
 
        cipvs_submit_connections (pi, NULL, stats.conns);