diff --git a/obexd/client/driver.c b/obexd/client/driver.c
index f9e8fbc..fe61219 100644
--- a/obexd/client/driver.c
+++ b/obexd/client/driver.c
#include <string.h>
#include <errno.h>
#include <glib.h>
+#include <gdbus.h>
+#include "transfer.h"
#include "session.h"
#include "driver.h"
#include "log.h"
diff --git a/obexd/client/ftp.c b/obexd/client/ftp.c
index 0e6af47..0cb3adc 100644
--- a/obexd/client/ftp.c
+++ b/obexd/client/ftp.c
#include "log.h"
+#include "transfer.h"
#include "session.h"
#include "driver.h"
#include "ftp.h"
struct obc_session *session;
};
-static void async_cb(struct obc_session *session, GError *err,
- gpointer user_data)
+static void async_cb(struct obc_session *session, struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
DBusMessage *reply, *msg = user_data;
NULL
};
-static void get_file_callback(struct obc_session *session, GError *err,
- void *user_data)
+static void get_file_callback(struct obc_session *session,
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
DBusMessage *msg = user_data;
DBusMessage *reply;
}
static void list_folder_callback(struct obc_session *session,
- GError *err, void *user_data)
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
DBusMessage *msg = user_data;
GMarkupParseContext *ctxt;
diff --git a/obexd/client/manager.c b/obexd/client/manager.c
index 6d08702..820ef37 100644
--- a/obexd/client/manager.c
+++ b/obexd/client/manager.c
#include <gdbus.h>
#include "log.h"
+#include "transfer.h"
#include "session.h"
#include "manager.h"
#include "bluetooth.h"
obc_session_unref(session);
}
-static void create_callback(struct obc_session *session, GError *err,
- void *user_data)
+static void create_callback(struct obc_session *session,
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
struct send_data *data = user_data;
unsigned int i;
}
static void pull_complete_callback(struct obc_session *session,
+ struct obc_transfer *transfer,
GError *err, void *user_data)
{
struct send_data *data = user_data;
}
static void pull_obc_session_callback(struct obc_session *session,
- GError *err, void *user_data)
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
struct send_data *data = user_data;
DBusMessage *reply;
}
static void capabilities_complete_callback(struct obc_session *session,
+ struct obc_transfer *transfer,
GError *err, void *user_data)
{
struct send_data *data = user_data;
}
static void capability_obc_session_callback(struct obc_session *session,
+ struct obc_transfer *transfer,
GError *err, void *user_data)
{
struct send_data *data = user_data;
diff --git a/obexd/client/map.c b/obexd/client/map.c
index 1b4e404..50d02c6 100644
--- a/obexd/client/map.c
+++ b/obexd/client/map.c
#include "log.h"
#include "map.h"
+#include "transfer.h"
#include "session.h"
#include "driver.h"
static DBusConnection *conn = NULL;
-static void simple_cb(struct obc_session *session, GError *err,
- gpointer user_data)
+static void simple_cb(struct obc_session *session,
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
DBusMessage *reply;
struct map_data *map = user_data;
return NULL;
}
-static void buffer_cb(struct obc_session *session, GError *err,
- void *user_data)
+static void buffer_cb(struct obc_session *session,
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
struct map_data *map = user_data;
DBusMessage *reply;
diff --git a/obexd/client/opp.c b/obexd/client/opp.c
index be382ef..efbf3e9 100644
--- a/obexd/client/opp.c
+++ b/obexd/client/opp.c
#include <config.h>
#endif
+#include <gdbus.h>
+
#include "log.h"
+#include "transfer.h"
#include "session.h"
#include "driver.h"
#include "opp.h"
diff --git a/obexd/client/pbap.c b/obexd/client/pbap.c
index d96b651..c43d8dd 100644
--- a/obexd/client/pbap.c
+++ b/obexd/client/pbap.c
#include "log.h"
+#include "transfer.h"
#include "session.h"
#include "driver.h"
#include "pbap.h"
obc_session_setpath(pbap->session, pbap->path, NULL, NULL, NULL);
}
-static void pbap_setpath_cb(struct obc_session *session, GError *err,
- gpointer user_data)
+static void pbap_setpath_cb(struct obc_session *session,
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
struct pending_request *request = user_data;
struct pbap_data *pbap = request->pbap;
}
static void pull_phonebook_callback(struct obc_session *session,
- GError *err, void *user_data)
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
struct pending_request *request = user_data;
DBusMessage *reply;
}
static void phonebook_size_callback(struct obc_session *session,
- GError *err, void *user_data)
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
struct pending_request *request = user_data;
DBusMessage *reply;
}
static void pull_vcard_listing_callback(struct obc_session *session,
- GError *err, void *user_data)
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
struct pending_request *request = user_data;
GMarkupParseContext *ctxt;
diff --git a/obexd/client/session.c b/obexd/client/session.c
index 824ef49..408428c 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
"OBEX Connect failed with 0x%02x", rsp_code);
done:
- callback->func(callback->session, gerr, callback->data);
+ callback->func(callback->session, NULL, gerr, callback->data);
if (gerr != NULL)
g_error_free(gerr);
obc_session_unref(callback->session);
return;
done:
- callback->func(callback->session, err, callback->data);
+ callback->func(callback->session, NULL, err, callback->data);
obc_session_unref(callback->session);
g_free(callback);
}
{
struct callback_data *cb = data;
- cb->func(cb->session, 0, cb->data);
+ cb->func(cb->session, NULL, NULL, cb->data);
obc_session_unref(cb->session);
if (session->p != NULL && session->p->id != 0) {
if (session->p->func)
- session->p->func(session, err, session->p->data);
+ session->p->func(session, session->p->transfer, err,
+ session->p->data);
pending_request_free(session->p);
session->p = NULL;
while ((p = g_queue_pop_head(session->queue))) {
if (p->func)
- p->func(session, err, p->data);
+ p->func(session, p->transfer, err, p->data);
pending_request_free(p);
}
g_set_error(&gerr, OBEX_IO_ERROR, err,
"Authorization failed");
- p->func(session, gerr, p->data);
+ p->func(session, p->transfer, gerr, p->data);
g_error_free(gerr);
}
obc_session_ref(session);
if (p->func)
- p->func(session, gerr, p->data);
+ p->func(session, p->transfer, gerr, p->data);
pending_request_free(p);
return obc_transfer_get_params(transfer, size);
}
-static void setpath_complete(struct obc_session *session, GError *err,
- void *user_data)
+static void setpath_complete(struct obc_session *session,
+ struct obc_transfer *transfer,
+ GError *err, void *user_data)
{
struct pending_request *p = user_data;
struct setpath_data *data = p->data;
if (data->func)
- data->func(session, err, data->user_data);
+ data->func(session, NULL, err, data->user_data);
g_strfreev(data->remaining);
g_free(data);
p->req_id = 0;
if (err != NULL) {
- setpath_complete(p->session, err, user_data);
+ setpath_complete(p->session, NULL, err, user_data);
return;
}
GError *gerr = NULL;
g_set_error(&gerr, OBEX_IO_ERROR, code, "%s",
g_obex_strerror(code));
- setpath_complete(p->session, err, user_data);
+ setpath_complete(p->session, NULL, err, user_data);
g_clear_error(&gerr);
return;
}
next = data->remaining[data->index];
if (next == NULL) {
- setpath_complete(p->session, NULL, user_data);
+ setpath_complete(p->session, NULL, NULL, user_data);
return;
}
p->req_id = g_obex_setpath(obex, next, setpath_cb, p, &err);
if (err != NULL) {
- setpath_complete(p->session, err, data);
+ setpath_complete(p->session, NULL, err, data);
g_error_free(err);
}
}
if (err != NULL) {
if (p->func)
- p->func(p->session, err, p->data);
+ p->func(p->session, NULL, err, p->data);
goto done;
}
g_obex_strerror(code));
if (p->func)
- p->func(p->session, gerr, p->data);
+ p->func(p->session, NULL, gerr, p->data);
if (gerr != NULL)
g_clear_error(&gerr);
diff --git a/obexd/client/session.h b/obexd/client/session.h
index b44cf3f..ca97900 100644
--- a/obexd/client/session.h
+++ b/obexd/client/session.h
struct obc_session;
typedef void (*session_callback_t) (struct obc_session *session,
+ struct obc_transfer *transfer,
GError *err, void *user_data);
struct obc_session *obc_session_create(const char *source,
diff --git a/obexd/client/sync.c b/obexd/client/sync.c
index 9a26f5b..c549040 100644
--- a/obexd/client/sync.c
+++ b/obexd/client/sync.c
#include "log.h"
+#include "transfer.h"
#include "session.h"
#include "driver.h"
#include "sync.h"
}
static void sync_getphonebook_callback(struct obc_session *session,
+ struct obc_transfer *transfer,
GError *err, void *user_data)
{
struct sync_data *sync = user_data;