collectd.git
8 years agoMerge pull request #1831 from rubenk/ai_hints-cleanup
Ruben Kerkhof [Wed, 3 Aug 2016 08:06:55 +0000 (10:06 +0200)]
Merge pull request #1831 from rubenk/ai_hints-cleanup

Ai hints cleanup

8 years agotreewide: Use AF_UNSPEC consistently
Ruben Kerkhof [Tue, 2 Aug 2016 15:16:58 +0000 (17:16 +0200)]
treewide: Use AF_UNSPEC consistently

.ai_family expects an address family, not a protocol family.
Note that on most platforms these constants are the same, so this
is purely cosmetic.

8 years agono need to initialize result ptr of getaddrinfo
Ruben Kerkhof [Tue, 2 Aug 2016 14:42:23 +0000 (16:42 +0200)]
no need to initialize result ptr of getaddrinfo

8 years agotreewide: use designated initializers for ai_hints
Ruben Kerkhof [Tue, 2 Aug 2016 14:27:17 +0000 (16:27 +0200)]
treewide: use designated initializers for ai_hints

8 years agoxencpu plugin: Remove unnecessary semicolons.
Florian Forster [Wed, 3 Aug 2016 05:19:28 +0000 (07:19 +0200)]
xencpu plugin: Remove unnecessary semicolons.

8 years agotreewide: stop checking for AI_PASSIVE
Ruben Kerkhof [Tue, 2 Aug 2016 13:19:49 +0000 (15:19 +0200)]
treewide: stop checking for AI_PASSIVE

I think it's safe to assume that if you have getaddrinfo, you have
AI_PASSIVE. My copy of Stevens from 1998 already describes it.

8 years agotreewide: stop checking for AI_ADDRCONFIG
Ruben Kerkhof [Tue, 2 Aug 2016 13:17:11 +0000 (15:17 +0200)]
treewide: stop checking for AI_ADDRCONFIG

It has been in RFC 3494 since 2003 and all the platforms
we care about have it.

8 years agoFix build on Solaris 10
Ruben Kerkhof [Tue, 2 Aug 2016 11:44:55 +0000 (13:44 +0200)]
Fix build on Solaris 10

8 years agoFix result if no protoc 3 found
Ruben Kerkhof [Tue, 2 Aug 2016 11:43:31 +0000 (13:43 +0200)]
Fix result if no protoc 3 found

8 years agoMerge pull request #1829 from rubenk/clang-format
Ruben Kerkhof [Tue, 2 Aug 2016 11:16:17 +0000 (13:16 +0200)]
Merge pull request #1829 from rubenk/clang-format

Add a config file for clang-format

8 years agoMerge pull request #1821 from rubenk/memset
Ruben Kerkhof [Tue, 2 Aug 2016 11:15:52 +0000 (13:15 +0200)]
Merge pull request #1821 from rubenk/memset

treewide: replace memset to 0 with initializers

8 years agopf: no need to zero-initialize status
Ruben Kerkhof [Tue, 2 Aug 2016 10:04:09 +0000 (12:04 +0200)]
pf: no need to zero-initialize status

The kernel bcopies properly sized data into this struct

8 years agoFix double declaration
Ruben Kerkhof [Tue, 2 Aug 2016 08:27:01 +0000 (10:27 +0200)]
Fix double declaration

8 years agoipmi: fix building with older gcc's
Ruben Kerkhof [Tue, 2 Aug 2016 07:52:43 +0000 (09:52 +0200)]
ipmi: fix building with older gcc's

8 years agoAdd a config file for clang-format
Ruben Kerkhof [Mon, 1 Aug 2016 15:48:59 +0000 (17:48 +0200)]
Add a config file for clang-format

To use it, use `clang-format --style=file`

8 years agoTry if this fixes the build on RHEL{5,6}
Ruben Kerkhof [Mon, 1 Aug 2016 21:19:10 +0000 (23:19 +0200)]
Try if this fixes the build on RHEL{5,6}

8 years agoceph plugin: no need to zero the whole array
Ruben Kerkhof [Mon, 1 Aug 2016 20:31:31 +0000 (22:31 +0200)]
ceph plugin: no need to zero the whole array

also use '\0' not 0 while we're here

