summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--miscutils/Config.in7
-rw-r--r--miscutils/crond.c47
2 files changed, 29 insertions, 25 deletions
diff --git a/miscutils/Config.in b/miscutils/Config.in
index 45803ef..637d4b9 100644
--- a/miscutils/Config.in
+++ b/miscutils/Config.in
@@ -34,6 +34,13 @@ config CONFIG_CROND
Note that Busybox binary must be setuid root for this applet to
work properly.
+config CONFIG_DEBUG_CROND_OPTION
+ bool "Support debug option -d"
+ depends on CONFIG_CROND
+ default n
+ help
+ Support option -d to enter debug mode.
+
config CONFIG_FEATURE_CROND_CALL_SENDMAIL
bool "Using /usr/sbin/sendmail?"
default n
diff --git a/miscutils/crond.c b/miscutils/crond.c
index f0b4753..9b194d1 100644
--- a/miscutils/crond.c
+++ b/miscutils/crond.c
@@ -12,9 +12,6 @@
#define VERSION "2.3.2"
-#undef FEATURE_DEBUG_OPT
-
-
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
@@ -83,7 +80,7 @@ typedef struct CronLine {
#define DaemonUid 0
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
static short DebugOpt;
#endif
@@ -101,7 +98,7 @@ static int CheckJobs(void);
static void RunJob(const char *user, CronLine * line);
-#ifdef CONFIG_FEATURE_CROND_CALL_SENDMAIL
+#if ENABLE_FEATURE_CROND_CALL_SENDMAIL
static void EndJob(const char *user, CronLine * line);
#else
#define EndJob(user, line) line->cl_Pid = 0
@@ -125,7 +122,7 @@ static void crondlog(const char *ctl, ...)
fmt = ctl + 1;
if (level >= LogLevel) {
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt) {
vfprintf(stderr, fmt, va);
} else
@@ -137,7 +134,7 @@ static void crondlog(const char *ctl, ...)
if (logfd >= 0) {
vdprintf(logfd, fmt, va);
close(logfd);
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
} else {
bb_perror_msg("Can't open log file");
#endif
@@ -155,7 +152,7 @@ int crond_main(int ac, char **av)
unsigned long opt;
char *lopt, *Lopt, *copt;
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
char *dopt;
bb_opt_complementally = "f-b:b-f:S-L:L-S:d-l";
@@ -165,11 +162,11 @@ int crond_main(int ac, char **av)
opterr = 0; /* disable getopt 'errors' message. */
opt = bb_getopt_ulflags(ac, av, "l:L:fbSc:"
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
"d:"
#endif
, &lopt, &Lopt, &copt
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
, &dopt
#endif
);
@@ -186,7 +183,7 @@ int crond_main(int ac, char **av)
CDir = copt;
}
}
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (opt & 64) {
DebugOpt = atoi(dopt);
LogLevel = 0;
@@ -263,7 +260,7 @@ int crond_main(int ac, char **av)
SynchronizeDir();
}
CheckUpdates();
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt)
crondlog("\005Wakeup dt=%d\n", dt);
#endif
@@ -283,10 +280,10 @@ int crond_main(int ac, char **av)
}
}
}
- /* not reached */
+ bb_fflush_stdout_and_exit(EXIT_SUCCESS); /* not reached */
}
-#if defined(FEATURE_DEBUG_OPT) || defined(CONFIG_FEATURE_CROND_CALL_SENDMAIL)
+#if ENABLE_DEBUG_CROND_OPTION || ENABLE_FEATURE_CROND_CALL_SENDMAIL
/*
write to temp file..
*/
@@ -341,7 +338,7 @@ static void startlogger(void)
if (LogFile == 0) {
openlog(bb_applet_name, LOG_CONS | LOG_PID, LOG_CRON);
}
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
else { /* test logfile */
int logfd;
@@ -513,7 +510,7 @@ static char *ParseField(char *user, char *ary, int modvalue, int off,
while (*ptr == ' ' || *ptr == '\t' || *ptr == '\n') {
++ptr;
}
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt) {
int i;
@@ -595,7 +592,7 @@ static void SynchronizeFile(const char *fileName)
}
memset(&line, 0, sizeof(line));
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt) {
crondlog("\111User %s Entry %s\n", fileName, buf);
}
@@ -626,7 +623,7 @@ static void SynchronizeFile(const char *fileName)
/* copy command */
(*pline)->cl_Shell = strdup(ptr);
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt) {
crondlog("\111 Command %s\n", ptr);
}
@@ -778,21 +775,21 @@ static int TestJobs(time_t t1, time_t t2)
CronLine *line;
for (file = FileBase; file; file = file->cf_Next) {
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt)
crondlog("\005FILE %s:\n", file->cf_User);
#endif
if (file->cf_Deleted)
continue;
for (line = file->cf_LineBase; line; line = line->cl_Next) {
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt)
crondlog("\005 LINE %s\n", line->cl_Shell);
#endif
if (line->cl_Mins[tp->tm_min] && line->cl_Hrs[tp->tm_hour] &&
(line->cl_Days[tp->tm_mday] || line->cl_Dow[tp->tm_wday])
&& line->cl_Mons[tp->tm_mon]) {
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt) {
crondlog("\005 JobToDo: %d %s\n",
line->cl_Pid, line->cl_Shell);
@@ -881,7 +878,7 @@ static int CheckJobs(void)
}
-#ifdef CONFIG_FEATURE_CROND_CALL_SENDMAIL
+#if ENABLE_FEATURE_CROND_CALL_SENDMAIL
static void
ForkJob(const char *user, CronLine * line, int mailFd,
const char *prog, const char *cmd, const char *arg, const char *mailf)
@@ -898,7 +895,7 @@ ForkJob(const char *user, CronLine * line, int mailFd,
if (ChangeUser(user) < 0) {
exit(0);
}
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt) {
crondlog("\005Child Running %s\n", prog);
}
@@ -1030,7 +1027,7 @@ static void RunJob(const char *user, CronLine * line)
if (ChangeUser(user) < 0) {
exit(0);
}
-#ifdef FEATURE_DEBUG_OPT
+#if ENABLE_DEBUG_CROND_OPTION
if (DebugOpt) {
crondlog("\005Child Running %s\n", DEFAULT_SHELL);
}
@@ -1047,4 +1044,4 @@ static void RunJob(const char *user, CronLine * line)
}
line->cl_Pid = pid;
}
-#endif /* CONFIG_FEATURE_CROND_CALL_SENDMAIL */
+#endif /* ENABLE_FEATURE_CROND_CALL_SENDMAIL */