g_vfs_decode_uri () fails for path with escaped slash characters ( %2F )
Refer rhythmbox#1728 (closed) for some background
g_file_new_for_uri (uri_in_question)
return a dummy GFile
, and hence the app ( Rhythmbox
) reports Operation not supported
during a subsequent read()
operation. This is because of the below code path which treats '%2F'
in uri path as illegal.
gvfs/client/gvfsuriutils.c
:
GDecodedUri *
g_vfs_decode_uri (const char *uri)
{
GDecodedUri *decoded;
...
...
decoded->path = g_uri_unescape_segment (hier_part_start, hier_part_end, "/");
if (decoded->path == NULL)
{
g_vfs_decoded_uri_free (decoded);
return NULL;
}
}
libsoup
( http backend ) works fine for this uri, but gvfs blocks the uri at the client side.