From: Ruben Kerkhof Date: Sat, 31 Mar 2018 09:17:08 +0000 (+0200) Subject: Merge pull request #2731 from elfiesmelfie/ovs_fixes X-Git-Url: https://git.octo.it/?a=commitdiff_plain;h=cfdac9062577bc7b32b44e4090adf80d93171749;hp=c836c3660921a52ebff47dccd81f21cf9962c30a;p=collectd.git Merge pull request #2731 from elfiesmelfie/ovs_fixes Ovs Fixes --- diff --git a/README b/README index ca86c84d..a47b669d 100644 --- a/README +++ b/README @@ -100,6 +100,9 @@ Features Collect DPDK interface statistics. See docs/BUILD.dpdkstat.md for detailed build instructions. + This plugin should be compiled with compiler defenses enabled, for + example -fstack-protector. + - drbd Collect individual drbd resource statistics. @@ -140,6 +143,9 @@ Features hugepages can be found here: https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt. + This plugin should be compiled with compiler defenses enabled, for + example -fstack-protector. + - intel_pmu The intel_pmu plugin reads performance counters provided by the Linux kernel perf interface. The plugin uses jevents library to resolve named diff --git a/src/ipmi.c b/src/ipmi.c index 2db344e6..6a72b2b7 100644 --- a/src/ipmi.c +++ b/src/ipmi.c @@ -785,11 +785,9 @@ entity_sensor_update_handler(enum ipmi_update_e op, if (st->sel_enabled) { int status = 0; - /* register threshold event if threshold sensor support events */ - if ((ipmi_sensor_get_event_reading_type(sensor) == - IPMI_EVENT_READING_TYPE_THRESHOLD) && - (ipmi_sensor_get_threshold_access(sensor) != - IPMI_THRESHOLD_ACCESS_SUPPORT_NONE)) + /* register threshold event handler */ + if (ipmi_sensor_get_event_reading_type(sensor) == + IPMI_EVENT_READING_TYPE_THRESHOLD) status = ipmi_sensor_add_threshold_event_handler( sensor, sensor_threshold_event_handler, st); /* register discrete handler if discrete/specific sensor support events */ @@ -1210,7 +1208,7 @@ static int c_ipmi_init(void) { } /* Don't send `ADD' notifications during startup (~ 1 minute) */ - int cycles = 1 + (60 / CDTIME_T_TO_TIME_T(plugin_get_interval())); + int cycles = 1 + (int)(TIME_T_TO_CDTIME_T(60) / plugin_get_interval()); st = instances; while (NULL != st) { diff --git a/src/mysql.c b/src/mysql.c index 7fe6d764..448f7cba 100644 --- a/src/mysql.c +++ b/src/mysql.c @@ -270,12 +270,16 @@ static MYSQL *getconnection(mysql_database_t *db) { } db->is_connected = 0; + /* Close the old connection before initializing a new one. */ + if (db->con != NULL) { + mysql_close(db->con); + db->con = NULL; + } + + db->con = mysql_init(NULL); if (db->con == NULL) { - db->con = mysql_init(NULL); - if (db->con == NULL) { - ERROR("mysql plugin: mysql_init failed: %s", mysql_error(db->con)); - return NULL; - } + ERROR("mysql plugin: mysql_init failed: %s", mysql_error(db->con)); + return NULL; } /* Configure TCP connect timeout (default: 0) */ diff --git a/src/netlink.c b/src/netlink.c index 0f71ce7c..1978eb43 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -358,10 +358,9 @@ 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: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + STRERRNO); return MNL_CB_ERROR; } stats.stats64 = mnl_attr_get_payload(attr); @@ -376,10 +375,9 @@ 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: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + STRERRNO); return MNL_CB_ERROR; } stats.stats32 = mnl_attr_get_payload(attr); @@ -404,10 +402,9 @@ 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(*q_stats->bs)) < 0) { - char errbuf[1024]; ERROR("netlink plugin: qos_attr_cb: TCA_STATS_BASIC mnl_attr_validate2 " "failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + STRERRNO); return MNL_CB_ERROR; } q_stats->bs = mnl_attr_get_payload(attr); @@ -556,10 +553,9 @@ 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: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + STRERRNO); return MNL_CB_ERROR; } ts = mnl_attr_get_payload(attr); @@ -694,9 +690,7 @@ static int ir_read(void) { ret = mnl_socket_recvfrom(nl, buf, sizeof(buf)); } if (ret < 0) { - char errbuf[1024]; - ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed: %s", STRERRNO); return (-1); } @@ -741,9 +735,8 @@ static int ir_read(void) { ret = mnl_socket_recvfrom(nl, buf, sizeof(buf)); } if (ret < 0) { - char errbuf[1024]; ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + STRERRNO); continue; } } /* for (type_index) */ diff --git a/src/utils_dpdk.c b/src/utils_dpdk.c index 30a10574..adc55306 100644 --- a/src/utils_dpdk.c +++ b/src/utils_dpdk.c @@ -831,7 +831,7 @@ uint128_t str_to_uint128(const char *str, int len) { return lcore_mask; } else { char low_str[DATA_MAX_NAME_LEN]; - char high_str[DATA_MAX_NAME_LEN]; + char high_str[DATA_MAX_NAME_LEN * 2]; memset(high_str, 0, sizeof(high_str)); memset(low_str, 0, sizeof(low_str)); diff --git a/src/uuid.c b/src/uuid.c index 4846841b..1cb90270 100644 --- a/src/uuid.c +++ b/src/uuid.c @@ -193,7 +193,7 @@ static int uuid_init(void) { char *uuid = uuid_get_local(); if (uuid) { - sstrncpy(hostname_g, uuid, DATA_MAX_NAME_LEN); + hostname_set(uuid); sfree(uuid); return 0; } diff --git a/src/write_prometheus.c b/src/write_prometheus.c index 4c363b2d..26b0b4d4 100644 --- a/src/write_prometheus.c +++ b/src/write_prometheus.c @@ -766,9 +766,8 @@ static int prom_open_socket(int addrfamily) { int tmp = 1; if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &tmp, sizeof(tmp)) != 0) { - char errbuf[1024]; WARNING("write_prometheus: setsockopt(SO_REUSEADDR) failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + STRERRNO); close(fd); fd = -1; continue;