8 years agoipmi: use C99 designated initializer
Ruben Kerkhof [Mon, 1 Aug 2016 20:22:35 +0000 (22:22 +0200)]
ipmi: use C99 designated initializer

8 years agoapache: no need to zero-initialize
Ruben Kerkhof [Mon, 1 Aug 2016 20:15:25 +0000 (22:15 +0200)]
apache: no need to zero-initialize

8 years agoamqp: use C99 designated initializers
Ruben Kerkhof [Mon, 1 Aug 2016 20:05:11 +0000 (22:05 +0200)]
amqp: use C99 designated initializers

8 years agoamqp: no need to zero-initialize buffer
Ruben Kerkhof [Mon, 1 Aug 2016 19:55:13 +0000 (21:55 +0200)]
amqp: no need to zero-initialize buffer

all messages written into it are null-terminated

8 years agoaggregration: no need to zero-initialize
Ruben Kerkhof [Mon, 1 Aug 2016 19:48:07 +0000 (21:48 +0200)]
aggregration: no need to zero-initialize

8 years agotreewide: replace memset to 0 with initializers
Ruben Kerkhof [Sat, 30 Jul 2016 10:23:11 +0000 (12:23 +0200)]
treewide: replace memset to 0 with initializers

8 years agoMerge pull request #1822 from rubenk/write_riemann-indent
Ruben Kerkhof [Mon, 1 Aug 2016 15:51:15 +0000 (17:51 +0200)]
Merge pull request #1822 from rubenk/write_riemann-indent

write_riemann plugin: reindent

8 years agoMerge pull request #1824 from rubenk/protobuf-autoconf
Ruben Kerkhof [Mon, 1 Aug 2016 11:21:30 +0000 (13:21 +0200)]
Merge pull request #1824 from rubenk/protobuf-autoconf

Protobuf autoconf adjustments

8 years agoUse pkg-config to configure grpc plugin
Ruben Kerkhof [Sat, 30 Jul 2016 11:52:14 +0000 (13:52 +0200)]
Use pkg-config to configure grpc plugin

- Check for libgrpc++ instead of libgrpc
- Add check for libprotobuf
- Add configure options --with-libgrpc++, --with-libprotobuf and --with-libprotobuf-c
- Add precious variable PROTOC for path to the protoc compiler
- Add precious variable PROTOC_C for path to the protoc-c compiler
- Add precious variable GRPC_CPP_PLUGIN for path to the grpc_cpp_plugin binary

Fixes #1817

8 years agowrite-riemann plugin: reindent with clang-format
Ruben Kerkhof [Mon, 1 Aug 2016 09:33:02 +0000 (11:33 +0200)]
write-riemann plugin: reindent with clang-format

clang-format -i --style=llvm src/write_riemann.c

8 years agoMerge branch 'pr/1791'
Florian Forster [Mon, 1 Aug 2016 09:12:48 +0000 (11:12 +0200)]
Merge branch 'pr/1791'

8 years agointerface plugin: Remove NULL config key.
Florian Forster [Mon, 1 Aug 2016 09:12:35 +0000 (11:12 +0200)]
interface plugin: Remove NULL config key.

8 years agoremove mode lines from interface plugin
Rinigus [Sun, 31 Jul 2016 08:37:55 +0000 (11:37 +0300)]
remove mode lines from interface plugin

8 years agointerface plugin: following active/inactive interfaces via ReportInactive
Rinigus [Sat, 30 Jul 2016 21:11:30 +0000 (00:11 +0300)]
interface plugin: following active/inactive interfaces via ReportInactive

8 years agoStop using `which` for finding python interpreter
Ruben Kerkhof [Sat, 30 Jul 2016 20:30:20 +0000 (22:30 +0200)]
Stop using `which` for finding python interpreter

Which is not available in minimal build environments (see #1825 for an
example) so replace it with AC_PATH_PROG.

8 years agointeface plugin: add formatting string
Rinigus [Sat, 30 Jul 2016 17:06:26 +0000 (20:06 +0300)]
inteface plugin: add formatting string

8 years agoMerge pull request #1825 from ripienaar/missing_which
Ruben Kerkhof [Sat, 30 Jul 2016 16:39:57 +0000 (18:39 +0200)]
Merge pull request #1825 from ripienaar/missing_which

collectd.spec: el7 fails to find python without which

