libactd: Add timeout parameter to unit-control 23/208323/1
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Wed, 19 Jun 2019 14:52:46 +0000 (16:52 +0200)
committerPaweł Szewczyk <p.szewczyk@samsung.com>
Fri, 21 Jun 2019 12:44:20 +0000 (14:44 +0200)
Change-Id: I1a36439684424d9393a1a2eaf2ab529cf2f33391
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
include/unit_control.h
src/libactd/unit_control.c
tests/unit_tests.c

index 3763725a007dbd263bf05529ce28f981db552784..e637ae0f2dbcb9876450915f766dec5611648c61 100644 (file)
@@ -7,12 +7,12 @@
 
 typedef void (*actd_unit_cb)(GVariant *var, void *user_data, GError *err);
 
-int actd_start_unit(GBusType bus_type, const char *unit);
-int actd_stop_unit(GBusType bus_type, const char *unit);
-int actd_restart_unit(GBusType bus_type, const char *unit);
+int actd_start_unit(GBusType bus_type, const char *unit, int timeout);
+int actd_stop_unit(GBusType bus_type, const char *unit, int timeout);
+int actd_restart_unit(GBusType bus_type, const char *unit, int timeout);
 
-int actd_start_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data);
-int actd_stop_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data);
-int actd_restart_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data);
+int actd_start_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data, int timeout);
+int actd_stop_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data, int timeout);
+int actd_restart_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data, int timeout);
 
 #endif /* UNIT_CONTROL_H */
index 4156faf227b4fdbde35f44dcae99c7e564a58ab9..c54846db17c2b56e8633925ddfea7076957c3f36 100644 (file)
@@ -63,7 +63,7 @@ const char *translate_to_systemd(const char *method)
        return NULL;
 }
 
-static int call_uc(GBusType bus_type, const char *method, const char *unit)
+static int call_uc(GBusType bus_type, const char *method, const char *unit, int timeout)
 {
        int ret;
        GVariant *msg = NULL;
@@ -83,7 +83,7 @@ static int call_uc(GBusType bus_type, const char *method, const char *unit)
                                g_variant_new("(ss)", unit, "replace"),
                                NULL,
                                G_DBUS_CALL_FLAGS_NONE,
-                               -1,
+                               timeout,
                                NULL,
                                NULL);
                if (!msg)
@@ -100,7 +100,7 @@ static int call_uc(GBusType bus_type, const char *method, const char *unit)
                                g_variant_new("(s)", unit),
                                NULL,
                                G_DBUS_CALL_FLAGS_NONE,
-                               -1,
+                               timeout,
                                NULL,
                                NULL);
                if (!msg)
@@ -118,7 +118,7 @@ static int call_uc(GBusType bus_type, const char *method, const char *unit)
        return ret;
 }
 
-static int call_uc_async(GBusType bus_type, const char *method, const char *unit, actd_unit_cb cb, void *user_data)
+static int call_uc_async(GBusType bus_type, const char *method, const char *unit, actd_unit_cb cb, void *user_data, int timeout)
 {
        GDBusConnection *bus;
        struct generic_user_data *data = user_data;
@@ -143,7 +143,7 @@ static int call_uc_async(GBusType bus_type, const char *method, const char *unit
                                g_variant_new("(ss)", unit, "replace"),
                                NULL,
                                G_DBUS_CALL_FLAGS_NONE,
-                               -1,
+                               timeout,
                                NULL,
                                (GAsyncReadyCallback) generic_callback,
                                data);
@@ -156,7 +156,7 @@ static int call_uc_async(GBusType bus_type, const char *method, const char *unit
                                g_variant_new("(s)", unit),
                                NULL,
                                G_DBUS_CALL_FLAGS_NONE,
-                               -1,
+                               timeout,
                                NULL,
                                (GAsyncReadyCallback) generic_callback,
                                data);
@@ -165,32 +165,32 @@ static int call_uc_async(GBusType bus_type, const char *method, const char *unit
        return 0;
 }
 
-int actd_start_unit(GBusType bus_type, const char *unit)
+int actd_start_unit(GBusType bus_type, const char *unit, int timeout)
 {
-       return call_uc(bus_type, "Start", unit);
+       return call_uc(bus_type, "Start", unit, timeout);
 }
 
-int actd_stop_unit(GBusType bus_type, const char *unit)
+int actd_stop_unit(GBusType bus_type, const char *unit, int timeout)
 {
-       return call_uc(bus_type, "Stop", unit);
+       return call_uc(bus_type, "Stop", unit, timeout);
 }
 
-int actd_restart_unit(GBusType bus_type, const char *unit)
+int actd_restart_unit(GBusType bus_type, const char *unit, int timeout)
 {
-       return call_uc(bus_type, "Restart", unit);
+       return call_uc(bus_type, "Restart", unit, timeout);
 }
 
-int actd_start_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data)
+int actd_start_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data, int timeout)
 {
-       return call_uc_async(bus_type, "Start", unit, cb, user_data);
+       return call_uc_async(bus_type, "Start", unit, cb, user_data, timeout);
 }
 
