Diff between 41d2c6f4c02e8cddf66b2cfe850c2cf62c019e8b and 196e08df850f8b2771b1c6c38e5711ab33da7b02

Changed Files

File Additions Deletions Status
obexd/src/main.c +5 -0 modified
obexd/src/obex.c +1 -12 modified
obexd/src/obex.h +1 -0 modified

Full Patch

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
@@ -107,6 +107,11 @@ int tty_init(int services, const gchar *root_path,
 	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
@@ -928,17 +928,6 @@ static void obex_handle_destroy(gpointer user_data)
 	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)
 {
@@ -954,7 +943,7 @@ static gboolean obex_handle_input(GIOChannel *io,
 
 		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
@@ -112,3 +112,4 @@ void server_free(struct server *server);
 
 int tty_init(gint service, const gchar *folder, const gchar *capability,
 		const gchar *devnode);
+void tty_closed(void);