8 years agocollectd.spec: el7 fails to find python without which
R.I.Pienaar [Sat, 30 Jul 2016 16:23:25 +0000 (18:23 +0200)]
collectd.spec: el7 fails to find python without which

On very minimal build centos machines the yum-builddep should install
all it needs to succesfully build on centos, but this misses which and
so python cant be found.

8 years agogrpc plugin: Simplify error handling a bit.
Sebastian Harl [Thu, 28 Jul 2016 19:30:25 +0000 (21:30 +0200)]
grpc plugin: Simplify error handling a bit.

Make control flow more straight forward and handle all cleanup in one place.

8 years agoproto/collectd.proto: Remove unused import "google/protobuf/timestamp".
Florian Forster [Thu, 28 Jul 2016 14:10:29 +0000 (16:10 +0200)]
proto/collectd.proto: Remove unused import "google/protobuf/timestamp".

This causes problems when generating Go code from the .proto.

8 years agoMerge pull request #1816 from octo/grpc-free-iter
Sebastian Harl [Thu, 28 Jul 2016 13:30:58 +0000 (15:30 +0200)]
Merge pull request #1816 from octo/grpc-free-iter

grpc plugin: Free the cache iterator when returning due to an error.

8 years agogrpc plugin: Free the cache iterator when returning due to an error.
Florian Forster [Thu, 28 Jul 2016 13:20:37 +0000 (15:20 +0200)]
grpc plugin: Free the cache iterator when returning due to an error.

8 years agoMerge remote-tracking branch 'github/pr/1814'
Florian Forster [Thu, 28 Jul 2016 10:25:16 +0000 (12:25 +0200)]
Merge remote-tracking branch 'github/pr/1814'

8 years agoempty_counter match: Code cleanup.
Florian Forster [Thu, 28 Jul 2016 10:10:07 +0000 (12:10 +0200)]
empty_counter match: Code cleanup.

8 years agoempty_counter match: Add support for the DERIVE data source type.
Florian Forster [Thu, 28 Jul 2016 10:03:43 +0000 (12:03 +0200)]
empty_counter match: Add support for the DERIVE data source type.

Fixes: #1813

8 years agovarnish plugin: Add informative warnings to the config handling.
Florian Forster [Thu, 28 Jul 2016 08:53:50 +0000 (10:53 +0200)]
varnish plugin: Add informative warnings to the config handling.

Not all config options are valid for all versions of Varnish. Rather
than removing the if-clause altogether, which results in a "Ignoring
unknown configuration option" warning, print a user-friendly warning
instead.

Fixes: #1790

8 years agoMerge pull request #1806 from rubenk/network-plugin-size_t
Ruben Kerkhof [Wed, 27 Jul 2016 12:42:46 +0000 (14:42 +0200)]
Merge pull request #1806 from rubenk/network-plugin-size_t

network plugin: use size_t for length and offsets

8 years agowrite_http: fix warning in new kairos support
Ruben Kerkhof [Tue, 26 Jul 2016 14:14:02 +0000 (16:14 +0200)]
write_http: fix warning in new kairos support

Found by LLVM:

comparison of integers of different signs: 'int' and 'const size_t' (aka 'const unsigned long')

8 years agowrite_http: remove superfluous braces
Ruben Kerkhof [Tue, 26 Jul 2016 12:37:45 +0000 (14:37 +0200)]
write_http: remove superfluous braces

8 years agoMerge pull request #1809 from beorn-/write_http_kairosdb_format_master
Ruben Kerkhof [Tue, 26 Jul 2016 12:36:44 +0000 (14:36 +0200)]
Merge pull request #1809 from beorn-/write_http_kairosdb_format_master

Add KAIROSDB format to write_http plugin

8 years agoAdd KAIROSDB format to write_http plugin
Aurelien ROUGEMONT [Wed, 27 Jan 2016 16:06:45 +0000 (17:06 +0100)]
Add KAIROSDB format to write_http plugin

8 years agoMerge branch 'collectd-5.5'
Ruben Kerkhof [Tue, 26 Jul 2016 10:50:36 +0000 (12:50 +0200)]
Merge branch 'collectd-5.5'

8 years agoMerge branch 'collectd-5.4' into collectd-5.5
Ruben Kerkhof [Tue, 26 Jul 2016 10:50:07 +0000 (12:50 +0200)]
Merge branch 'collectd-5.4' into collectd-5.5

