From 08bfb8106b3a337ebf9a4bf3a8ddd2e494d18b48 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 17 Jun 2010 22:53:55 +0200 Subject: [PATCH] sd-daemon: extend return value logic of sd_notify() --- src/sd-daemon.c | 8 +++----- src/sd-daemon.h | 12 +++++++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/sd-daemon.c b/src/sd-daemon.c index 0dad73f9..e6b9a6f3 100644 --- a/src/sd-daemon.c +++ b/src/sd-daemon.c @@ -344,10 +344,8 @@ int sd_notify(int unset_environment, const char *state) { goto finish; } - if (!(e = getenv("NOTIFY_SOCKET"))) { - r = 0; - goto finish; - } + if (!(e = getenv("NOTIFY_SOCKET"))) + return 0; /* Must be an abstract socket, or an absolute path */ if ((e[0] != '@' && e[0] != '/') || e[1] == 0) { @@ -394,7 +392,7 @@ int sd_notify(int unset_environment, const char *state) { goto finish; } - r = 0; + r = 1; finish: if (unset_environment) diff --git a/src/sd-daemon.h b/src/sd-daemon.h index 0277b0fb..2d79082a 100644 --- a/src/sd-daemon.h +++ b/src/sd-daemon.h @@ -126,9 +126,9 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t * little value in signalling non-readiness the only * value daemons should send is "READY=1". * - * STATUS=... Passes a status string back to systemd that - * describes the daemon state. This is free-from and - * can be used for various purposes: general state + * STATUS=... Passes a single-line status string back to systemd + * that describes the daemon state. This is free-from + * and can be used for various purposes: general state * feedback, fsck-like programs could pass completion * percentages and failing programs could pass a human * readable error message. Example: "STATUS=Completed @@ -143,6 +143,12 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t * MAINPID=... The main pid of a daemon, in case systemd did not * fork off the process itself. Example: "MAINPID=4711" * + * Daemons can choose to send additional variables. + * + * Returns a negative errno-style error code on failure. Returns > 0 + * if systemd could be notified, 0 if it couldn't possibly because + * systemd is not running. + * * See sd_notifyf() for more complete examples. */ int sd_notify(int unset_environment, const char *state); -- 2.39.5