diff --git a/obexd/client/session.c b/obexd/client/session.c
index 9008635..a5797bd 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
session->transferred += written;
+ if (session->agent_name == NULL || session->agent_path == NULL)
+ return;
+
message = dbus_message_new_method_call(session->agent_name,
session->agent_path, AGENT_INTERFACE, "Progress");
return;
complete:
- message = dbus_message_new_method_call(session->agent_name,
+ if (session->agent_path && session->agent_name) {
+ message = dbus_message_new_method_call(session->agent_name,
session->agent_path, AGENT_INTERFACE, "Complete");
- dbus_message_append_args(message,
+ dbus_message_append_args(message,
DBUS_TYPE_OBJECT_PATH, &session->path,
DBUS_TYPE_INVALID);
- g_dbus_send_message(session->conn, message);
+ g_dbus_send_message(session->conn, message);
+ }
if (session->pending->len > 0) {
gchar *filename;
session_ref(session);
+ xfer = gw_obex_put_async(session->obex, session->name, NULL,
+ session->size, -1, NULL);
+ if (xfer == NULL)
+ return -ENOTCONN;
+
+ gw_obex_xfer_set_callback(xfer, put_xfer_progress, session);
+
+ session->xfer = xfer;
+
+ if (session->agent_name == NULL || session->agent_path == NULL)
+ return 0;
+
message = dbus_message_new_method_call(session->agent_name,
session->agent_path, AGENT_INTERFACE, "Request");
g_dbus_send_message(session->conn, message);
- xfer = gw_obex_put_async(session->obex, session->name, NULL,
- session->size, -1, NULL);
- if (xfer == NULL)
- return -ENOTCONN;
-
message = dbus_message_new_method_call(session->agent_name,
session->agent_path, AGENT_INTERFACE, "Progress");
g_dbus_send_message(session->conn, message);
- gw_obex_xfer_set_callback(xfer, put_xfer_progress, session);
-
- session->xfer = xfer;
-
return 0;
}