summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/obex-agent-api.txt9
-rw-r--r--obexd/src/manager.c7
2 files changed, 10 insertions, 6 deletions
diff --git a/doc/obex-agent-api.txt b/doc/obex-agent-api.txt
index 3923da6df..7c720927d 100644
--- a/doc/obex-agent-api.txt
+++ b/doc/obex-agent-api.txt
@@ -46,10 +46,11 @@ Methods void Release()
This method gets called when the service daemon
needs to accept/reject a Bluetooth object push request.
- Returns the full path (including the filename) where
- the object shall be stored. The tranfer object will
- contain a Filename property that contains the default
- location and name that can be returned.
+ Returns the full path (including the filename) or the
+ folder name suffixed with '/' where the object shall
+ be stored. The transfer object will contain a Filename
+ property that contains the default location and name
+ that can be returned.
Possible errors: org.bluez.obex.Error.Rejected
org.bluez.obex.Error.Canceled
diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index 849928603..2bb985b96 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
@@ -651,7 +651,10 @@ static void agent_reply(DBusPendingCall *call, void *user_data)
agent->new_name = g_strdup(name);
agent->new_folder = NULL;
} else {
- agent->new_name = g_strdup(slash + 1);
+ if (strlen(slash) == 1)
+ agent->new_name = NULL;
+ else
+ agent->new_name = g_strdup(slash + 1);
agent->new_folder = g_strndup(name, slash - name);
}
}
@@ -722,7 +725,7 @@ int manager_request_authorization(struct obex_transfer *transfer,
dbus_pending_call_unref(call);
- if (!agent || !agent->new_name || agent->auth_reject)
+ if (!agent || agent->auth_reject)
return -EPERM;
*new_folder = agent->new_folder;