zcip: Add environment variable for overriding log functionality

function                                             old     new   delta
bb_logenv_override                                     -      70     +70
packed_usage                                       29969   30033     +64
zcip_main                                           1426    1431      +5
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 2/0 up/down: 139/0)             Total: 139 bytes

Signed-off-by: Michel Stam <m.stam@fugro.nl>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Michel Stam 2014-11-04 12:19:04 +01:00 committed by Denys Vlasenko
parent fdd957bdc9
commit d3fabf89d7
5 changed files with 35 additions and 0 deletions

View File

@ -45,6 +45,8 @@ udhcpc - auto-backgrounds unless -f after lease is obtained,
udhcpd - auto-backgrounds and do not log to stderr unless -f, udhcpd - auto-backgrounds and do not log to stderr unless -f,
otherwise logs to stderr, but option -S makes it log *also* to syslog otherwise logs to stderr, but option -S makes it log *also* to syslog
zcip - auto-backgrounds and logs *also* to syslog unless -f zcip - auto-backgrounds and logs *also* to syslog unless -f
behaviour can be overridden with experimental LOGGING env.var
(can be set to either "none" or "syslog")
Total: 13 applets (+1 obsolete), Total: 13 applets (+1 obsolete),
4 log to syslog by default (crond fakeidentd inetd zcip), 4 log to syslog by default (crond fakeidentd inetd zcip),

View File

@ -1104,6 +1104,7 @@ extern void bb_perror_nomsg_and_die(void) NORETURN FAST_FUNC;
extern void bb_perror_nomsg(void) FAST_FUNC; extern void bb_perror_nomsg(void) FAST_FUNC;
extern void bb_info_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC; extern void bb_info_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC;
extern void bb_verror_msg(const char *s, va_list p, const char *strerr) FAST_FUNC; extern void bb_verror_msg(const char *s, va_list p, const char *strerr) FAST_FUNC;
extern void bb_logenv_override(void) FAST_FUNC;
/* We need to export XXX_main from libbusybox /* We need to export XXX_main from libbusybox
* only if we build "individual" binaries * only if we build "individual" binaries

View File

@ -187,3 +187,6 @@ lib-$(CONFIG_PGREP) += xregcomp.o
lib-$(CONFIG_PKILL) += xregcomp.o lib-$(CONFIG_PKILL) += xregcomp.o
lib-$(CONFIG_DEVFSD) += xregcomp.o lib-$(CONFIG_DEVFSD) += xregcomp.o
lib-$(CONFIG_FEATURE_FIND_REGEX) += xregcomp.o lib-$(CONFIG_FEATURE_FIND_REGEX) += xregcomp.o
# Add the experimental logging functionality, only used by zcip
lib-$(CONFIG_ZCIP) += logenv.o

24
libbb/logenv.c Normal file
View File

@ -0,0 +1,24 @@
/* vi: set sw=4 ts=4: */
/*
* Utility routines.
*
* Copyright (C) 2014 by Fugro Intersite B.V. <m.stam@fugro.nl>
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
#include "libbb.h"
void FAST_FUNC bb_logenv_override(void)
{
const char* mode = getenv("LOGGING");
if (!mode)
return;
if (strcmp(mode, "none") == 0)
logmode = LOGMODE_NONE;
#if ENABLE_FEATURE_SYSLOG
else if (strcmp(mode, "syslog") == 0)
logmode = LOGMODE_SYSLOG;
#endif
}

View File

@ -33,6 +33,9 @@
//usage: "\n -l x.x.0.0 Use this range instead of 169.254" //usage: "\n -l x.x.0.0 Use this range instead of 169.254"
//usage: "\n -v Verbose" //usage: "\n -v Verbose"
//usage: "\n" //usage: "\n"
//usage: "\n$LOGGING=none Suppress logging"
//usage: "\n$LOGGING=syslog Log to syslog"
//usage: "\n"
//usage: "\nWith no -q, runs continuously monitoring for ARP conflicts," //usage: "\nWith no -q, runs continuously monitoring for ARP conflicts,"
//usage: "\nexits only on I/O errors (link down etc)" //usage: "\nexits only on I/O errors (link down etc)"
@ -249,6 +252,8 @@ int zcip_main(int argc UNUSED_PARAM, char **argv)
openlog(applet_name, 0, LOG_DAEMON); openlog(applet_name, 0, LOG_DAEMON);
logmode |= LOGMODE_SYSLOG; logmode |= LOGMODE_SYSLOG;
} }
bb_logenv_override();
{ // -l n.n.n.n { // -l n.n.n.n
struct in_addr net; struct in_addr net;
if (inet_aton(l_opt, &net) == 0 if (inet_aton(l_opt, &net) == 0