diff --git a/client/main.c b/client/main.c
index 3244d42..774c0cd 100644
--- a/client/main.c
+++ b/client/main.c
{ NULL },
};
+static void client_ready(GDBusClient *client, void *user_data)
+{
+ guint *input = user_data;
+
+ *input = setup_standard_input();
+}
+
int main(int argc, char *argv[])
{
GOptionContext *context;
rl_set_prompt(PROMPT_OFF);
rl_redisplay();
- input = setup_standard_input();
signal = setup_signalfd();
client = g_dbus_client_new(dbus_conn, "org.bluez", "/org/bluez");
g_dbus_client_set_proxy_handlers(client, proxy_added, proxy_removed,
property_changed, NULL);
+ input = 0;
+ g_dbus_client_set_ready_watch(client, client_ready, &input);
+
g_main_loop_run(main_loop);
g_dbus_client_unref(client);
g_source_remove(signal);
- g_source_remove(input);
+ if (input > 0)
+ g_source_remove(input);
rl_message("");
rl_callback_handler_remove();