collectd.git
8 years agosrc/daemon/utils_match.c: Improve readability of reset logic.
Florian Forster [Mon, 31 Oct 2016 15:57:40 +0000 (16:57 +0100)]
src/daemon/utils_match.c: Improve readability of reset logic.

8 years agocollectd.conf(5): Fix typos.
Florian Forster [Mon, 31 Oct 2016 15:53:43 +0000 (16:53 +0100)]
collectd.conf(5): Fix typos.

8 years agotail plugin: Implement the "GaugePersist" type.
Florian Forster [Sun, 30 Oct 2016 20:40:04 +0000 (21:40 +0100)]
tail plugin: Implement the "GaugePersist" type.

8 years agoMerge branch 'pr/2004'
Florian Forster [Fri, 28 Oct 2016 11:44:05 +0000 (13:44 +0200)]
Merge branch 'pr/2004'

8 years agocollectd.conf(5): Improve the "BlockDeviceFormat" and "BlockDeviceFormatBasename...
Florian Forster [Fri, 28 Oct 2016 11:32:27 +0000 (13:32 +0200)]
collectd.conf(5): Improve the "BlockDeviceFormat" and "BlockDeviceFormatBasename" sections.

8 years agovirt plugin: Fix indentation and some whitespace.
Florian Forster [Fri, 28 Oct 2016 08:45:23 +0000 (10:45 +0200)]
virt plugin: Fix indentation and some whitespace.

8 years agovirt plugin: Use the IS_TRUE() macro.
Florian Forster [Fri, 28 Oct 2016 08:44:47 +0000 (10:44 +0200)]
virt plugin: Use the IS_TRUE() macro.

8 years agovirt plugin: Add comment for <libgen.h> include.
Florian Forster [Fri, 28 Oct 2016 11:43:46 +0000 (13:43 +0200)]
virt plugin: Add comment for <libgen.h> include.

8 years agovirt.c modifications to bring it in accordance with "octo" comments
Deyan Chepishev [Fri, 28 Oct 2016 08:31:19 +0000 (11:31 +0300)]
virt.c modifications to bring it in accordance with "octo" comments

8 years agoplugin virt, collectd.conf.in, collectd.conf.pod eddited to be according to comments...
Deyan Chepishev [Fri, 28 Oct 2016 06:40:24 +0000 (09:40 +0300)]
plugin virt, collectd.conf.in, collectd.conf.pod eddited to be according to comments from collectd members

8 years agoMerge remote-tracking branch 'github/pr/2006'
Florian Forster [Fri, 28 Oct 2016 05:25:26 +0000 (07:25 +0200)]
Merge remote-tracking branch 'github/pr/2006'

8 years agoMerge remote-tracking branch 'github/pr/2006'
Florian Forster [Fri, 28 Oct 2016 05:22:59 +0000 (07:22 +0200)]
Merge remote-tracking branch 'github/pr/2006'

8 years agosrc/daemon/common_test.c: Avoid nesting composite literals.
Florian Forster [Thu, 27 Oct 2016 20:13:37 +0000 (22:13 +0200)]
src/daemon/common_test.c: Avoid nesting composite literals.

This crashed GCC 4.6 on Precise.

8 years agoMerge remote-tracking branch 'github/pr/2001'
Florian Forster [Thu, 27 Oct 2016 19:29:43 +0000 (21:29 +0200)]
Merge remote-tracking branch 'github/pr/2001'

8 years agocurl plugin: Don't use CDTIME_T_TO_DOUBLE() within a composite literal.
Florian Forster [Thu, 27 Oct 2016 19:19:35 +0000 (21:19 +0200)]
curl plugin: Don't use CDTIME_T_TO_DOUBLE() within a composite literal.

GCC 4.6 has a problem with the original code:

    curl.c: In function 'cc_submit_response_time':
    curl.c:644:26: internal compiler error: Segmentation fault

This is essentially a shot in the dark, trying to fix this issue.

8 years agogps plugin: Replace busy loop with pthread_cond_timedwait().
Florian Forster [Wed, 26 Oct 2016 20:48:51 +0000 (22:48 +0200)]
gps plugin: Replace busy loop with pthread_cond_timedwait().