-int actd_stop_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data)
+int actd_stop_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data, int timeout)
 {
-       return call_uc_async(bus_type, "Stop", unit, cb, user_data);
+       return call_uc_async(bus_type, "Stop", unit, cb, user_data, timeout);
 }
 
-int actd_restart_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data)
+int actd_restart_unit_async(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data, int timeout)
 {
-       return call_uc_async(bus_type, "Restart", unit, cb, user_data);
+       return call_uc_async(bus_type, "Restart", unit, cb, user_data, timeout);
 }
index 6af3d1dc27991c6e0bd6f0cd908da295dcd03e46..88d82c23e1c534d731a91ec4cd057e9cc52fc64d 100644 (file)
@@ -9,17 +9,17 @@ static const char *async_result = NULL;
 
 int test_unit_start()
 {
-       return actd_start_unit(G_BUS_TYPE_SYSTEM, TEST_SERVICE);
+       return actd_start_unit(G_BUS_TYPE_SYSTEM, TEST_SERVICE, -1);
 }
 
 int test_unit_stop()
 {
-       return actd_stop_unit(G_BUS_TYPE_SYSTEM, TEST_SERVICE);
+       return actd_stop_unit(G_BUS_TYPE_SYSTEM, TEST_SERVICE, -1);
 }
 
 int test_unit_restart()
 {
-       return actd_restart_unit(G_BUS_TYPE_SYSTEM, TEST_SERVICE);
+       return actd_restart_unit(G_BUS_TYPE_SYSTEM, TEST_SERVICE, -1);
 }
 
 void handler(GVariant *var, void *user_data, GError *err)
@@ -37,7 +37,7 @@ void handler(GVariant *var, void *user_data, GError *err)
        }
 }
 
-int test_async_action(GBusType bus_type, int (*func)(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data))
+int test_async_action(GBusType bus_type, int (*func)(GBusType bus_type, const char *unit, actd_unit_cb cb, void *user_data, int timeout))
 {
        assert(func);
        int ret;
@@ -45,7 +45,7 @@ int test_async_action(GBusType bus_type, int (*func)(GBusType bus_type, const ch
 
        loop = g_main_loop_new(NULL, FALSE);
 
-       ret = func(bus_type, TEST_SERVICE, handler, loop);
+       ret = func(bus_type, TEST_SERVICE, handler, loop, -1);
        if (ret < 0)
                return ret;
 
@@ -78,17 +78,17 @@ int test_unit_restart_async()
 
 int test_unit_start_session()
 {
-       return actd_start_unit(G_BUS_TYPE_SESSION, TEST_SERVICE);
+       return actd_start_unit(G_BUS_TYPE_SESSION, TEST_SERVICE, -1);
 }
 
 int test_unit_stop_session()
 {
-       return actd_stop_unit(G_BUS_TYPE_SESSION, TEST_SERVICE);
+       return actd_stop_unit(G_BUS_TYPE_SESSION, TEST_SERVICE, -1);
 }
 
 int test_unit_restart_session()
 {
-       return actd_restart_unit(G_BUS_TYPE_SESSION, TEST_SERVICE);
+       return actd_restart_unit(G_BUS_TYPE_SESSION, TEST_SERVICE, -1);
 }
 
 int test_unit_start_async_session()