]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-event: make sd_event_source_get_enabled return more info
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 16 Nov 2018 07:43:43 +0000 (08:43 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 16 Nov 2018 08:03:41 +0000 (09:03 +0100)
man/sd_event_source_set_enabled.xml
src/libsystemd/sd-event/sd-event.c

index 87c38707e11456b8f9d55ec767ceb2d85f760b3f..73f01848d5645e6d4d61e8147b243f34df1d09af 100644 (file)
     <para><function>sd_event_source_get_enabled()</function> may be
     used to query whether the event source object
     <parameter>source</parameter> is currently enabled or not. It
-    returns the enablement state in
-    <parameter>enabled</parameter>.</para>
+    returns the enablement state (one of <constant>SD_EVENT_ON</constant>,
+    <constant>SD_EVENT_OFF</constant>, <constant>SD_EVENT_ONESHOT</constant>)
+    in <parameter>enabled</parameter>, if it is not <constant>NULL</constant>.
+    It also returns true if the event source is not disabled.</para>
 
     <para>Event source objects are enabled when they are first created
     with calls such as
   <refsect1>
     <title>Return Value</title>
 
-    <para>On success, <function>sd_event_source_set_enabled()</function> and
-    <function>sd_event_source_get_enabled()</function> return a
-    non-negative integer. On failure, they return a negative
-    errno-style error code.</para>
+    <para>On success, <function>sd_event_source_set_enabled()</function> returns a non-negative
+    integer. <function>sd_event_source_get_enabled()</function> returns zero if the source is
+    disabled (<constant>SD_EVENT_OFF</constant>) and a positive integer otherwise. On failure, they
+    return a negative errno-style error code.</para>
   </refsect1>
 
   <refsect1>
index 8762b7b89d99ff94958ca2cb1a0e4a28fa3bef9f..66824c6c78daafe5a39aee04e8d52ecd1cd91199 100644 (file)
@@ -2143,11 +2143,11 @@ fail:
 
 _public_ int sd_event_source_get_enabled(sd_event_source *s, int *m) {
         assert_return(s, -EINVAL);
-        assert_return(m, -EINVAL);
         assert_return(!event_pid_changed(s->event), -ECHILD);
 
-        *m = s->enabled;
-        return 0;
+        if (m)
+                *m = s->enabled;
+        return s->enabled != SD_EVENT_OFF;
 }
 
 _public_ int sd_event_source_set_enabled(sd_event_source *s, int m) {