The `g_stat` result is not checked currently. This might lead to the
"Conditional jump or move depends on uninitialised value(s)" errors
detected by the valgrind tool. Let's check the result first before
using the `statbuf` data.
ftp: Fix data connection to IPv6 link-local address
With IPv6, the passive mode data connection address is constructed by
taking the control socket address and replacing the port with the one
specified in the EPSV response. In doing so, we lose the scope-id and
flowinfo properties. The scope-id field in particular is required when
connecting to a link local address, as it determines which link the
address belongs to. Without it, the connection fails.
To fix this, manually construct the GInetSocketAddress instance, copying
all the fields except the port from the old address.
Revert "build: Take advantage of has_function argument"
This reverts commit 70128710da23966a1d5f4b2cbcca0ccb63c4d0f1. It turned
out that this argument doesn't exist which causes build issues on systems
that don't use GNU C Library.
udisks2: Quote mount paths with g_shell_quote when unmounting
Currently, the unmount operation fails for mount paths that are not
propagated from udisks (e.g. FUSE) and contain non-ASCII characters.
This is because the mount path is escaped by the `g_strescape` function
that drops non-ASCII characters among others. It is not clear why this
function was used here, but it seems right to use the `g_shell_quote`
function instead. Let's do so to fix unmounting in the mentioned cases.