Diff between 3b850f2b8bb177f1efd85dc353cf0115cd1a4723 and 84689254a8729a08db35fd970631cea39551ea2f

Changed Files

File Additions Deletions Status
obexd/src/bluetooth.c +2 -19 modified
obexd/src/manager.c +4 -6 modified
obexd/src/obexd.h +2 -0 modified

Full Patch

diff --git a/obexd/src/bluetooth.c b/obexd/src/bluetooth.c
index c164258..990a108 100644
--- a/obexd/src/bluetooth.c
+++ b/obexd/src/bluetooth.c
@@ -42,6 +42,7 @@
 #include <openobex/obex.h>
 #include <openobex/obex_const.h>
 
+#include "obexd.h"
 #include "logging.h"
 #include "bluetooth.h"
 #include "obex.h"
@@ -53,24 +54,6 @@
 
 static GSList *servers = NULL;
 
-static void connect_event(GIOChannel *io, GError *err, gpointer user_data)
-{
-	struct server *server = user_data;
-	gint sk;
-
-	if (err) {
-		error("%s", err->message);
-		return;
-	}
-
-	sk = g_io_channel_unix_get_fd(io);
-
-	if (obex_session_start(sk, server) == 0)
-		return;
-
-	g_io_channel_shutdown(io, TRUE, NULL);
-}
-
 static void confirm_event(GIOChannel *io, gpointer user_data)
 {
 	struct server *server = user_data;
@@ -98,7 +81,7 @@ static void confirm_event(GIOChannel *io, gpointer user_data)
 		return;
 	}
 
-	if (!bt_io_accept(io, connect_event, server, NULL, &err)) {
+	if (!bt_io_accept(io, obex_connect_cb, server, NULL, &err)) {
 		error("%s", err->message);
 		g_error_free(err);
 		goto drop;
diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index c465d48..90f2663 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
@@ -999,7 +999,7 @@ static void service_cancel(struct pending_request *pending)
 	g_dbus_send_message(system_conn, msg);
 }
 
-static void connect_event(GIOChannel *io, GError *err, gpointer user_data)
+void obex_connect_cb(GIOChannel *io, GError *err, gpointer user_data)
 {
 	struct server *server = user_data;
 	gint sk;
@@ -1011,10 +1011,8 @@ static void connect_event(GIOChannel *io, GError *err, gpointer user_data)
 
 	sk = g_io_channel_unix_get_fd(io);
 
-	if (obex_session_start(sk, server) == 0)
-		return;
-
-	g_io_channel_shutdown(io, TRUE, NULL);
+	if (obex_session_start(sk, server) < 0)
+		g_io_channel_shutdown(io, TRUE, NULL);
 }
 
 static void service_reply(DBusPendingCall *call, gpointer user_data)
@@ -1041,7 +1039,7 @@ static void service_reply(DBusPendingCall *call, gpointer user_data)
 
 	debug("RequestAuthorization succeeded");
 
-	if (!bt_io_accept(io, connect_event, server, NULL, &err)) {
+	if (!bt_io_accept(io, obex_connect_cb, server, NULL, &err)) {
 		error("%s", err->message);
 		g_error_free(err);
 		g_io_channel_shutdown(io, TRUE, NULL);
diff --git a/obexd/src/obexd.h b/obexd/src/obexd.h
index a67fc04..3ae8143 100644
--- a/obexd/src/obexd.h
+++ b/obexd/src/obexd.h
@@ -27,6 +27,8 @@
 #define OPENOBEX_MANAGER_INTERFACE	OPENOBEX_SERVICE ".Manager"
 #define ERROR_INTERFACE			OPENOBEX_SERVICE ".Error"
 
+void obex_connect_cb(GIOChannel *io, GError *err, gpointer user_data);
+
 gboolean manager_init(void);
 void manager_cleanup(void);