diff options
author | Davide Cavalca <davide@geexbox.org> | 2011-01-25 02:26:03 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2011-01-25 02:26:03 +0100 |
commit | 9b3b9790b32d440eb89af5edda70a66b1829e861 (patch) | |
tree | f0e6d7d088262813025df1f0393cbd2ded8c1c78 /libbb | |
parent | 444ff284c4097081108e0eded4711247aacda740 (diff) | |
download | busybox-w32-9b3b9790b32d440eb89af5edda70a66b1829e861.tar.gz busybox-w32-9b3b9790b32d440eb89af5edda70a66b1829e861.tar.bz2 busybox-w32-9b3b9790b32d440eb89af5edda70a66b1829e861.zip |
add ENABLE_FEATURE_SYSTEMD and use it in syslogd
Signed-off-by: Davide Cavalca <davide@geexbox.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/systemd_support.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/libbb/systemd_support.c b/libbb/systemd_support.c new file mode 100644 index 000000000..981296dbb --- /dev/null +++ b/libbb/systemd_support.c | |||
@@ -0,0 +1,62 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Davide Cavalca <davide@geexbox.org> | ||
3 | * | ||
4 | * Based on http://cgit.freedesktop.org/systemd/tree/src/sd-daemon.c | ||
5 | * Copyright 2010 Lennart Poettering | ||
6 | * | ||
7 | * Permission is hereby granted, free of charge, to any person | ||
8 | * obtaining a copy of this software and associated documentation files | ||
9 | * (the "Software"), to deal in the Software without restriction, | ||
10 | * including without limitation the rights to use, copy, modify, merge, | ||
11 | * publish, distribute, sublicense, and/or sell copies of the Software, | ||
12 | * and to permit persons to whom the Software is furnished to do so, | ||
13 | * subject to the following conditions: | ||
14 | * | ||
15 | * The above copyright notice and this permission notice shall be | ||
16 | * included in all copies or substantial portions of the Software. | ||
17 | * | ||
18 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
19 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
20 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
21 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
22 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
23 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
24 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
25 | * SOFTWARE. | ||
26 | */ | ||
27 | #include "libbb.h" | ||
28 | |||
29 | //config:config FEATURE_SYSTEMD | ||
30 | //config: bool "Enable systemd support" | ||
31 | //config: default y | ||
32 | //config: help | ||
33 | //config: If you plan to use busybox daemons on a system where daemons | ||
34 | //config: are controlled by systemd, enable this option. | ||
35 | //config: If you don't use systemd, it is still safe to enable it, | ||
36 | //config: but yhe downside is increased code size. | ||
37 | |||
38 | //kbuild:lib-$(CONFIG_FEATURE_SYSTEMD) += systemd_support.o | ||
39 | |||
40 | int sd_listen_fds(void) | ||
41 | { | ||
42 | const char *e; | ||
43 | int n; | ||
44 | int fd; | ||
45 | |||
46 | e = getenv("LISTEN_PID"); | ||
47 | if (!e) | ||
48 | return 0; | ||
49 | n = xatoi_positive(e); | ||
50 | /* Is this for us? */ | ||
51 | if (getpid() != (pid_t) n) | ||
52 | return 0; | ||
53 | |||
54 | e = getenv("LISTEN_FDS"); | ||
55 | if (!e) | ||
56 | return 0; | ||
57 | n = xatoi_positive(e); | ||
58 | for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + n; fd++) | ||
59 | close_on_exec_on(fd); | ||
60 | |||
61 | return n; | ||
62 | } | ||