8 years agoVarious: Simplify code using composite literals.
Florian Forster [Wed, 26 Oct 2016 18:59:32 +0000 (20:59 +0200)]
Various: Simplify code using composite literals.

8 years agoMerge branch 'collectd-5.6'
Ruben Kerkhof [Wed, 26 Oct 2016 17:33:44 +0000 (19:33 +0200)]
Merge branch 'collectd-5.6'

8 years agoMerge pull request #2005 from rpv-tomsk/issue-1996
Ruben Kerkhof [Wed, 26 Oct 2016 17:31:01 +0000 (19:31 +0200)]
Merge pull request #2005 from rpv-tomsk/issue-1996

write_http: Fixed DS type check

8 years agowrite_http: Fixed DS type check
Pavel Rochnyack [Wed, 26 Oct 2016 17:27:36 +0000 (23:27 +0600)]
write_http: Fixed DS type check
  Closes: #1996

8 years agofixed typo in the Man
Deyan Chepishev [Wed, 26 Oct 2016 15:16:29 +0000 (18:16 +0300)]
fixed typo in the Man

8 years agoModified plugin virt.c
Deyan Chepishev [Wed, 26 Oct 2016 15:10:47 +0000 (18:10 +0300)]
Modified plugin virt.c

Added options:
BlockDeviceFormat
BlockDeviceFormatBasename

8 years agosrc/daemon/utils_time.h: Use composite literals in all macros.
Florian Forster [Wed, 26 Oct 2016 15:09:17 +0000 (17:09 +0200)]
src/daemon/utils_time.h: Use composite literals in all macros.

This allows to take the address of all these macros. Unfortunately, this
means we require special macors for initializing static variables, but
fortunately this is not very commonly done.

8 years agosrc/daemon/utils_time.h: Return structs from CDTIME_T_TO_TIME{VAL,SPEC}.
Florian Forster [Wed, 26 Oct 2016 14:46:29 +0000 (16:46 +0200)]
src/daemon/utils_time.h: Return structs from CDTIME_T_TO_TIME{VAL,SPEC}.

Since these are macros use composite literals, you can even take the
address of these struct, which is very handy for calling nanosleep()
and friends.

8 years agosrc/daemon/utils_cache.c: Refactor uc_check_timeout().
Florian Forster [Wed, 26 Oct 2016 07:31:47 +0000 (09:31 +0200)]
src/daemon/utils_cache.c: Refactor uc_check_timeout().

8 years agoMerge pull request #1997 from rpv-tomsk/issue-1995
Ruben Kerkhof [Mon, 24 Oct 2016 15:36:22 +0000 (17:36 +0200)]
Merge pull request #1997 from rpv-tomsk/issue-1995

powerdns plugin: Improved error reporting

8 years agopowerdns plugin: Improved error reporting
Pavel Rochnyack [Thu, 20 Oct 2016 14:24:14 +0000 (20:24 +0600)]
powerdns plugin: Improved error reporting
Show socket path in log messages.

Closes: #1995

8 years agoMerge remote-tracking branch 'github/pr/1749'
Florian Forster [Fri, 14 Oct 2016 20:51:04 +0000 (22:51 +0200)]
Merge remote-tracking branch 'github/pr/1749'

8 years agoMerge branch 'pr/1609'
Florian Forster [Wed, 12 Oct 2016 14:57:19 +0000 (16:57 +0200)]
Merge branch 'pr/1609'

8 years agonginx plugin: Add comment, fix indentation.
Florian Forster [Wed, 12 Oct 2016 14:56:58 +0000 (16:56 +0200)]
nginx plugin: Add comment, fix indentation.

Add a comment reminding us to remove the "handled" metric in a later
major release. Also fixes mixes tab/space indenting.

8 years agocommon.c: Use _LINUX_CAPABILITY_VERSION_3 in cap_header
Thomas Deutschmann [Tue, 11 Oct 2016 14:16:23 +0000 (16:16 +0200)]
common.c: Use _LINUX_CAPABILITY_VERSION_3 in cap_header

