crond: use bb_setpgrp, not setpgrp

platform.h: make a bit more readable
This commit is contained in:
Denis Vlasenko 2008-12-03 10:46:12 +00:00
parent f8535ccd65
commit 6ebb2f56d5
2 changed files with 26 additions and 24 deletions

View File

@ -78,7 +78,7 @@
//__attribute__ ((__externally_visible__)) //__attribute__ ((__externally_visible__))
#else #else
# define EXTERNALLY_VISIBLE # define EXTERNALLY_VISIBLE
#endif /* GNUC >= 4.1 */ #endif
/* We use __extension__ in some places to suppress -pedantic warnings /* We use __extension__ in some places to suppress -pedantic warnings
about GCC extensions. This feature didn't work properly before about GCC extensions. This feature didn't work properly before
@ -185,7 +185,7 @@ typedef int socklen_t;
* until userspace is widely fixed. */ * until userspace is widely fixed. */
#if (defined __INTEL_COMPILER && !defined __GNUC__) || \ #if (defined __INTEL_COMPILER && !defined __GNUC__) || \
(defined __GNUC__ && defined __STRICT_ANSI__) (defined __GNUC__ && defined __STRICT_ANSI__)
__extension__ typedef __signed__ long long __s64; __extension__ typedef long long __s64;
__extension__ typedef unsigned long long __u64; __extension__ typedef unsigned long long __u64;
#endif #endif
@ -296,30 +296,32 @@ static ALWAYS_INLINE char* strchrnul(const char *s, char c)
#endif #endif
#if (defined __digital__ && defined __unix__) #if (defined __digital__ && defined __unix__)
#include <standards.h>
#define HAVE_STANDARDS_H
#include <inttypes.h>
#define HAVE_INTTYPES_H
#define PRIu32 "u"
# include <standards.h>
# define HAVE_STANDARDS_H
# include <inttypes.h>
# define HAVE_INTTYPES_H
# define PRIu32 "u"
/* use legacy setpgrp(pid_t,pid_t) for now. move to platform.c */ /* use legacy setpgrp(pid_t,pid_t) for now. move to platform.c */
#define bb_setpgrp() do { pid_t __me = getpid(); setpgrp(__me,__me); } while (0) # define bb_setpgrp() do { pid_t __me = getpid(); setpgrp(__me,__me); } while (0)
#if !defined ADJ_OFFSET_SINGLESHOT && defined MOD_CLKA && defined MOD_OFFSET # if !defined ADJ_OFFSET_SINGLESHOT && defined MOD_CLKA && defined MOD_OFFSET
#define ADJ_OFFSET_SINGLESHOT (MOD_CLKA | MOD_OFFSET) # define ADJ_OFFSET_SINGLESHOT (MOD_CLKA | MOD_OFFSET)
#endif # endif
#if !defined ADJ_FREQUENCY && defined MOD_FREQUENCY # if !defined ADJ_FREQUENCY && defined MOD_FREQUENCY
#define ADJ_FREQUENCY MOD_FREQUENCY # define ADJ_FREQUENCY MOD_FREQUENCY
#endif # endif
#if !defined ADJ_TIMECONST && defined MOD_TIMECONST # if !defined ADJ_TIMECONST && defined MOD_TIMECONST
#define ADJ_TIMECONST MOD_TIMECONST # define ADJ_TIMECONST MOD_TIMECONST
#endif # endif
#if !defined ADJ_TICK && defined MOD_CLKB # if !defined ADJ_TICK && defined MOD_CLKB
#define ADJ_TICK MOD_CLKB # define ADJ_TICK MOD_CLKB
#endif # endif
#else /* !__digital__ */
# define bb_setpgrp() setpgrp()
#else
#define bb_setpgrp() setpgrp()
#endif #endif
#if defined(__linux__) #if defined(__linux__)

View File

@ -780,7 +780,7 @@ ForkJob(const char *user, CronLine *line, int mailFd,
dup2(1, 2); dup2(1, 2);
} }
/* "standard" cron puts tasks in separate process groups */ /* "standard" cron puts tasks in separate process groups */
setpgrp(); bb_setpgrp();
execlp(prog, prog, cmd, arg, NULL); execlp(prog, prog, cmd, arg, NULL);
crondlog(ERR20 "can't exec, user %s cmd %s %s %s", user, prog, cmd, arg); crondlog(ERR20 "can't exec, user %s cmd %s %s %s", user, prog, cmd, arg);
if (mail_filename) { if (mail_filename) {
@ -917,7 +917,7 @@ static void RunJob(const char *user, CronLine *line)
crondlog(LVL5 "child running %s", DEFAULT_SHELL); crondlog(LVL5 "child running %s", DEFAULT_SHELL);
} }
/* "standard" cron puts tasks in separate process groups */ /* "standard" cron puts tasks in separate process groups */
setpgrp(); bb_setpgrp();
execl(DEFAULT_SHELL, DEFAULT_SHELL, "-c", line->cl_Shell, NULL); execl(DEFAULT_SHELL, DEFAULT_SHELL, "-c", line->cl_Shell, NULL);
crondlog(ERR20 "can't exec, user %s cmd %s %s %s", user, crondlog(ERR20 "can't exec, user %s cmd %s %s %s", user,
DEFAULT_SHELL, "-c", line->cl_Shell); DEFAULT_SHELL, "-c", line->cl_Shell);