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
#include <openobex/obex.h>
#include <openobex/obex_const.h>
+#include "obexd.h"
#include "logging.h"
#include "bluetooth.h"
#include "obex.h"
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;
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
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;
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)
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
#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);