While check_capability() function already requires
_LINUX_CAPABILITY_VERSION_3 via "#ifdef" since commit 448627953c we still
set the cap_header's version to deprecated _LINUX_CAPABILITY_VERSION. This
results in a warning like

 > capability: warning: `collectd' uses 32-bit capabilities (legacy support in use)

from the kernel when a plugin (like iptables) calls our check_capability()
function.

With this commit we will set cap_header to kernel's current capability
version (_LINUX_CAPABILITY_VERSION_3), which is default since
kernel 2.6.26.

Signed-off-by: Florian Forster <octo@collectd.org>
8 years agoMerge remote-tracking branch 'github/pr/1981'
Florian Forster [Tue, 11 Oct 2016 06:49:29 +0000 (08:49 +0200)]
Merge remote-tracking branch 'github/pr/1981'

8 years agoMerge remote-tracking branch 'github/pr/1980'
Florian Forster [Tue, 11 Oct 2016 06:36:15 +0000 (08:36 +0200)]
Merge remote-tracking branch 'github/pr/1980'

8 years agobind: fix 2 typos spotted by Debian's lintian tool
Marc Fournier [Mon, 10 Oct 2016 19:04:20 +0000 (21:04 +0200)]
bind: fix 2 typos spotted by Debian's lintian tool

authorative -> authoritative
dupliate -> duplicate

Despite this mistake is also found in the collectd-5.5 and 5.6 lines,
the fix is scheduled for 5.7.0 because it will change 2 VL's
type_instances, possibly breaking users' dashboards or alerting.

8 years agoMerge branch 'collectd-5.6'
Marc Fournier [Mon, 10 Oct 2016 19:04:03 +0000 (21:04 +0200)]
Merge branch 'collectd-5.6'

8 years agoMerge branch 'collectd-5.5' into collectd-5.6
Marc Fournier [Mon, 10 Oct 2016 18:58:19 +0000 (20:58 +0200)]
Merge branch 'collectd-5.5' into collectd-5.6

8 years agofix one typo spotted by Debian's lintian tool
Marc Fournier [Mon, 10 Oct 2016 18:50:00 +0000 (20:50 +0200)]
fix one typo spotted by Debian's lintian tool

8 years agofix a couple of typos spotted by Debian's lintian tool
Marc Fournier [Mon, 10 Oct 2016 18:55:56 +0000 (20:55 +0200)]
fix a couple of typos spotted by Debian's lintian tool

8 years agocollectd.spec: increment changelog to mention 5.6.1
Marc Fournier [Mon, 10 Oct 2016 18:47:30 +0000 (20:47 +0200)]
collectd.spec: increment changelog to mention 5.6.1

8 years agocollectd.spec: add new intel_rdt plugin
Marc Fournier [Mon, 10 Oct 2016 18:44:03 +0000 (20:44 +0200)]
collectd.spec: add new intel_rdt plugin

8 years agoprocesses plugin: Do not gather processes IO and context switch data when unneeded
Pavel Rochnyack [Mon, 10 Oct 2016 04:33:28 +0000 (10:33 +0600)]
processes plugin: Do not gather processes IO and context switch data when unneeded

8 years agoBump version number in redhat spec
Victor Demonchy [Mon, 10 Oct 2016 13:28:22 +0000 (15:28 +0200)]
Bump version number in redhat spec

8 years agoprocesses plugin: Fix counters initialization / spikes
Pavel Rochnyack [Mon, 10 Oct 2016 07:25:07 +0000 (13:25 +0600)]
processes plugin: Fix counters initialization / spikes

processes plugin generates spikes on (re)start. That is caused by
wrong counter logic: When collectd (re)started, monitored processes,
which was started before collectd, have non-zero values in
cpu_user/cpu_system/vmem_minflt/vmem_majflt, so `want_init` is false.
What produces spike.
At other hand, processes which are started between read cycles, should
be fully accounted without initialization. So, we must skip only first
cycle for these counters.

8 years agoprocesses plugin: Remove unused fields from structures
Pavel Rochnyack [Mon, 10 Oct 2016 07:07:55 +0000 (13:07 +0600)]
processes plugin: Remove unused fields from structures

Fields cpu_user, cpu_system, vmem_minflt, vmem_majflt are always equal to zero for new entries (which are passed to ps_list_add()).
Values of these fields are not used in `procstat_t` entries too. So, that can be safely removed.

8 years agonginx plugin: Report failed connections
Pavel Rochnyack [Wed, 9 Mar 2016 10:39:22 +0000 (16:39 +0600)]
nginx plugin: Report failed connections

8 years agoMerge remote-tracking branch 'github/pr/1958' into collectd-5.5
Florian Forster [Sat, 8 Oct 2016 05:48:15 +0000 (07:48 +0200)]
Merge remote-tracking branch 'github/pr/1958' into collectd-5.5

8 years agoBump version to 5.6.1; Update ChangeLog. collectd-5.6.1
Florian Forster [Fri, 7 Oct 2016 13:52:00 +0000 (15:52 +0200)]
Bump version to 5.6.1; Update ChangeLog.

8 years agoMerge branch 'collectd-5.5' into collectd-5.6
Florian Forster [Fri, 7 Oct 2016 06:51:29 +0000 (08:51 +0200)]
Merge branch 'collectd-5.5' into collectd-5.6

8 years agoMerge remote-tracking branch 'github/pr/1961' into collectd-5.5
Florian Forster [Fri, 7 Oct 2016 06:44:53 +0000 (08:44 +0200)]
Merge remote-tracking branch 'github/pr/1961' into collectd-5.5

8 years agoMerge branch 'pr/1970'
Florian Forster [Thu, 6 Oct 2016 20:41:24 +0000 (22:41 +0200)]
Merge branch 'pr/1970'

8 years agointel_rdt plugin: Filter through clang-format.
Florian Forster [Thu, 6 Oct 2016 20:39:58 +0000 (22:39 +0200)]
intel_rdt plugin: Filter through clang-format.

8 years agointel_rdt plugin: Include "collectd.h" as first header.
Florian Forster [Thu, 6 Oct 2016 20:36:53 +0000 (22:36 +0200)]
intel_rdt plugin: Include "collectd.h" as first header.

8 years agordtmon: Rename 'rdtmon' plugin to 'intel_rdt'.
Pshyk, SerhiyX [Thu, 6 Oct 2016 11:19:56 +0000 (12:19 +0100)]
rdtmon: Rename 'rdtmon' plugin to 'intel_rdt'.

Change-Id: Id23eb96fd37e6d4fc5fdf7e7ed58d9e74a33cca0
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
8 years agoMerge remote-tracking branch 'github/pr/1973'
Florian Forster [Wed, 5 Oct 2016 06:52:56 +0000 (08:52 +0200)]
Merge remote-tracking branch 'github/pr/1973'

8 years agoMerge branch 'pr/1975'
Florian Forster [Wed, 5 Oct 2016 06:51:50 +0000 (08:51 +0200)]
Merge branch 'pr/1975'

8 years agomemcached plugin: Clarify documentation and a comment.
Florian Forster [Wed, 5 Oct 2016 06:51:29 +0000 (08:51 +0200)]
memcached plugin: Clarify documentation and a comment.

8 years agordtmon: Addressed PR comments
Pshyk, SerhiyX [Tue, 4 Oct 2016 14:31:58 +0000 (15:31 +0100)]
rdtmon: Addressed PR comments

1. use size_t type for all arrays and indexes
2. change malloc()/memset() to calloc()
3. fix minor code style issues
4. add range validation of core id values
5. use 'bytes' type for LLC value
6. add 'memory_bandwidth' type for MBM values

Change-Id: I5e577dcda19bc9799e7b79f9d0334c6f21b60f0d
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
8 years agowrite_graphite: remove linking against libyajl (#1976)
Marc Fournier [Tue, 4 Oct 2016 21:46:45 +0000 (23:46 +0200)]
write_graphite: remove linking against libyajl (#1976)

write_graphite doesn't have anything to do with json. This seems to have
been accidentally added in 30c1111.

Fixes https://bugs.debian.org/839771

8 years agomemcached: Added Address option
Pavel Rochnyack [Tue, 4 Oct 2016 18:54:34 +0000 (00:54 +0600)]
memcached: Added Address option

8 years agoCONTRIBUTING.md: Note that plugins must be added to README.
Florian Forster [Tue, 4 Oct 2016 18:56:05 +0000 (20:56 +0200)]
CONTRIBUTING.md: Note that plugins must be added to README.

8 years agoREADME: Move mqtt and grpc to the right section.
Florian Forster [Tue, 4 Oct 2016 14:39:57 +0000 (16:39 +0200)]
README: Move mqtt and grpc to the right section.

8 years agoREADME: Improve build requirements.
Florian Forster [Tue, 4 Oct 2016 08:42:14 +0000 (10:42 +0200)]
README: Improve build requirements.

8 years agodocs/BUILD.java.md: Move java build instructions out of README.
Florian Forster [Tue, 4 Oct 2016 08:29:51 +0000 (10:29 +0200)]
docs/BUILD.java.md: Move java build instructions out of README.

8 years agodocs/BUILD.dpdkstat.md: Move dpdkstat build instructions out of README.
Florian Forster [Tue, 4 Oct 2016 08:19:48 +0000 (10:19 +0200)]
docs/BUILD.dpdkstat.md: Move dpdkstat build instructions out of README.

8 years agocollectd.spec: the dpdk is actually called dpdkstat...
Marc Fournier [Tue, 4 Oct 2016 18:53:00 +0000 (20:53 +0200)]
collectd.spec: the dpdk is actually called dpdkstat...

8 years agocollectd.spec: add dpdk plugin
Marc Fournier [Mon, 3 Oct 2016 20:16:23 +0000 (22:16 +0200)]
collectd.spec: add dpdk plugin

8 years agogrpc plugin: Fix compile error.
Florian Forster [Fri, 30 Sep 2016 14:01:54 +0000 (16:01 +0200)]
grpc plugin: Fix compile error.

Weirdly, this only surfaces when building with CFLAGS="-O0 -g".

In file included from ./daemon/common.h:33:0,
                 from grpc.cc:44:
grpc.cc: In member function 'virtual grpc::Status CollectdImpl::PutValues(grpc::ServerContext*, grpc::ServerReader<collectd::PutValuesRequest>*, collectd::PutValuesResponse*)':
./daemon/plugin.h:113:56: sorry, unimplemented: non-trivial designated initializers not supported
 #define VALUE_LIST_INIT { .values = NULL, .meta = NULL }
                                                        ^
grpc.cc:294:22: note: in expansion of macro 'VALUE_LIST_INIT'
    value_list_t vl = VALUE_LIST_INIT;
                      ^

8 years agordtmon: Fix formatting of collectd pod file.
Pshyk, SerhiyX [Tue, 27 Sep 2016 11:02:30 +0000 (12:02 +0100)]
rdtmon: Fix formatting of collectd pod file.

Change-Id: I94d5e7c877bd99a5da8e725efef0bd700f339016
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
8 years agordtmon: Implement RDT monitoring plugin
Pshyk, SerhiyX [Mon, 19 Sep 2016 13:21:43 +0000 (14:21 +0100)]
rdtmon: Implement RDT monitoring plugin

The rdtmon plugin collects information provided by monitoring features of
Intel Resource Director Technology (Intel(R) RDT) like Cache Monitoring
Technology (CMT), Memory Bandwidth Monitoring (MBM).

Change-Id: Ie45344c1035c522fcd918a1dd2427a2da2e173bb
Signed-off-by: Serhiy Pshyk <serhiyx.pshyk@intel.com>
8 years agoCONTRIBUTING.md: Fix typos.
Florian Forster [Wed, 28 Sep 2016 21:12:43 +0000 (23:12 +0200)]
CONTRIBUTING.md: Fix typos.

8 years agoMerge branch 'collectd-5.6'
Florian Forster [Wed, 28 Sep 2016 20:13:08 +0000 (22:13 +0200)]
Merge branch 'collectd-5.6'

8 years agosrc/daemon/utils_cache.h: Improve documentation for uc_iterator_get_next().
Florian Forster [Wed, 28 Sep 2016 11:54:00 +0000 (13:54 +0200)]
src/daemon/utils_cache.h: Improve documentation for uc_iterator_get_next().

8 years agosrc/daemon/plugin.[ch]: Make the user_data_t* const.
Florian Forster [Wed, 28 Sep 2016 19:27:54 +0000 (21:27 +0200)]
src/daemon/plugin.[ch]: Make the user_data_t* const.

That is, user_data_t* passed to register_* functions. The actual callbacks
are still getting a user_data_t* since they, in theory, would be able to
modify the pointer stored in .data.

Issue: #1954

8 years agosrc/daemons/plugin.c: Don't modify user_data_t* in plugin_register_flush().
Florian Forster [Wed, 28 Sep 2016 19:23:49 +0000 (21:23 +0200)]
src/daemons/plugin.c: Don't modify user_data_t* in plugin_register_flush().

Fixes: #1954

8 years agoRevert "write_graphite: remove #ifndefs"
Florian Forster [Wed, 28 Sep 2016 18:58:04 +0000 (20:58 +0200)]
Revert "write_graphite: remove #ifndefs"

This reverts commit de80d27fe7023c2e377674b4cc341e539388b98e.

Fixes: #1953

8 years agowrite_http plugin: Don't register a flush callback unconditionally.
Florian Forster [Wed, 28 Sep 2016 15:53:34 +0000 (17:53 +0200)]
write_http plugin: Don't register a flush callback unconditionally.

Fixes: #1955

8 years agoMerge remote-tracking branch 'github/pr/1962'
Florian Forster [Wed, 28 Sep 2016 13:24:52 +0000 (15:24 +0200)]
Merge remote-tracking branch 'github/pr/1962'

8 years agoMerge remote-tracking branch 'github/pr/1956'
Florian Forster [Wed, 28 Sep 2016 13:23:05 +0000 (15:23 +0200)]
Merge remote-tracking branch 'github/pr/1956'

8 years agoMerge remote-tracking branch 'github/pr/1952'
Florian Forster [Wed, 28 Sep 2016 13:21:04 +0000 (15:21 +0200)]
Merge remote-tracking branch 'github/pr/1952'

8 years agocpu: Fix cpu aggregation on AIX change codeing style
Chao Yang [Mon, 26 Sep 2016 15:13:57 +0000 (11:13 -0400)]
cpu: Fix cpu aggregation on AIX change codeing style

8 years agocpu: Fix cpu aggregation on AIX
Chao Yang [Fri, 23 Sep 2016 13:36:00 +0000 (09:36 -0400)]
cpu: Fix cpu aggregation on AIX

8 years agodpdkstat: Changed log severity to Error
Taras Chornyi [Mon, 26 Sep 2016 09:37:01 +0000 (10:37 +0100)]
dpdkstat: Changed log severity to Error

8 years agoadd missing ;
Akos Vandra [Sun, 25 Sep 2016 15:01:11 +0000 (17:01 +0200)]
add missing ;

8 years agoAbility to run in tainted mode for spamassasin plugin.
Akos Vandra [Sun, 25 Sep 2016 14:25:41 +0000 (16:25 +0200)]
Ability to run in tainted mode for spamassasin plugin.

8 years agoUse readdir() instead of the deprecated readdir_r().
Sebastian Harl [Sun, 25 Sep 2016 11:40:57 +0000 (13:40 +0200)]
Use readdir() instead of the deprecated readdir_r().

Cf. https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html

8 years agoDeclare loop variable in the loop expression.
Sebastian Harl [Sun, 25 Sep 2016 11:23:43 +0000 (13:23 +0200)]
Declare loop variable in the loop expression.

8 years agovalgrind.FreeBSD.suppress: Suppress bogus invalid read in all call chains.
Sebastian Harl [Fri, 10 Jun 2016 19:59:03 +0000 (21:59 +0200)]
valgrind.FreeBSD.suppress: Suppress bogus invalid read in all call chains.

8 years agoLink libcmds (used for testing) against -lm.
Sebastian Harl [Fri, 10 Jun 2016 18:50:04 +0000 (20:50 +0200)]
Link libcmds (used for testing) against -lm.

FreeBSD requires this for isfinite().

8 years agocommand parser: Add support for parser options.
Sebastian Harl [Wed, 8 Jun 2016 22:37:58 +0000 (00:37 +0200)]
command parser: Add support for parser options.

These can be used to tune the parser behavior. For now, there's an option to
specify the default hostname in an identifier.

8 years agoparse_identifier: Make hostname optional, if a default has been specified.
Sebastian Harl [Wed, 8 Jun 2016 22:36:18 +0000 (00:36 +0200)]
parse_identifier: Make hostname optional, if a default has been specified.

8 years agoutils_cmds_test: Add various unit tests for the command parser.
Sebastian Harl [Sun, 5 Jun 2016 19:43:56 +0000 (21:43 +0200)]
utils_cmds_test: Add various unit tests for the command parser.

8 years agocommand parser: Set command type to UNKNOWN upon failure.
Sebastian Harl [Sun, 5 Jun 2016 19:41:39 +0000 (21:41 +0200)]
command parser: Set command type to UNKNOWN upon failure.

8 years agoPUTVAL command: Fix memory leaks and duplicate frees.
Sebastian Harl [Sun, 5 Jun 2016 19:40:57 +0000 (21:40 +0200)]
PUTVAL command: Fix memory leaks and duplicate frees.

8 years agoLISTVAL command: Add missing cmd_destroy_listval().
Sebastian Harl [Sun, 5 Jun 2016 19:40:13 +0000 (21:40 +0200)]
LISTVAL command: Add missing cmd_destroy_listval().

8 years agocommand parser: Add support for the GETVAL command.
Sebastian Harl [Sun, 5 Jun 2016 16:39:36 +0000 (18:39 +0200)]
command parser: Add support for the GETVAL command.

Implement the generic interface for GETVAL and switch the GETVAL
implementation to use the generic interface.

8 years agocommand parser: Add support for the LISTVAL command.
Sebastian Harl [Sun, 5 Jun 2016 16:08:47 +0000 (18:08 +0200)]
command parser: Add support for the LISTVAL command.

Implement the generic interface for LISTVAL and switch the LISTVAL
implementation to use the generic interface.

8 years agocommand parser: Add support for the FLUSH command.
Sebastian Harl [Sun, 5 Jun 2016 15:50:58 +0000 (17:50 +0200)]
command parser: Add support for the FLUSH command.

That is, implement the generic interface for FLUSH and switch the FLUSH
implementation to use the generic interface.

8 years agoplugin.h: Introduce the identifier_t type with pointer fields.
Sebastian Harl [Sun, 5 Jun 2016 14:44:39 +0000 (16:44 +0200)]
plugin.h: Introduce the identifier_t type with pointer fields.

This serves two purposes:
 - Allow field values of arbitrary length.
 - Reuse the identifier in other places.

Renamed identifier_t from utils_vl_lookup to lookup_identifier_t.

8 years agocommand parser: Add a vector-based interface.
Sebastian Harl [Sun, 5 Jun 2016 13:23:41 +0000 (15:23 +0200)]
command parser: Add a vector-based interface.

The new interface expects a parsed list of fields. Parsing of input buffers
is now done centrally in the generic code and the existing parser is a
wrapper around this and the new vector-based parser. The actual command
parsers (PUTVAL for now) receive the parsed list of fields.

As a side-effect, this changes the parser behavior a little:

 - "foo=a string with spaces or \\ special characters" is now valid syntax
   for specifying options in addition to foo="value with spaces, etc.".
 - foo= is now a valid option even without quotes around the empty value.

8 years agoAdd a generic interface for parsing the text protocol.
Sebastian Harl [Sun, 5 Jun 2016 11:59:49 +0000 (13:59 +0200)]
Add a generic interface for parsing the text protocol.

Implement it for PUTVAL for now.

The text protocol is used in multiple places and the parser will avoid code
duplication in client programs which can, instead, use it to generate the
respective requests.

Use the 'cmd_' prefix for public functions related to command handling.