Florian Forster [Tue, 2 May 2017 08:26:40 +0000 (10:26 +0200)]
libcollectdclient: Fix off-by-one error when reading the username.
The allocated buffer includes a null byte, but the network packet doesn't.
That means we were reading one byte too many from the buffer, overwriting
the terminating null byte in the buffer.
src/utils_ovs.c:366:20: warning: Access to field 'type' results in a dereference of a null pointer (loaded from variable 'jval')
(int)(jval)->type);
^~~~~~~~~~~~
...
Right now, the plugin dispatches values by default and doesn't send
any notification messages. The expected behaviour of the event plugin
is to send notification by default. So, changed default value of
SendNotification & DispatchValues options to opposite.
Ruben Kerkhof [Sun, 5 Mar 2017 17:43:15 +0000 (18:43 +0100)]
virt plugin: fix build warning
CC src/virt_la-virt.lo
src/virt.c:417:37: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
if ((tag_index < 0) || (tag_index >= STATIC_ARRAY_SIZE(tags))) {
~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
Ruben Kerkhof [Sun, 5 Mar 2017 17:30:23 +0000 (18:30 +0100)]
collectd.spec: Don't enable XFS support on RHEL6
It is missing for i386.
If there's strong interest in having support for xfs in the df plugin in
RHEL6 we can do some macro magic to only BuildRequire xfsprogs-devel if
were not on rhel6 i386, but this was the easiest fix and unblocks our
package builds.
Ruben Kerkhof [Sun, 5 Mar 2017 17:02:30 +0000 (18:02 +0100)]
utils_cmd_flush.c: fix another build warning
src/utils_cmd_flush.c:140:11: warning: declaration shadows a local variable [-Wshadow]
int status;
^
src/utils_cmd_flush.c:114:7: note: previous declaration is here
int status;
^
Ruben Kerkhof [Sun, 5 Mar 2017 16:45:54 +0000 (17:45 +0100)]
ovs_stats plugin: fix some more build warnings
CC src/ovs_stats_la-ovs_stats.lo
src/ovs_stats.c:158:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]
static const iface_counter ovs_stats_counter_name_to_type(const char *counter) {
^~~~~~
src/ovs_stats.c:356:29: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < ports_num; i++)
~ ^ ~~~~~~~~~
src/ovs_stats.c:401:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(bridges)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:415:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(bridges)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:501:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:524:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:538:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_ARRAY(stats)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:558:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_ARRAY(ext_ids)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:684:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++)
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 warnings generated.
Ruben Kerkhof [Sun, 5 Mar 2017 16:42:28 +0000 (17:42 +0100)]
ovs_stats plugin: fix build warning
src/ovs_stats.c:158:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]
static const iface_counter ovs_stats_counter_name_to_type(const char *counter) {
^~~~~~
Ruben Kerkhof [Sun, 5 Mar 2017 15:46:47 +0000 (16:46 +0100)]
Check for the CAP_IS_SUPPORTED macro
On EPEL6:
src/daemon/common.c: In function 'check_capability':
src/daemon/common.c:1571: error: implicit declaration of function 'CAP_IS_SUPPORTED'
make[1]: *** [src/daemon/common.lo] Error 1
This change forces dpdkstat plugin to check if memory needs to be resized on
every DPDK_CMD_GET_STATS command, rather than resizing it only once at
initialization. Additionally it fixes incorrect metric retrieval logic, which
allows plugin to dispatch metrics only if number of retrieved extended statistics
is equal to allocated stats array size for port. Based on DPDK API documentation
rte_eth_xstats_get (and rte_eth_xstats_get_names) function can return positive
value lower than array size, which isn't considered a failure.
If primary DPDK process is restarted with a greater number of ports bound to
DPDK driver while collectd dpdkstat plugin is running, then memory isn't resized.
Due to insufficient memory allocation dpdkstat plugin is unable to gather metrics
from new ports.
Steven Bell [Sun, 19 Feb 2017 05:56:27 +0000 (00:56 -0500)]
Implemented certificate checking conditionally if compiler finds upsclient library version >= 2.7. Otherwise will show warnings if this feature is used.