zcip: Add environment variable for overriding log functionality
No binary (build failed)
—
(log yok)
| @@ -45,6 +45,8 @@ udhcpc - auto-backgrounds unless -f after lease is obtained, | |
| udhcpd - auto-backgrounds and do not log to stderr unless -f, | |
| otherwise logs to stderr, but option -S makes it log *also* to syslog | |
| 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), | |
| 4 log to syslog by default (crond fakeidentd inetd zcip), | |
| @@ -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_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_logenv_override(void) FAST_FUNC; |
| /* We need to export XXX_main from libbusybox | |
| * only if we build "individual" binaries | |
| @@ -187,3 +187,6 @@ lib-$(CONFIG_PGREP) += xregcomp.o | |
| lib-$(CONFIG_PKILL) += xregcomp.o | |
| lib-$(CONFIG_DEVFSD) += xregcomp.o | |
| lib-$(CONFIG_FEATURE_FIND_REGEX) += xregcomp.o | |
| + | |
| + | # Add the experimental logging functionality, only used by zcip |
| + | lib-$(CONFIG_ZCIP) += logenv.o |
| @@ -0,0 +1,24 @@ | |
| + | /* vi: set sw=4 ts=4: */ |
| + | /* |
| + | * Utility routines. |
| + | * |
| + | * Copyright (C) 2014 by Fugro Intersite B.V. <[email protected]> |
| + | * |
| + | * 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 |
| + | } |
| @@ -33,6 +33,9 @@ | |
| //usage: "\n -l x.x.0.0 Use this range instead of 169.254" | |
| //usage: "\n -v Verbose" | |
| //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: "\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); | |
| logmode |= LOGMODE_SYSLOG; | |
| } | |
| + | bb_logenv_override(); |
| + | |
| { // -l n.n.n.n | |
| struct in_addr net; | |
| if (inet_aton(l_opt, &net) == 0 | |