summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/sd_event_source_set_enabled.xml14
-rw-r--r--src/libsystemd/sd-event/sd-event.c6
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) {