Conflicts:
ChangeLog
contrib/redhat/collectd.spec
version-gen.sh

8 years agoMerge pull request #1804 from rubenk/madwifi-fix-buffer-overflow
Ruben Kerkhof [Tue, 26 Jul 2016 10:45:53 +0000 (12:45 +0200)]
Merge pull request #1804 from rubenk/madwifi-fix-buffer-overflow

madwifi plugin: fix buffer overflows

8 years agometadata: add comment about metadata functions use and threads safety
Aurelien ROUGEMONT [Tue, 26 Jul 2016 10:29:49 +0000 (12:29 +0200)]
metadata: add comment about metadata functions use and threads safety

Signed-off-by: Florian Forster <octo@collectd.org>
8 years agoBump spec file to 5.4.3
Ruben Kerkhof [Tue, 26 Jul 2016 10:26:24 +0000 (12:26 +0200)]
Bump spec file to 5.4.3

8 years agoUpdate spec file to 5.5.2
Ruben Kerkhof [Tue, 26 Jul 2016 10:20:40 +0000 (12:20 +0200)]
Update spec file to 5.5.2

(cherry picked from commit 34add34b27c6d85ed992efc951fc08994e5f86d6)

8 years agoUpdate spec file to 5.5.2
Ruben Kerkhof [Tue, 26 Jul 2016 10:20:40 +0000 (12:20 +0200)]
Update spec file to 5.5.2

8 years agoMerge pull request #1807 from matteocontrini/master
Ruben Kerkhof [Tue, 26 Jul 2016 10:13:46 +0000 (12:13 +0200)]
Merge pull request #1807 from matteocontrini/master

Added 'operations_per_second' (redis) type

8 years agoBump version to 5.4.3; Update ChangeLog. collectd-5.4.3
Florian Forster [Tue, 26 Jul 2016 07:21:19 +0000 (09:21 +0200)]
Bump version to 5.4.3; Update ChangeLog.

8 years agonetwork plugin: Fix error message for GCRYCTL_INIT_SECMEM failure.
Florian Forster [Tue, 26 Jul 2016 06:54:42 +0000 (08:54 +0200)]
network plugin: Fix error message for GCRYCTL_INIT_SECMEM failure.

8 years agoMerge branch 'collectd-5.5'
Florian Forster [Tue, 26 Jul 2016 05:56:09 +0000 (07:56 +0200)]
Merge branch 'collectd-5.5'

8 years agoChangeLog: Add note about #1665. collectd-5.5.2
Florian Forster [Tue, 26 Jul 2016 05:50:55 +0000 (07:50 +0200)]
ChangeLog: Add note about #1665.

8 years agoAdded 'operations_per_second' (redis) type
Matteo Contrini [Mon, 25 Jul 2016 22:35:13 +0000 (00:35 +0200)]
Added 'operations_per_second' (redis) type

8 years agoBump version to 5.5.2; Update ChangeLog.
Florian Forster [Mon, 25 Jul 2016 11:13:56 +0000 (13:13 +0200)]
Bump version to 5.5.2; Update ChangeLog.

8 years agoMerge branch 'collectd-5.4' into collectd-5.5
Florian Forster [Mon, 25 Jul 2016 11:52:16 +0000 (13:52 +0200)]
Merge branch 'collectd-5.4' into collectd-5.5

8 years agonetwork plugin, libcollectdclient: Check return value of gcry_control().
Florian Forster [Mon, 25 Jul 2016 11:39:37 +0000 (13:39 +0200)]
network plugin, libcollectdclient: Check return value of gcry_control().

Fixes: #1665

8 years agolibcollectdclient: fix compiler warning on Solaris
Ruben Kerkhof [Sun, 24 Jul 2016 19:23:59 +0000 (21:23 +0200)]
libcollectdclient: fix compiler warning on Solaris

  CC     libcollectdclient_la-client.lo
"client.c", line 1104: argument #4 is incompatible with prototype:
        prototype: pointer to function(pointer to const void, pointer to const void) returning int : "/usr/include/iso/stdlib_iso.h", line 134
        argument : pointer to void

8 years agoutils_cache_mock: fix annotations
Ruben Kerkhof [Sun, 24 Jul 2016 18:27:48 +0000 (20:27 +0200)]
utils_cache_mock: fix annotations

