mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 08:25:20 +09:00
sd-device-monitor: introduce sd_device_monitor_is_running()
This commit is contained in:
@@ -1044,4 +1044,5 @@ global:
|
||||
sd_varlink_take_fd;
|
||||
sd_varlink_unref;
|
||||
sd_varlink_wait;
|
||||
sd_device_monitor_is_running;
|
||||
} LIBSYSTEMD_256;
|
||||
|
||||
@@ -246,6 +246,13 @@ _public_ int sd_device_monitor_new(sd_device_monitor **ret) {
|
||||
return device_monitor_new_full(ret, MONITOR_GROUP_UDEV, -EBADF);
|
||||
}
|
||||
|
||||
_public_ int sd_device_monitor_is_running(sd_device_monitor *m) {
|
||||
if (!m)
|
||||
return 0;
|
||||
|
||||
return sd_event_source_get_enabled(m->event_source, NULL);
|
||||
}
|
||||
|
||||
_public_ int sd_device_monitor_stop(sd_device_monitor *m) {
|
||||
assert_return(m, -EINVAL);
|
||||
|
||||
|
||||
@@ -99,6 +99,19 @@ static void send_by_enumerator(
|
||||
}
|
||||
}
|
||||
|
||||
TEST(sd_device_monitor_is_running) {
|
||||
_cleanup_(sd_device_monitor_unrefp) sd_device_monitor *m = NULL;
|
||||
|
||||
ASSERT_EQ(sd_device_monitor_is_running(NULL), 0);
|
||||
|
||||
ASSERT_OK(device_monitor_new_full(&m, MONITOR_GROUP_NONE, -1));
|
||||
ASSERT_EQ(sd_device_monitor_is_running(m), 0);
|
||||
ASSERT_OK(sd_device_monitor_start(m, NULL, NULL));
|
||||
ASSERT_EQ(sd_device_monitor_is_running(m), 1);
|
||||
ASSERT_OK(sd_device_monitor_stop(m));
|
||||
ASSERT_EQ(sd_device_monitor_is_running(m), 0);
|
||||
}
|
||||
|
||||
TEST(refuse_invalid_device) {
|
||||
_cleanup_(sd_device_monitor_unrefp) sd_device_monitor *monitor_server = NULL, *monitor_client = NULL;
|
||||
_cleanup_(sd_device_unrefp) sd_device *loopback = NULL;
|
||||
|
||||
@@ -149,6 +149,7 @@ sd_event *sd_device_monitor_get_event(sd_device_monitor *m);
|
||||
sd_event_source *sd_device_monitor_get_event_source(sd_device_monitor *m);
|
||||
int sd_device_monitor_set_description(sd_device_monitor *m, const char *description);
|
||||
int sd_device_monitor_get_description(sd_device_monitor *m, const char **ret);
|
||||
int sd_device_monitor_is_running(sd_device_monitor *m);
|
||||
int sd_device_monitor_start(sd_device_monitor *m, sd_device_monitor_handler_t callback, void *userdata);
|
||||
int sd_device_monitor_stop(sd_device_monitor *m);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user