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 */
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;
g_variant_new("(ss)", unit, "replace"),
NULL,
G_DBUS_CALL_FLAGS_NONE,
- -1,
+ timeout,
NULL,
NULL);
if (!msg)
g_variant_new("(s)", unit),
NULL,
G_DBUS_CALL_FLAGS_NONE,
- -1,
+ timeout,
NULL,
NULL);
if (!msg)
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;
g_variant_new("(ss)", unit, "replace"),
NULL,
G_DBUS_CALL_FLAGS_NONE,
- -1,
+ timeout,
NULL,
(GAsyncReadyCallback) generic_callback,
data);
g_variant_new("(s)", unit),
NULL,
G_DBUS_CALL_FLAGS_NONE,
- -1,
+ timeout,
NULL,
(GAsyncReadyCallback) generic_callback,
data);
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);
}
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)
}
}
-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;
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;
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()