summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-06-17 22:53:55 +0200
committerLennart Poettering <lennart@poettering.net>2010-06-17 22:53:55 +0200
commit08bfb8106b3a337ebf9a4bf3a8ddd2e494d18b48 (patch)
tree3de39d54005094d3380b4e98c6b9f8c66ee2cfc4
parentbbe63281ea16ed9899dd4818874098c05e36b154 (diff)
sd-daemon: extend return value logic of sd_notify()
-rw-r--r--src/sd-daemon.c8
-rw-r--r--src/sd-daemon.h12
2 files changed, 12 insertions, 8 deletions
diff --git a/src/sd-daemon.c b/src/sd-daemon.c
index 0dad73f94d..e6b9a6f3c2 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 0277b0fb5c..2d79082aa3 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);