Florian Forster [Tue, 7 Oct 2008 14:46:11 +0000 (16:46 +0200)]
oracle plugin: Added an exception to the GPL to allow linking with the OCI.
Florian Forster [Tue, 7 Oct 2008 13:38:24 +0000 (15:38 +0200)]
Build system: Add a check for the OCI interface and add the oracle plugin.
Florian Forster [Tue, 7 Oct 2008 13:37:24 +0000 (15:37 +0200)]
oracle plugin: Add a plugin to query Oracle databases.
Florian Forster [Mon, 29 Sep 2008 12:57:38 +0000 (14:57 +0200)]
snmp plugin: Use the complaint mechanism for reporting connection errors.
In big setups these messages flood the logfile and make it unreadable.
Signed-off-by: Florian Forster <octo@noris.net>
Florian Forster [Mon, 29 Sep 2008 12:56:43 +0000 (14:56 +0200)]
src/utils_complain.h: Rename `C_COMPLAIN_INIT' to `C_COMPLAIN_INIT_STATIC'.
Because it can only be used when initializing during declaration. A macro
for initializing a struct by pointer as been added with the previous name,
i. e. `C_COMPLAIN_INIT(c)'.
Signed-off-by: Florian Forster <octo@noris.net>
Florian Forster [Wed, 17 Sep 2008 12:19:10 +0000 (14:19 +0200)]
interface plugin: Use src/utils_ignorelist.[ch].
The interface plugin was still using the (very first) implementation of
that ignore functionality - without the regex support :/
Florian Forster [Sun, 14 Sep 2008 14:25:37 +0000 (16:25 +0200)]
rrdcached plugin: Add the four new statistics that were added to RRDCacheD.
Florian Forster [Sun, 14 Sep 2008 14:25:08 +0000 (16:25 +0200)]
Merge branch 'master' into ff/rrdcached
Conflicts:
src/rrdtool.c
Florian Forster [Fri, 5 Sep 2008 08:50:16 +0000 (10:50 +0200)]
configure: Allow `--with-libperl=/path/to/binary', too.
That way one can specify an alternative path, without setting the global
`CFLAGS' and `LDFLAGS' variables.
Sebastian Harl [Thu, 4 Sep 2008 13:55:30 +0000 (15:55 +0200)]
configure: Get the check for libperl in sync with the way it's used.
* Define PERL_NO_GET_CONTEXT.
* Use the API functions without the Perl_ prefix.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Thu, 4 Sep 2008 13:01:23 +0000 (15:01 +0200)]
Merge branch 'collectd-4.4'
Florian Forster [Thu, 4 Sep 2008 13:01:06 +0000 (15:01 +0200)]
Merge branch 'collectd-4.3' into collectd-4.4
Florian Forster [Thu, 4 Sep 2008 13:00:40 +0000 (15:00 +0200)]
processes plugin: Fix a format string.
Florian Forster [Thu, 4 Sep 2008 12:58:57 +0000 (14:58 +0200)]
apple_sensors plugin: Add a missing semicolon.
Florian Forster [Thu, 4 Sep 2008 08:52:34 +0000 (10:52 +0200)]
Bumped version to 4.5.0.
Florian Forster [Thu, 4 Sep 2008 08:49:13 +0000 (10:49 +0200)]
Merge branch 'collectd-4.4'
Conflicts:
ChangeLog
Sebastian Harl [Tue, 2 Sep 2008 11:03:08 +0000 (13:03 +0200)]
ChangeLog: Added an entry about the ability to configure Perl plugins.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 2 Sep 2008 11:02:30 +0000 (13:02 +0200)]
ChangeLog: Be slightly more specific about the features of the PostgreSQL plugin.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Mon, 1 Sep 2008 11:37:27 +0000 (13:37 +0200)]
Bumped version to 4.4.3; Updated ChangeLog.
Florian Forster [Mon, 1 Sep 2008 06:04:10 +0000 (08:04 +0200)]
Merge branch 'collectd-4.3' into collectd-4.4
Conflicts:
ChangeLog
version-gen.sh
Florian Forster [Mon, 1 Sep 2008 06:01:33 +0000 (08:01 +0200)]
ChangeLog: Entry for 4.3.4: Bring plugins in alphabetical order.
Florian Forster [Sun, 31 Aug 2008 13:11:15 +0000 (15:11 +0200)]
Bumped version to 4.3.3; Updated ChangeLog.
Alessandro Iurlano [Thu, 28 Aug 2008 19:16:17 +0000 (21:16 +0200)]
filecount plugin: s/\<strncpy\>/sstrncpy/g
Florian Forster [Wed, 27 Aug 2008 15:46:05 +0000 (17:46 +0200)]
Collectd::Unixsock: Update `putnotif', fix a bug in `getval', better debug output.
The `putnotif' method now handles identifiers and options with spaces
correctly. The `getval' plugin now reads the returned data line wise,
which is the right thing to do anyway. The new `_debug' function prints
debugging output if the (module)global $Debug variable is set.
Florian Forster [Wed, 27 Aug 2008 15:42:43 +0000 (17:42 +0200)]
unixsock plugin: Improve two debug messages.
Florian Forster [Wed, 27 Aug 2008 15:42:26 +0000 (17:42 +0200)]
collectd-{exec,unixsock}(5): Documented how to pass identifiers with spaces.
Florian Forster [Wed, 27 Aug 2008 15:41:46 +0000 (17:41 +0200)]
src/utils_cmd_putnotif.[ch]: Change parsing to allow quoted strings.
This completes all the commands, now quoted strings should be accepted
anywhere.
Florian Forster [Wed, 27 Aug 2008 15:38:40 +0000 (17:38 +0200)]
src/utils_parse_option.c: Null-terminate parsed quoted strings.
Florian Forster [Wed, 27 Aug 2008 14:00:01 +0000 (16:00 +0200)]
src/Makefile.am: Link the exec plugin with utils_parse_option.
Florian Forster [Wed, 27 Aug 2008 13:59:22 +0000 (15:59 +0200)]
src/utils_cmd_listval.[ch]: Use the new parsing mechanism here, too.
Florian Forster [Wed, 27 Aug 2008 13:49:09 +0000 (15:49 +0200)]
src/utils_cmd_putval.[ch]: Allow identifiers to include spaces.
Florian Forster [Wed, 27 Aug 2008 10:08:33 +0000 (12:08 +0200)]
snmp plugin: Fix an off by one error.
The last character of an table instance was truncated. Fortunately empty
strings were caught, so that uninitialized memory was never accessed.
This patch also reverts
f782b378: If returning with an error when a string
is empty causes the entire read to fail.
Florian Forster [Wed, 27 Aug 2008 09:59:53 +0000 (11:59 +0200)]
src/utils_cmd_getval.[ch]: Fix handling of identifiers with spaces.
The getval handler now uses the `parse_string' function in
`utils_parse_option' to handle quoted strings correctly.
Florian Forster [Wed, 27 Aug 2008 09:58:09 +0000 (11:58 +0200)]
src/utils_parse_option.[ch]: Add `parse_string'.
This function can be used by the command handlers to parse simple string
arguments. It's used by `parse_option', too, to avoid redundand code.
Signed-off-by: Florian Forster <octo@noris.net>
Florian Forster [Wed, 27 Aug 2008 08:50:44 +0000 (10:50 +0200)]
src/collectd.conf.in: Add the filecount plugin.
Florian Forster [Wed, 27 Aug 2008 08:13:24 +0000 (10:13 +0200)]
Merge branch 'collectd-4.4'
Florian Forster [Wed, 27 Aug 2008 08:12:55 +0000 (10:12 +0200)]
Merge branch 'collectd-4.3' into collectd-4.4
Florian Forster [Wed, 27 Aug 2008 08:11:23 +0000 (10:11 +0200)]
collectd.conf(5): onewire plugin: Added a note about working chips.
Florian Forster [Wed, 27 Aug 2008 08:05:37 +0000 (10:05 +0200)]
collectd.conf(5): onewire plugin: Mark the `Device' option as required.
Florian Forster [Wed, 27 Aug 2008 08:05:02 +0000 (10:05 +0200)]
onewire plugin: Remove the "Alias" config option.
It's not implemented and not documented and it's easy enough to add back
in when somebody cares to implement it.
Florian Forster [Wed, 27 Aug 2008 08:04:19 +0000 (10:04 +0200)]
onewire plugin: Imported the code for DS2409 hubs.
Florian Forster [Wed, 27 Aug 2008 06:55:49 +0000 (08:55 +0200)]
collectd.conf(5), README: Added a note that the onewire plugin is experimental.
Florian Forster [Wed, 27 Aug 2008 06:55:19 +0000 (08:55 +0200)]
ChangeLog: Added the onewire plugin.
It's marked as experimental.
Sebastian Harl [Tue, 26 Aug 2008 14:16:55 +0000 (16:16 +0200)]
postgresql plugin: Check for and report query redefinitions.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 14:15:37 +0000 (16:15 +0200)]
postgresql plugin: Check for and report MinPGVersion > MaxPGVersion.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 14:14:36 +0000 (16:14 +0200)]
postgresql plugin: Disable queries that do not include an SQL query string.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 14:12:01 +0000 (16:12 +0200)]
collectd.conf(5): Documented the postgresql {Min,Max}PGVersion options.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 14:11:26 +0000 (16:11 +0200)]
postgresql_default.conf: Split "queries" query into two versions.
The "n_tup_hot_upd" column has been added in 8.3. The two versions of the
"queries" query now take that into account by defining different SQL queries
for versions up to 8.2.99 and versions starting with 8.3.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 14:10:20 +0000 (16:10 +0200)]
postgresql_default.conf: Limit query "table_states" to versions >= 8.3.
The "n_live_tup" and "n_dead_tup" columns of the pg_stat_tables view were not
available before that version.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 14:09:27 +0000 (16:09 +0200)]
postgresql plugin: Added {Min,Max}PGVersion configuration options.
Those options may be used to specify the minimum and maximum version of
PostgreSQL which is required for some query. This may be used to automatically
configure the plugin for a heterogeneous environment while using the same
configuration file on all hosts.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 14:07:48 +0000 (16:07 +0200)]
postgresql plugin: Renamed config_set() to config_set_s().
The latter name includes the type (string) of the data being handled and,
thus, allows functions handling other types to be named in a consistent way.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 13:52:11 +0000 (15:52 +0200)]
.gitignore: Added collectd-nagios, collectdmon and perl stuff.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 13:51:27 +0000 (15:51 +0200)]
collectd.conf.in: Moved logging plugins to the top of the file.
This will make all logging output of all other plugins available.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 13:49:37 +0000 (15:49 +0200)]
ChangeLog: Added the changes to the perl plugin.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 10:37:44 +0000 (12:37 +0200)]
collectd-perl(5): Document the <Plugin> configuration block.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 09:56:31 +0000 (11:56 +0200)]
perl plugin: Added "<Plugin>" configuration block.
Similar to the global "<Plugin>" blocks this may be used to configure Perl
plugins. The oconfig_item_t object is converted to a Perl hash which will be
passed on to the registered configuration callback. A configuration
callback is registered using the TYPE_CONFIG identifier.
The Perl representation of the oconfig_item_t object looks like this:
{
'key' => '<key>',
'values' => [ '<val1>', '<val2>', ... ],
'children' => [ { ... }, { ... }, ... ]
}
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Tue, 26 Aug 2008 09:52:53 +0000 (11:52 +0200)]
perl plugin: Re-get the perl interpreter after parsing each configuration option.
The current perl interpreter might change while parsing the configuration
(e.g. the first interpreter is created by the "LoadPlugin" option), so this is
to make sure that we're using the right interpreter at all times.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Tue, 26 Aug 2008 16:56:24 +0000 (18:56 +0200)]
configure.in: Add the filecount plugin to the status output.
Sebastian Harl [Tue, 26 Aug 2008 09:51:54 +0000 (11:51 +0200)]
configure.in, filecount.c: Removed all left-over occurrences of "qmail".
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Tue, 26 Aug 2008 15:59:18 +0000 (17:59 +0200)]
contrib/snmp-probe-host.px: Don't fail silently, but outupt an empty config.
Florian Forster [Tue, 26 Aug 2008 15:58:28 +0000 (17:58 +0200)]
contrib/snmp-probe-host.px: Work-around for Windows systems.
They don't return an error, but `success' and a string stating
NOSUCHOBJECT.
Just great.
Florian Forster [Tue, 26 Aug 2008 15:57:38 +0000 (17:57 +0200)]
contrib/snmp-probe-host.px: Fix for `table' data without instance.
Jarle Bjørgeengen [Mon, 25 Aug 2008 20:30:27 +0000 (22:30 +0200)]
Collectd::Unixsock: Allow passing of `Interval' to `PUTVAL'.
Florian Forster [Mon, 25 Aug 2008 18:49:19 +0000 (20:49 +0200)]
collectd.conf(5): Fix an example for the tail plugin.
Resolves: #27
Florian Forster [Mon, 25 Aug 2008 18:47:39 +0000 (20:47 +0200)]
Merge branch 'master' of /var/lib/git/collectd
Florian Forster [Mon, 25 Aug 2008 18:03:12 +0000 (20:03 +0200)]
memcached plugin: Wait for a *little* longer for the memcached to answer.
poll(2) takes a timeout in milliseconds, not seconds. Multiply
`interval_g' by 1000 before passing it to `poll'.
Thanks to Joost Cassee <joost at cassee.net> for helping debug this.
Florian Forster [Mon, 25 Aug 2008 18:02:37 +0000 (20:02 +0200)]
TODO: Added what is left to do for 4.5.
Florian Forster [Mon, 25 Aug 2008 13:36:02 +0000 (15:36 +0200)]
filecount plugin: Make absolutely sure `status' is never read uninitialized.
Florian Forster [Sun, 24 Aug 2008 19:51:54 +0000 (21:51 +0200)]
ChangeLog: Updated for 4.5.0.
Florian Forster [Sun, 24 Aug 2008 09:00:37 +0000 (11:00 +0200)]
README: Added the filecount plugin.
Florian Forster [Sun, 24 Aug 2008 09:00:17 +0000 (11:00 +0200)]
collectd.conf(5): Documented the filecount plugin.
Florian Forster [Sun, 24 Aug 2008 08:59:40 +0000 (10:59 +0200)]
Build system: Renamed the qmail plugin to filecount.
Florian Forster [Sun, 24 Aug 2008 08:58:39 +0000 (10:58 +0200)]
filecount plugin: Substitute slashes with underscores.
Not dashes. Somehow I now like underscores better.
Florian Forster [Sat, 23 Aug 2008 12:56:00 +0000 (14:56 +0200)]
filecount plugin: Renamed the `qmail' plugin to `filecount'.
Florian Forster [Sat, 23 Aug 2008 12:53:41 +0000 (14:53 +0200)]
qmail plugin: Made the counting of files more generalized.
Florian Forster [Sat, 23 Aug 2008 12:35:24 +0000 (14:35 +0200)]
src/common.[ch]: Pass user data to `walk_directory'.
`walk_directory' in turn passes the directory name and the user data
back to the callback functions.
Florian Forster [Sat, 23 Aug 2008 10:02:46 +0000 (12:02 +0200)]
AUTHORS: Add Alessandro Iurlano.
Florian Forster [Sat, 23 Aug 2008 10:00:59 +0000 (12:00 +0200)]
AUTHORS: Reformatted the list of contributors.
It's now sorted by the names of the contributors, not by the name of the
plugins they touched. That just messed up with time.
Florian Forster [Fri, 22 Aug 2008 14:12:41 +0000 (16:12 +0200)]
rrdtool plugin: Implemented the `WritesPerSecond' option.
This option lets you slow down the `queue thread' within the rrdtool
plugin, so that the system stays responsive while writing all values
to disk. When FLUSH'ing values and during shutdown this limit is not
in effect.
Florian Forster [Thu, 21 Aug 2008 15:25:01 +0000 (17:25 +0200)]
Merge branch 'master' of git://git.verplant.org/collectd
Florian Forster [Thu, 21 Aug 2008 15:24:40 +0000 (17:24 +0200)]
Merge branch 'collectd-4.4'
Florian Forster [Thu, 21 Aug 2008 15:24:32 +0000 (17:24 +0200)]
Merge branch 'collectd-4.3' into collectd-4.4
Florian Forster [Thu, 21 Aug 2008 15:19:44 +0000 (17:19 +0200)]
src/plugin.c: Fix indentation.
Change functions, that were indented using spaces, to *only* use spaces
(instead of a mix of both, spaces and tabs) but leave all the rest, that
is indented using tabs, as it is.
Hope this is a good compromise between consistency and breaking patches
for no good reason ;)
Florian Forster [Thu, 21 Aug 2008 15:14:29 +0000 (17:14 +0200)]
contrib/snmp-probe-host.px: Added script to semi-automatically create SNMP "host" blocks.
Details can be found in the inline documentation ("POD").
Mohammad Ebrahim Mohammadi Panah [Thu, 21 Aug 2008 14:52:52 +0000 (16:52 +0200)]
collectd-exec(5): Fix two typos.
Florian Forster [Thu, 21 Aug 2008 14:08:55 +0000 (16:08 +0200)]
src/plugin.c: Include the shared object when reporting errors with `lt_dlopen'.
Sebastian Harl [Thu, 21 Aug 2008 09:15:02 +0000 (11:15 +0200)]
Replaced plugin_flush_all(t) with plugin_flush(NULL, t, NULL).
There is nothing that plugin_flush_all() would do but plugin_flush() wouldn't,
so this was redundant.
plugin_flush_all() has been removed completely.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Thu, 21 Aug 2008 08:54:43 +0000 (10:54 +0200)]
src/plugin.[ch]: Removed legacy function plugin_flush_one().
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Thu, 21 Aug 2008 08:47:18 +0000 (10:47 +0200)]
perl plugin: Pass on identifiers to Perl flush callbacks.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Thu, 21 Aug 2008 08:46:36 +0000 (10:46 +0200)]
collectd-perl(5): Added a note about the stability of the API.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Thu, 21 Aug 2008 08:45:43 +0000 (10:45 +0200)]
perl plugin, Collectd.pm: Added support for flushing of specific identifiers.
plugin_flush() now accepts three parameters, 'timeout', 'plugins' and
'identifiers'. The meaning of the former two did not change. 'identifiers' may
be a string or an array of strings specifying identifiers that are to be
passed along to the plugins' flush callbacks. This brings the Perl API in sync
with the C API.
plugin_flush_one() and plugin_flush_all() have been re-implemented in plain
Perl and marked as deprecated. A new XSUB, Collectd::_plugin_flush, has been
added which provides a small wrapper around the C implementation of
plugin_flush().
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Thu, 21 Aug 2008 07:38:18 +0000 (09:38 +0200)]
src/utils_parse_option.c: Check for the terminating null-byte, too.
I was so focused on values with spaces, that I forgot to test trivial
cases :/
Florian Forster [Thu, 21 Aug 2008 07:26:21 +0000 (09:26 +0200)]
unixsock plugin et alii: Allow passing of arbitrary identifiers to the FLUSH command.
Due to a bug in the parsing of the FLUSH command, identifiers which
contained spaces would not be accepted. This patch introduces
src/utils_parse_option.[ch], which strips off an option in the form of
name="value" from the beginning of a buffer (removing leading and
trailing spaces) and returns the values found.
The Collectd::Unixsock module is updated to automatically quote
identifiers when necessary.
Many other commands may be effected by this bug, too. They'll be fixed
soon.
Florian Forster [Wed, 20 Aug 2008 10:16:39 +0000 (12:16 +0200)]
src/plugin.c: Reduced `plugin_flush_one' to a tiny legacy function.
Florian Forster [Wed, 20 Aug 2008 10:06:25 +0000 (12:06 +0200)]
src/plugin.c: Pass a second argument to the `flush' callbacks.
The flush callbacks not take two parameters, this was forgotten here.
Florian Forster [Wed, 20 Aug 2008 10:01:50 +0000 (12:01 +0200)]
src/plugin.c: Fix an endless loop in `plugin_flush'.
Since this function is most often called from the unixsock plugin,
which creates a separate thread for handling connections, this did
not effect the rest of the daemon and was kind of tricky to track
down. :/ What a stupid mistake :(
Florian Forster [Wed, 20 Aug 2008 09:52:29 +0000 (11:52 +0200)]
memcached plugin: Remove an unused variable.
Oops.
Florian Forster [Wed, 20 Aug 2008 07:21:37 +0000 (09:21 +0200)]
Merge branch 'collectd-4.4'
Conflicts:
src/collectd.conf.pod
Florian Forster [Wed, 20 Aug 2008 07:20:56 +0000 (09:20 +0200)]
Merge branch 'collectd-4.3' into collectd-4.4
Florian Forster [Tue, 19 Aug 2008 19:48:45 +0000 (21:48 +0200)]
memcached plugin: Fix a possible file descriptor leak.
Not sure if this fixes the reported bug, but it might.. Feedback would be
welcome.
References: #26