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
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);
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) {
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
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;
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,