diff options
author | Guiting Shen <aarongt.shen@gmail.com> | 2023-04-20 17:55:57 +0800 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2023-04-20 16:15:16 -0700 |
commit | d361604594048b1a4df370b969f9d5140c832d30 (patch) | |
tree | 92df94cb5a4d55f1f4891150122db62134d5101d /obexd | |
parent | b56479f4f5a350391af06cae331bd1d78651da58 (diff) | |
download | bluez-d361604594048b1a4df370b969f9d5140c832d30.tar.gz |
obexd: AuthorizePush: Support to return folder name for file storage
The obex agent usually returns the full path by getting the default
folder and filename from the Filename property of the transfer object
which is not convenient.
The patch helps that the obex agent can return the folder name suffixed
with '/' or new full path or even null which will use the default name
if new_name is NULL and the default folder if the new_folder is NULL in
opp_chkput().
Diffstat (limited to 'obexd')
-rw-r--r-- | obexd/src/manager.c | 7 |
1 files changed, 5 insertions, 2 deletions
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; |