**/
#include "collectd.h"
+
#include "plugin.h"
#include "common.h"
#include <asm/types.h>
-#include <sys/socket.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
{
ir_ignorelist_t *entry;
- entry = (ir_ignorelist_t *) malloc (sizeof (ir_ignorelist_t));
+ entry = calloc (1, sizeof (*entry));
if (entry == NULL)
return (-1);
- memset (entry, '\0', sizeof (ir_ignorelist_t));
-
if (strcasecmp (dev, "All") != 0)
{
entry->device = strdup (dev);
static int check_ignorelist (const char *dev,
const char *type, const char *type_instance)
{
- ir_ignorelist_t *i;
-
assert ((dev != NULL) && (type != NULL));
if (ir_ignorelist_head == NULL)
return (ir_ignorelist_invert ? 0 : 1);
- for (i = ir_ignorelist_head; i != NULL; i = i->next)
+ for (ir_ignorelist_t *i = ir_ignorelist_head; i != NULL; i = i->next)
{
/* i->device == NULL => match all devices */
if ((i->device != NULL)
static void submit_one (const char *dev, const char *type,
const char *type_instance, derive_t value)
{
- value_t values[1];
value_list_t vl = VALUE_LIST_INIT;
- values[0].derive = value;
-
- vl.values = values;
+ vl.values = &(value_t) { .derive = value };
vl.values_len = 1;
- sstrncpy (vl.host, hostname_g, sizeof (vl.host));
sstrncpy (vl.plugin, "netlink", sizeof (vl.plugin));
sstrncpy (vl.plugin_instance, dev, sizeof (vl.plugin_instance));
sstrncpy (vl.type, type, sizeof (vl.type));
const char *type_instance,
derive_t rx, derive_t tx)
{
- value_t values[2];
value_list_t vl = VALUE_LIST_INIT;
-
- values[0].derive = rx;
- values[1].derive = tx;
+ value_t values[] = {
+ { .derive = rx },
+ { .derive = tx },
+ };
vl.values = values;
- vl.values_len = 2;
- sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+ vl.values_len = STATIC_ARRAY_SIZE (values);
sstrncpy (vl.plugin, "netlink", sizeof (vl.plugin));
sstrncpy (vl.plugin_instance, dev, sizeof (vl.plugin_instance));
sstrncpy (vl.type, type, sizeof (vl.type));
{
char **temp;
- temp = (char **) realloc (iflist, (msg->ifi_index + 1) * sizeof (char *));
+ temp = realloc (iflist, (msg->ifi_index + 1) * sizeof (char *));
if (temp == NULL)
{
ERROR ("netlink plugin: update_iflist: realloc failed.");
#define COPY_RTNL_LINK_VALUE(dst_stats, src_stats, value_name) \
(dst_stats)->value_name = (src_stats)->value_name
-#define COPY_RTNL_LINK_STATS(dst_stats, src_stats) \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_bytes); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_packets); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_bytes); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_bytes); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_dropped); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_dropped); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, multicast); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, collisions); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_length_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_over_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_crc_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_frame_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_fifo_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, rx_missed_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_aborted_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_carrier_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_fifo_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_heartbeat_errors); \
- COPY_RTNL_LINK_VALUE(dst_stats, src_stats, tx_window_errors)
+#define COPY_RTNL_LINK_STATS(dst_stats, src_stats) \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_packets); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_packets); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_bytes); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_bytes); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_dropped); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_dropped); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, multicast); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, collisions); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_length_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_over_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_crc_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_frame_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_fifo_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, rx_missed_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_aborted_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_carrier_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_fifo_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_heartbeat_errors); \
+ COPY_RTNL_LINK_VALUE (dst_stats, src_stats, tx_window_errors)
#ifdef HAVE_RTNL_LINK_STATS64
static void check_ignorelist_and_submit64 (const char *dev,
{
struct ir_link_stats_storage_s s;
- COPY_RTNL_LINK_STATS(&s, stats);
+ COPY_RTNL_LINK_STATS (&s, stats);
check_ignorelist_and_submit (dev, &s);
}
const char *kind = NULL;
/* char *type_instance; */
- char *tc_type;
+ const char *tc_type;
char tc_inst[DATA_MAX_NAME_LEN];
_Bool stats_submitted = 0;
int ret;
unsigned int seq, portid;
- size_t ifindex;
-
static const int type_id[] = { RTM_GETQDISC, RTM_GETTCLASS, RTM_GETTFILTER };
static const char *type_name[] = { "qdisc", "class", "filter" };
/* `link_filter_cb' will update `iflist' which is used here to iterate
* over all interfaces. */
- for (ifindex = 1; ifindex < iflist_len; ifindex++)
+ for (size_t ifindex = 1; ifindex < iflist_len; ifindex++)
{
struct tcmsg *tm;
- size_t type_index;
if (iflist[ifindex] == NULL)
continue;
- for (type_index = 0; type_index < STATIC_ARRAY_SIZE (type_id); type_index++)
+ for (size_t type_index = 0; type_index < STATIC_ARRAY_SIZE (type_id); type_index++)
{
if (check_ignorelist (iflist[ifindex], type_name[type_index], NULL))
{
continue;
}
- DEBUG ("netlink plugin: ir_read: querying %s from %s (%lu).",
+ DEBUG ("netlink plugin: ir_read: querying %s from %s (%zu).",
type_name[type_index], iflist[ifindex], ifindex);
nlh = mnl_nlmsg_put_header (buf);