diff --git a/obexd/client/session.c b/obexd/client/session.c
index ab20b88..306e2ba 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
struct obc_transfer *transfer = user_data;
GError *err = NULL;
- if (!obc_transfer_start(transfer, &err)) {
+ if (!obc_transfer_start(transfer, session->obex, &err)) {
session_notify_error(session, transfer, err);
g_clear_error(&err);
return;
else
agent = NULL;
- transfer = obc_transfer_register(session->conn, session->obex,
- agent, G_OBEX_OP_GET,
- targetfile, name,
- type, params);
+ transfer = obc_transfer_register(session->conn, agent, G_OBEX_OP_GET,
+ targetfile, name, type, params);
if (transfer == NULL) {
if (params != NULL) {
g_free(params->data);
agent = obc_agent_get_name(session->agent);
- transfer = obc_transfer_register(session->conn, session->obex,
- agent, G_OBEX_OP_PUT,
- filename, name,
- NULL, NULL);
+ transfer = obc_transfer_register(session->conn, agent, G_OBEX_OP_PUT,
+ filename, name, NULL, NULL);
if (transfer == NULL)
return -EINVAL;
agent = obc_agent_get_name(session->agent);
- transfer = obc_transfer_register(session->conn, session->obex,
- agent, G_OBEX_OP_PUT,
- NULL, name,
- NULL, NULL);
+ transfer = obc_transfer_register(session->conn, agent, G_OBEX_OP_PUT,
+ NULL, name, NULL, NULL);
if (transfer == NULL)
return -EIO;
diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c
index 8559c33..05272d8 100644
--- a/obexd/client/transfer.c
+++ b/obexd/client/transfer.c
}
struct obc_transfer *obc_transfer_register(DBusConnection *conn,
- GObex *obex,
const char *agent,
guint8 op,
const char *filename,
struct obc_transfer *transfer;
transfer = g_new0(struct obc_transfer, 1);
- transfer->obex = g_obex_ref(obex);
transfer->op = op;
transfer->agent = g_strdup(agent);
transfer->filename = g_strdup(filename);
return TRUE;
}
-gboolean obc_transfer_start(struct obc_transfer *transfer, GError **err)
+gboolean obc_transfer_start(struct obc_transfer *transfer, GObex *obex,
+ GError **err)
{
+ transfer->obex = g_obex_ref(obex);
+
switch (transfer->op) {
case G_OBEX_OP_GET:
return transfer_start_get(transfer, err);
diff --git a/obexd/client/transfer.h b/obexd/client/transfer.h
index 7858423..b044ce1 100644
--- a/obexd/client/transfer.h
+++ b/obexd/client/transfer.h
void *user_data);
struct obc_transfer *obc_transfer_register(DBusConnection *conn,
- GObex *obex,
const char *agent,
guint8 op,
const char *filename,
transfer_callback_t func,
void *user_data);
-gboolean obc_transfer_start(struct obc_transfer *transfer, GError **err);
+gboolean obc_transfer_start(struct obc_transfer *transfer, GObex *obex,
+ GError **err);
guint8 obc_transfer_get_operation(struct obc_transfer *transfer);
int obc_transfer_get_params(struct obc_transfer *transfer,