chiark / gitweb /
sd-daemon: extend return value logic of sd_notify()
authorLennart Poettering <lennart@poettering.net>
Thu, 17 Jun 2010 20:53:55 +0000 (22:53 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 17 Jun 2010 20:53:55 +0000 (22:53 +0200)
src/sd-daemon.c
src/sd-daemon.h

index 0dad73f94d6064e39bad7b84cadf3dea8b3f8b57..e6b9a6f3c217ca2fff601929627ac4cb648c98f4 100644 (file)
@@ -344,10 +344,8 @@ int sd_notify(int unset_environment, const char *state) {
                 goto finish;
         }
 
                 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) {
 
         /* 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;
         }
 
                 goto finish;
         }
 
-        r = 0;
+        r = 1;
 
 finish:
         if (unset_environment)
 
 finish:
         if (unset_environment)
index 0277b0fb5cbf32eabf2a0a59a7277d3d589f99aa..2d79082aa3b37ff9590dcffc8294934450fe7392 100644 (file)
@@ -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".
  *
  *                 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
  *                 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"
  *
  *    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);
  * See sd_notifyf() for more complete examples.
  */
 int sd_notify(int unset_environment, const char *state);