diff options
author | Dale Mellor <mcron-lsfnyl@rdmp.org> | 2022-01-01 06:47:04 +0000 |
---|---|---|
committer | Dale Mellor <mcron-lsfnyl@rdmp.org> | 2022-01-10 16:09:00 +0000 |
commit | 9e994909255e68b00356ce41e82c6c5dfc98e475 (patch) | |
tree | 3b5bbb80f661a42aaf21bc4dc4213d1d575501fe /src/mcron/base.scm | |
parent | d5c021e6c0ca93d6935852ae2fc3522b86fe838b (diff) | |
download | mcron-9e994909255e68b00356ce41e82c6c5dfc98e475.tar.gz mcron-9e994909255e68b00356ce41e82c6c5dfc98e475.tar.bz2 mcron-9e994909255e68b00356ce41e82c6c5dfc98e475.zip |
Revert "Minor cosmetic simplification of case logic after previous patch."
This reverts commit 99a26e5de6d132056999074ce4f4f2cf24ec8c2f.
Diffstat (limited to 'src/mcron/base.scm')
-rw-r--r-- | src/mcron/base.scm | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/mcron/base.scm b/src/mcron/base.scm index c0404ae..037a9b7 100644 --- a/src/mcron/base.scm +++ b/src/mcron/base.scm @@ -176,31 +176,31 @@ unusable." "Run JOB in a separate process. The process is run as JOB user with the environment properly set. Update the NEXT-TIME field of JOB by computing its next value." - (case (primitive-fork) - ((0) (dynamic-wind ;child - (const #t) - (λ () - (setgid (passwd:gid (job:user job))) - (setuid (passwd:uid (job:user job))) - - ;; Handle the case where the home directory points to a - ;; nonexistent location, as can be the case when running - ;; the job as the "nobody" user. - (catch 'system-error - (λ () - (chdir (passwd:dir (job:user job)))) - (λ args - (if (= ENOENT (system-error-errno args)) - (chdir "/") - (throw 'system-error args)))) - - (modify-environment (job:environment job) (job:user job)) - ((job:action job))) - (λ () - (primitive-exit 0)))) - (else (update-number-children! 1+) ;parent - (job:next-time-set! job ((job:next-time-function job) - (current-time)))))) + (if (= (primitive-fork) 0) + (dynamic-wind ;child + (const #t) + (λ () + (setgid (passwd:gid (job:user job))) + (setuid (passwd:uid (job:user job))) + ;; Handle the case where the home directory points to a nonexistent + ;; location, as can be the case when running the job as the "nobody" + ;; user. + (catch 'system-error + (lambda () + (chdir (passwd:dir (job:user job)))) + (lambda args + (let ((errno (system-error-errno args))) + (cond + ((= ENOENT errno) (chdir "/")) + (else (throw 'system-error args)))))) + (modify-environment (job:environment job) (job:user job)) + ((job:action job))) + (λ () + (primitive-exit 0))) + (begin ;parent + (update-number-children! 1+) + (job:next-time-set! job ((job:next-time-function job) + (current-time)))))) (define (child-cleanup) ;; Give any zombie children a chance to die, and decrease the number known |