It's __attribute__, not __attribute

Found with Solaris lint.

8 years agoconfigure.ac: fix empty else on RHEL5
Ruben Kerkhof [Sun, 24 Jul 2016 18:07:18 +0000 (20:07 +0200)]
configure.ac: fix empty else on RHEL5

Ancient autoconf versions don't like empty
strings in m4 arguments.

8 years agoFix build when hal is not installed
Ruben Kerkhof [Sun, 24 Jul 2016 17:03:29 +0000 (19:03 +0200)]
Fix build when hal is not installed

8 years agotreewide: fix invocation of c_avl_create
Ruben Kerkhof [Sun, 24 Jul 2016 16:43:38 +0000 (18:43 +0200)]
treewide: fix invocation of c_avl_create

Fixes the following warning on Solaris:

|c_avl_tree_t *c_avl_create (int (*compare) (const void *, const
void *));
|              ^  line 54, utils_avltree.h
|                 included in line 34, utils_vl_lookup.c
|
|  obj->by_type_tree = c_avl_create ((void *) strcmp);
|                                     ^  line 567,
utils_vl_lookup.c
E_ARG_INCOMPATIBLE_WITH_ARG_L, argument #1 is incompatible with
prototype:
        prototype: pointer to function(pointer to const void, pointer to
const void) returning int : "src/daemon/utils_avltree.h", line 54
        argument : pointer to void

I'll look into writing a generic function to compare avl keys so
we don't need to do all the casting.

8 years agoemail plugin: fix lint warnings
Ruben Kerkhof [Sun, 24 Jul 2016 16:22:32 +0000 (18:22 +0200)]
email plugin: fix lint warnings

set but not used in function
    (468) err in open_connection
    (574) err in email_init

8 years agoutils_llist.c: remove unneccesary include
Ruben Kerkhof [Sun, 24 Jul 2016 16:11:07 +0000 (18:11 +0200)]
utils_llist.c: remove unneccesary include

8 years agowrite_kafka plugin: remove unneccesary includes
Ruben Kerkhof [Sun, 24 Jul 2016 16:05:22 +0000 (18:05 +0200)]
write_kafka plugin: remove unneccesary includes

8 years agothreshold plugin: remove unneccesary include
Ruben Kerkhof [Sun, 24 Jul 2016 16:03:36 +0000 (18:03 +0200)]
threshold plugin: remove unneccesary include

8 years agomqtt plugin: remove unused include
Ruben Kerkhof [Sun, 24 Jul 2016 16:02:01 +0000 (18:02 +0200)]
mqtt plugin: remove unused include

8 years agobattery plugin: remove unused include
Ruben Kerkhof [Sun, 24 Jul 2016 15:58:58 +0000 (17:58 +0200)]
battery plugin: remove unused include

8 years agomemcachec plugin: correct error message
Ruben Kerkhof [Sun, 24 Jul 2016 15:56:46 +0000 (17:56 +0200)]
memcachec plugin: correct error message

8 years agocurl plugin: correct error message
Ruben Kerkhof [Sun, 24 Jul 2016 15:56:04 +0000 (17:56 +0200)]
curl plugin: correct error message

8 years agomodbus plugin: unsigned value can't be negative
Ruben Kerkhof [Sun, 24 Jul 2016 15:21:56 +0000 (17:21 +0200)]
modbus plugin: unsigned value can't be negative

8 years agocollectd-tg: remove dead code
Ruben Kerkhof [Sun, 24 Jul 2016 15:15:11 +0000 (17:15 +0200)]
collectd-tg: remove dead code

8 years agofscache plugin: unsigned value can't be negative
Ruben Kerkhof [Sun, 24 Jul 2016 15:11:46 +0000 (17:11 +0200)]
fscache plugin: unsigned value can't be negative

8 years agouuid plugin: fix inclusion of libhal.h
Ruben Kerkhof [Sun, 24 Jul 2016 14:47:40 +0000 (16:47 +0200)]
uuid plugin: fix inclusion of libhal.h

Follow up of 34db18b

8 years agoconfigure.ac: always use pkg-config to detect hal
Ruben Kerkhof [Sun, 24 Jul 2016 14:43:30 +0000 (16:43 +0200)]
configure.ac: always use pkg-config to detect hal

