X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fsd-event.c;fp=src%2Flibsystemd-bus%2Fsd-event.c;h=65ee12d5ff5b7abd155e7cbed3794275e648a989;hb=8f726607ece2b49980152a53845aefde858768a5;hp=6af52ecb3cdf45325d91e74d91c0a4801397dbc9;hpb=f9f4dd51bdb016bab84f7fb3cf47a2ad102b4c76;p=elogind.git diff --git a/src/libsystemd-bus/sd-event.c b/src/libsystemd-bus/sd-event.c index 6af52ecb3..65ee12d5f 100644 --- a/src/libsystemd-bus/sd-event.c +++ b/src/libsystemd-bus/sd-event.c @@ -1371,6 +1371,17 @@ _public_ void* sd_event_source_get_userdata(sd_event_source *s) { return s->userdata; } +_public_ void *sd_event_source_set_userdata(sd_event_source *s, void *userdata) { + void *ret; + + assert_return(s, NULL); + + ret = s->userdata; + s->userdata = userdata; + + return ret; +} + static usec_t sleep_between(sd_event *e, usec_t a, usec_t b) { usec_t c; assert(e); @@ -2078,6 +2089,7 @@ _public_ int sd_event_set_watchdog(sd_event *e, int b) { int r; assert_return(e, -EINVAL); + assert_return(!event_pid_changed(e), -ECHILD); if (e->watchdog == !!b) return e->watchdog; @@ -2133,3 +2145,10 @@ fail: e->watchdog_fd = -1; return r; } + +_public_ int sd_event_get_watchdog(sd_event *e) { + assert_return(e, -EINVAL); + assert_return(!event_pid_changed(e), -ECHILD); + + return e->watchdog; +}