diff options
-rw-r--r-- | man/sd_event_source_set_enabled.xml | 14 | ||||
-rw-r--r-- | src/libsystemd/sd-event/sd-event.c | 6 |
2 files changed, 11 insertions, 9 deletions
diff --git a/man/sd_event_source_set_enabled.xml b/man/sd_event_source_set_enabled.xml index 87c38707e1..73f01848d5 100644 --- a/man/sd_event_source_set_enabled.xml +++ b/man/sd_event_source_set_enabled.xml @@ -74,8 +74,10 @@ <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 @@ -100,10 +102,10 @@ <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> diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c index 8762b7b89d..66824c6c78 100644 --- a/src/libsystemd/sd-event/sd-event.c +++ b/src/libsystemd/sd-event/sd-event.c @@ -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) { |