diff --git a/obexd/plugins/opp.c b/obexd/plugins/opp.c
index d12ff41..34bdbdb 100644
--- a/obexd/plugins/opp.c
+++ b/obexd/plugins/opp.c
return OBEX_RSP_SUCCESS;
}
-static void opp_progress(obex_t *obex, obex_object_t *obj)
+static void opp_progress(struct OBEX_session *os)
{
- struct obex_session *os = OBEX_GetUserData(obex);
-
- emit_transfer_progress(os->cid, os->size, os->offset);
+ manager_emit_transfer_progress(os);
}
static gint opp_chkput(obex_t *obex, obex_object_t *obj)
diff --git a/obexd/src/dbus.h b/obexd/src/dbus.h
index 0da6bae..659bef1 100644
--- a/obexd/src/dbus.h
+++ b/obexd/src/dbus.h
void manager_unregister_session(struct OBEX_session *os);
void manager_register_transfer(struct OBEX_session *os);
void manager_unregister_transfer(struct OBEX_session *os);
+void manager_emit_transfer_progress(struct OBEX_session *os);
diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index 3b03a78..3908c59 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
g_free(path);
}
+void manager_emit_transfer_progress(struct OBEX_session *os)
+{
+ emit_transfer_progress(os->cid, os->size, os->offset);
+}
+
DBusConnection *obex_dbus_get_connection(void)
{
if (connection == NULL)
diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 5dfc618..2369848 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
switch (evt) {
case OBEX_EV_PROGRESS:
if (os->service->progress)
- os->service->progress(obex, obj);
+ os->service->progress(os);
break;
case OBEX_EV_ABORT:
os->aborted = TRUE;
diff --git a/obexd/src/service.h b/obexd/src/service.h
index 6729251..3f35b80 100644
--- a/obexd/src/service.h
+++ b/obexd/src/service.h
guint who_size;
const gchar *record;
obex_rsp_t (*connect) (struct OBEX_session *os);
- void (*progress) (obex_t *obex, obex_object_t *obj);
+ void (*progress) (struct OBEX_session *os);
void (*get) (obex_t *obex, obex_object_t *obj);
void (*put) (obex_t *obex, obex_object_t *obj);
gint (*chkput) (obex_t *obex, obex_object_t *obj);