chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sd-daemon,man: ignore missing $WATCHDOG_PID
[elogind.git]
/
src
/
libsystemd
/
sd-daemon
/
sd-daemon.c
diff --git
a/src/libsystemd/sd-daemon/sd-daemon.c
b/src/libsystemd/sd-daemon/sd-daemon.c
index 46241f77ff2cba161c077eb984b0cff102f950d7..1f2a53393f58a1f5e27a6286cd6d4ebb65b470e3 100644
(file)
--- a/
src/libsystemd/sd-daemon/sd-daemon.c
+++ b/
src/libsystemd/sd-daemon/sd-daemon.c
@@
-491,39
+491,35
@@
_public_ int sd_booted(void) {
}
_public_ int sd_watchdog_enabled(int unset_environment, uint64_t *usec) {
}
_public_ int sd_watchdog_enabled(int unset_environment, uint64_t *usec) {
- const char *
e;
+ const char *
s, *p = ""; /* p is set to dummy value to do unsetting */
uint64_t u;
uint64_t u;
- pid_t pid;
- int r;
+ int r = 0;
- e = getenv("WATCHDOG_PID");
- if (!e) {
- r = 0;
+ s = getenv("WATCHDOG_USEC");
+ if (!s)
goto finish;
goto finish;
- }
- r =
parse_pid(e, &pid
);
+ r =
safe_atou64(s, &u
);
if (r < 0)
goto finish;
if (r < 0)
goto finish;
-
- /* Is this for us? */
- if (getpid() != pid) {
- r = 0;
- goto finish;
- }
-
- e = getenv("WATCHDOG_USEC");
- if (!e) {
+ if (u <= 0) {
r = -EINVAL;
goto finish;
}
r = -EINVAL;
goto finish;
}
- r = safe_atou64(e, &u);
- if (r < 0)
- goto finish;
- if (u <= 0) {
- r = -EINVAL;
- goto finish;
+ p = getenv("WATCHDOG_PID");
+ if (p) {
+ pid_t pid;
+
+ r = parse_pid(p, &pid);
+ if (r < 0)
+ goto finish;
+
+ /* Is this for us? */
+ if (getpid() != pid) {
+ r = 0;
+ goto finish;
+ }
}
if (usec)
}
if (usec)
@@
-532,10
+528,10
@@
_public_ int sd_watchdog_enabled(int unset_environment, uint64_t *usec) {
r = 1;
finish:
r = 1;
finish:
- if (unset_environment) {
- unsetenv("WATCHDOG_PID");
+ if (unset_environment && s)
unsetenv("WATCHDOG_USEC");
unsetenv("WATCHDOG_USEC");
- }
+ if (unset_environment && p)
+ unsetenv("WATCHDOG_PID");
return r;
}
return r;
}