X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fnetlink.c;h=66129ad8c3b39d4e757a59171317ccaffdbd889d;hb=7e913809ed870c5b0394a214be45c3d3144f38c4;hp=0a3320732b298301eacefc729429f35dbab3ded5;hpb=79963d13c1884d1d92667cc502ad20758b084a12;p=collectd.git diff --git a/src/netlink.c b/src/netlink.c index 0a332073..66129ad8 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -174,14 +174,10 @@ static int check_ignorelist(const char *dev, const char *type, 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)); @@ -194,15 +190,13 @@ static void submit_one(const char *dev, const char *type, static void submit_two(const char *dev, const char *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)); @@ -359,8 +353,10 @@ static int link_filter_cb(const struct nlmsghdr *nlh, continue; if (mnl_attr_validate2(attr, MNL_TYPE_UNSPEC, sizeof(*stats.stats64)) < 0) { + char errbuf[1024]; ERROR("netlink plugin: link_filter_cb: IFLA_STATS64 mnl_attr_validate2 " - "failed."); + "failed: %s", + sstrerror(errno, errbuf, sizeof(errbuf))); return MNL_CB_ERROR; } stats.stats64 = mnl_attr_get_payload(attr); @@ -375,8 +371,10 @@ static int link_filter_cb(const struct nlmsghdr *nlh, continue; if (mnl_attr_validate2(attr, MNL_TYPE_UNSPEC, sizeof(*stats.stats32)) < 0) { + char errbuf[1024]; ERROR("netlink plugin: link_filter_cb: IFLA_STATS mnl_attr_validate2 " - "failed."); + "failed: %s", + sstrerror(errno, errbuf, sizeof(errbuf))); return MNL_CB_ERROR; } stats.stats32 = mnl_attr_get_payload(attr); @@ -401,8 +399,10 @@ static int qos_attr_cb(const struct nlattr *attr, void *data) { if (mnl_attr_get_type(attr) == TCA_STATS_BASIC) { if (mnl_attr_validate2(attr, MNL_TYPE_UNSPEC, sizeof(**bs)) < 0) { + char errbuf[1024]; ERROR("netlink plugin: qos_attr_cb: TCA_STATS_BASIC mnl_attr_validate2 " - "failed."); + "failed: %s", + sstrerror(errno, errbuf, sizeof(errbuf))); return MNL_CB_ERROR; } *bs = mnl_attr_get_payload(attr); @@ -535,8 +535,10 @@ static int qos_filter_cb(const struct nlmsghdr *nlh, void *args) { continue; if (mnl_attr_validate2(attr, MNL_TYPE_UNSPEC, sizeof(*ts)) < 0) { + char errbuf[1024]; ERROR("netlink plugin: qos_filter_cb: TCA_STATS mnl_attr_validate2 " - "failed."); + "failed: %s", + sstrerror(errno, errbuf, sizeof(errbuf))); return MNL_CB_ERROR; } ts = mnl_attr_get_payload(attr); @@ -672,7 +674,9 @@ static int ir_read(void) { ret = mnl_socket_recvfrom(nl, buf, sizeof(buf)); } if (ret < 0) { - ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed."); + char errbuf[1024]; + ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed: %s", + sstrerror(errno, errbuf, sizeof(errbuf))); return (-1); } @@ -717,10 +721,11 @@ static int ir_read(void) { ret = mnl_socket_recvfrom(nl, buf, sizeof(buf)); } if (ret < 0) { - ERROR("netlink plugin: ir_read:mnl_socket_recvfrom failed."); + char errbuf[1024]; + ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed: %s", + sstrerror(errno, errbuf, sizeof(errbuf))); continue; } - } /* for (type_index) */ } /* for (if_index) */