From 6b28669b927e59ecd47044ea76c3f38c80ab27dd Mon Sep 17 00:00:00 2001 From: Vinicius Costa Gomes Date: Wed, 12 May 2010 20:45:03 -0300 Subject: [PATCH] obexd: Fix misuse of the listing callback The listing callback was being used for anything that included a type header. --- obexd/client/transfer.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c index c24c1ceec..6af8c527e 100644 --- a/obexd/client/transfer.c +++ b/obexd/client/transfer.c @@ -406,17 +406,20 @@ int transfer_get(struct transfer_data *transfer, transfer_callback_t func, if (transfer->xfer != NULL) return -EALREADY; - if (transfer->type == NULL) { + if (g_strcmp0(transfer->type, "x-bt/vcard-listing") == 0 || + g_strcmp0(transfer->type, "x-obex/folder-listing") == 0) + cb = get_xfer_listing_progress; + else { int fd = open(transfer->name ? : transfer->filename, O_WRONLY | O_CREAT, 0600); + if (transfer->fd < 0) { error("open(): %s(%d)", strerror(errno), errno); return -errno; } transfer->fd = fd; cb = get_xfer_progress; - } else - cb = get_xfer_listing_progress; + } if (transfer->params != NULL) transfer->xfer = gw_obex_get_async_with_apparam(session->obex, -- 2.47.3