Hal needs dbus, but we need pkg-config to tell us that.
Now that pkg-config is not optional anymore, rewrite the
check to always use it. Also add a check for the header.

Fixes building the uuid plugin on Solaris 11.3

8 years agoganglia plugin: unsigned value can't be negative
Ruben Kerkhof [Sun, 24 Jul 2016 13:31:56 +0000 (15:31 +0200)]
ganglia plugin: unsigned value can't be negative

8 years agotreewide: remove unused includes
Ruben Kerkhof [Sun, 24 Jul 2016 11:56:32 +0000 (13:56 +0200)]
treewide: remove unused includes

8 years agonetwork plugin: use size_t for length and offsets
Ruben Kerkhof [Sun, 24 Jul 2016 11:56:32 +0000 (13:56 +0200)]
network plugin: use size_t for length and offsets

8 years agoIgnore lint files
Ruben Kerkhof [Sun, 24 Jul 2016 11:55:22 +0000 (13:55 +0200)]
Ignore lint files

8 years agoapache plugin: fix compiler warning on Solaris
Ruben Kerkhof [Sun, 24 Jul 2016 11:43:48 +0000 (13:43 +0200)]
apache plugin: fix compiler warning on Solaris

8 years agomemcached plugin: fix compiler warning on Solaris
Ruben Kerkhof [Sun, 24 Jul 2016 11:41:00 +0000 (13:41 +0200)]
memcached plugin: fix compiler warning on Solaris

|  ud.free_func = (void *) memcached_free;
|               ^  line 559, memcached.c
assignment type mismatch:
pointer to function(pointer to void) returning void "=" pointer to void

Casting a function pointer to a void pointer is undefined behaviour
in C (it is defined in POSIX however)

8 years agomysql plugin: remove unneccesary cast
Ruben Kerkhof [Sun, 24 Jul 2016 11:37:14 +0000 (13:37 +0200)]
mysql plugin: remove unneccesary cast

8 years agonetwork plugin: unsigned variables can't be negative
Ruben Kerkhof [Sun, 24 Jul 2016 11:29:25 +0000 (13:29 +0200)]
network plugin: unsigned variables can't be negative

8 years agoutils_dns.c: unsigned variable can't be negative
Ruben Kerkhof [Sun, 24 Jul 2016 11:28:01 +0000 (13:28 +0200)]
utils_dns.c: unsigned variable can't be negative

8 years agoutils_dns.c: fix strange linebreak
Ruben Kerkhof [Sun, 24 Jul 2016 11:27:18 +0000 (13:27 +0200)]
utils_dns.c: fix strange linebreak

8 years agorrdtool plugin: unsigned value can't be negative
Ruben Kerkhof [Sun, 24 Jul 2016 11:26:19 +0000 (13:26 +0200)]
rrdtool plugin: unsigned value can't be negative

8 years agoted plugin: 0xAA doesn't fit in a signed char
Ruben Kerkhof [Sun, 24 Jul 2016 11:24:54 +0000 (13:24 +0200)]
ted plugin: 0xAA doesn't fit in a signed char

8 years agoopenldap plugin: rc is only used once
Ruben Kerkhof [Sun, 24 Jul 2016 11:23:58 +0000 (13:23 +0200)]
openldap plugin: rc is only used once

8 years agointerface plugin: val is only used once
Ruben Kerkhof [Sun, 24 Jul 2016 11:21:45 +0000 (13:21 +0200)]
interface plugin: val is only used once

8 years agoMake chrony compile with Solaris Studio compiler
Ruben Kerkhof [Sun, 24 Jul 2016 11:19:08 +0000 (13:19 +0200)]
Make chrony compile with Solaris Studio compiler

Ideally we'll have autoconf checks for supported attributes,
will look into that later.

8 years agoutils_dns.c: remove dead code
Ruben Kerkhof [Sat, 23 Jul 2016 21:26:14 +0000 (23:26 +0200)]
utils_dns.c: remove dead code

8 years agozone plugin: remove unused code
Ruben Kerkhof [Sat, 23 Jul 2016 21:24:46 +0000 (23:24 +0200)]
zone plugin: remove unused code

8 years agocollectctl: remove dead code
Ruben Kerkhof [Sat, 23 Jul 2016 21:22:33 +0000 (23:22 +0200)]
collectctl: remove dead code