diff --git a/obexd/src/main.c b/obexd/src/main.c
index 9e4b6d1..f23356c 100644
--- a/obexd/src/main.c
+++ b/obexd/src/main.c
return ret;
}
+void tty_closed(void)
+{
+ tty_needs_reinit = TRUE;
+}
+
static void sig_term(int sig)
{
g_main_loop_quit(main_loop);
diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index cc17b28..e8137be 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
OBEX_Cleanup(obex);
}
-static gboolean tty_reinit(gpointer data)
-{
- struct server *server = data;
-
- tty_init(server->services, server->folder, server->capability, server->devnode);
-
- server_free(server);
-
- return FALSE;
-}
-
static gboolean obex_handle_input(GIOChannel *io,
GIOCondition cond, gpointer user_data)
{
os = OBEX_GetUserData(obex);
if (os->server->devnode)
- g_idle_add(tty_reinit, os->server);
+ tty_closed();
return FALSE;
}
diff --git a/obexd/src/obex.h b/obexd/src/obex.h
index aab863a..021ac45 100644
--- a/obexd/src/obex.h
+++ b/obexd/src/obex.h
int tty_init(gint service, const gchar *folder, const gchar *capability,
const gchar *devnode);
+void tty_closed(void);