aboutsummaryrefslogtreecommitdiff
path: root/miscutils/crond.c
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils/crond.c')
-rw-r--r--miscutils/crond.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/miscutils/crond.c b/miscutils/crond.c
index 995ed9e0a..8441b6cc5 100644
--- a/miscutils/crond.c
+++ b/miscutils/crond.c
@@ -163,28 +163,21 @@ static void crondlog(const char *ctl, ...) __attribute__ ((format (printf, 1, 2)
163static void crondlog(const char *ctl, ...) 163static void crondlog(const char *ctl, ...)
164{ 164{
165 va_list va; 165 va_list va;
166 int level = (ctl[0] & 0x1f); 166 unsigned level = (ctl[0] & 0x1f);
167 167
168 va_start(va, ctl); 168 va_start(va, ctl);
169 if (level >= (int)G.log_level) { 169 if (level >= G.log_level) {
170 /* Debug mode: all to (non-redirected) stderr, */ 170 if (G.log_filename) {
171 /* Syslog mode: all to syslog (logmode = LOGMODE_SYSLOG), */ 171 /* If log to file, reopen log file at every write: */
172 if (!DebugOpt && G.log_filename) {
173 /* Otherwise (log to file): we reopen log file at every write: */
174 int logfd = open_or_warn(G.log_filename, O_WRONLY | O_CREAT | O_APPEND); 172 int logfd = open_or_warn(G.log_filename, O_WRONLY | O_CREAT | O_APPEND);
175 if (logfd >= 0) 173 if (logfd >= 0)
176 xmove_fd(logfd, STDERR_FILENO); 174 xmove_fd(logfd, STDERR_FILENO);
177 } 175 }
178 /* When we log to syslog, level > 8 is logged at LOG_ERR 176 /* When we log to syslog, level > 8 is logged at LOG_ERR
179 * syslog level, level <= 8 is logged at LOG_INFO. */ 177 * syslog level, level <= 8 is logged at LOG_INFO.
180 if (level > 8) { 178 */
181 bb_verror_msg(ctl + 1, va, /* strerr: */ NULL); 179 syslog_level = (level > 8) ? LOG_ERR : LOG_INFO;
182 } else { 180 bb_verror_msg(ctl + 1, va, /* strerr: */ NULL);
183 char *msg = NULL;
184 vasprintf(&msg, ctl + 1, va);
185 bb_info_msg("%s: %s", applet_name, msg);
186 free(msg);
187 }
188 } 181 }
189 va_end(va); 182 va_end(va);
190 if (ctl[0] & 0x80) 183 if (ctl[0] & 0x80)