Diff between 84d105d8e0a4910954c868c2eb3b8a98b952e7ba and 1fee4d9205bbc515060636fa1c537b0e2fc39906

Changed Files

File Additions Deletions Status
obexd/client/session.c +10 -6 modified
obexd/client/transfer.c +3 -4 modified

Full Patch

diff --git a/obexd/client/session.c b/obexd/client/session.c
index 57a5b06..28fae03 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
@@ -685,8 +685,12 @@ static void session_request_reply(DBusPendingCall *call, gpointer user_data)
 
 	DBG("Agent.Request() reply: %s", name);
 
-	if (strlen(name))
-		obc_transfer_set_name(transfer, name);
+	if (strlen(name)) {
+		if (p->auth_complete == session_prepare_put)
+			obc_transfer_set_name(transfer, name);
+		else
+			obc_transfer_set_filename(transfer, name);
+	}
 
 	if (p->auth_complete)
 		p->auth_complete(session, transfer);
@@ -955,8 +959,8 @@ int obc_session_get(struct obc_session *session, const char *type,
 		agent = NULL;
 
 	transfer = obc_transfer_register(session->conn, session->obex,
-							agent, filename,
-							targetname, type,
+							agent, targetname,
+							filename, type,
 							params);
 	if (transfer == NULL) {
 		if (params != NULL) {
@@ -1015,8 +1019,8 @@ int obc_session_pull(struct obc_session *session,
 		agent = NULL;
 
 	transfer = obc_transfer_register(session->conn, session->obex,
-								agent, NULL,
-								filename, type,
+								agent, filename,
+								NULL, type,
 								NULL);
 	if (transfer == NULL) {
 		return -EIO;
diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c
index 3471655..60c2e4f 100644
--- a/obexd/client/transfer.c
+++ b/obexd/client/transfer.c
@@ -526,9 +526,8 @@ int obc_transfer_get(struct obc_transfer *transfer)
 			strncmp(transfer->type, "x-bt/", 5) == 0)) {
 		rsp_cb = get_buf_xfer_progress;
 	} else {
-		int fd = open(transfer->name ? : transfer->filename,
+		int fd = open(transfer->filename ? : transfer->name,
 				O_WRONLY | O_CREAT, 0600);
-
 		if (fd < 0) {
 			error("open(): %s(%d)", strerror(errno), errno);
 			return -errno;
@@ -540,9 +539,9 @@ int obc_transfer_get(struct obc_transfer *transfer)
 
 	req = g_obex_packet_new(G_OBEX_OP_GET, TRUE, G_OBEX_HDR_INVALID);
 
-	if (transfer->filename != NULL)
+	if (transfer->name != NULL)
 		g_obex_packet_add_unicode(req, G_OBEX_HDR_NAME,
-							transfer->filename);
+							transfer->name);
 
 	if (transfer->type != NULL)
 		g_obex_packet_add_bytes(req, G_OBEX_HDR_TYPE, transfer->type,