diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c
index c24c1ce..6af8c52 100644
--- a/obexd/client/transfer.c
+++ b/obexd/client/transfer.c
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,