| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Owing to the loss of filename, the copy operation was disabled a long
time ago in (https://bugzilla.gnome.org/show_bug.cgi?id=755701).
Normally, for POSIX based systems, copying `/file1` to directory
`/folder1` is done by doing copy ('/file1', '/folder1/file1'). Since,
google drive backend uses IDs as filenames (which are not human readable),
so doing a copy operation normally should constitute of doing
`copy ('/id1', '/folder1/id2')`, but instead GIO being POSIX compliant
does `copy ('/id1', '/folder/id1')`.
Furthermore, after the copy operation has been done, nautilus performs a
`query_info` operation on the path `/folder1/id1` (to check if the file
has actually been copied) but since the newly created file inside
`/folder1` has the new path `/folder1/id2` (where 'id2' is generated by
Drive API) this operation fails resulting in an error and the new
file's title being set to `id1` (Loss of titles).
To counter this issue, we store `id1` in Properties Resource on the new
file being created, and insert a "fake" entry into the cache. This
fake entry (`('id1', 'parent') -> GDataEntry`) gives the illusion that
the file exists after the copy operation, and hence the `query_info`
operation doesn't fail, and copies the file (while retaining title)
successfully.
This commit enables copy operation and handles most of the quirky cases of
Drive, e.g. files having same title in a directory, file being copied
over to same folder, etc.
Depends upon: https://gitlab.gnome.org/GNOME/libgdata/merge_requests/7
Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/8
|
|
|
|
|
| |
This reverts commit 49170edbb1a8c7ad1f439c3ce7215b487bd39890, which
broke CI on forks, because $TAG variable is not set there...
|
|
|
|
|
|
| |
SFTP test cases are skipped currently. Let's add non-root user, generate
SSH key, set XDG_RUNTIME_DIR and install missing openssh-server package
to make them work.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DAV test cases are skipped currently. Let's install missing dependencies
and use x86_64 runners to make them work.
x86_64 runners are needed because the non_aws runners have probably blocked
ports for some reasons (or at least ports in the 8087-8090 range), which
causes the following failures:
(98) Address already in use: AH00072: make_sock: could not bind to address 127.0.0.1:8087
no listening sockets available, shutting down
It would be nice to make it work on all runners, but I don't have more
capacity to debug this further.
|
|
|
|
|
|
| |
Add easy way to specify default image for testing using TAG variable.
The variable is now predefined to latest. But this allows to easy change
the image if latest image is broken, or can be used for debugging.
|
|
|
|
|
|
|
|
|
|
| |
The fuse daemon can fail when client attempts to seek backwards and seek
is not supported by the concrete backend. There is fallback for forward
seeks using `g_input_stream_skip`. Let's reopen the file and use the same
approach also for backwards seeks. This is pretty ugly to reopen the file
but similar approach is used already to emulate read/write mode.
Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/441
|
|
|
|
|
|
|
|
|
|
| |
Since commit f5ee590e, it is not possible to access Nextcloud/ownCloud
shares with self-signed (or invalid) certificates. This is because
the mount operation is handled by GOA volume monitor and the prompt
to accept certificate is not shown. Let's update the volume monitor
to handle just passwords and show the prompt to the client.
Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/251
|
|
|
|
|
|
|
|
|
|
| |
User and group are reset when replacing even though
G_FILE_CREATE_REPLACE_DESTINATION is not set. Although the backend
calls SSH_FXP_OPEN with SSH_FILEXFER_ATTR_UIDGID attribute, the OpenSSH
server ignores this attribute in this operation. Let's fix this by the
separate SSH_FXP_FSETSTAT call.
Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following error often happens when mounting dav+sd share (e.g. created
over gnome-user-media) and the mount operation fails for some reason:
dbus[47482]: arguments to dbus_connection_unref() were incorrect,
assertion "connection->generation == _dbus_current_generation" failed
in file ../../dbus/dbus-connection.c line 2823. This is normally a bug
in some application using the D-Bus library.
This is because avahi is not thread-safe and our resolver doesn't use
mutexes. But it seems to me that mutexes are not necessarily needed if
everything would work as expected. Unfortunately, changes made by commit
3384af8 causes that start_avahi_resolver is being called multiple times
by mistake, which also calls avahi_service_resolver_new multiple times.
Consequently, it may crash when resolver is beeing freed too early as
there might still be unexpected pending operations using avahi client.
Fixes: GNOME/gvfs#449
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following error appears on Ubuntu because of change of OpenSSL defaults:
"SSL Library Error: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee
key too small"
This is probably because the original cert was generated with rsa:1024.
Let's generate new one with rsa:2048 using the following command to fix this:
"openssl req -x509 -nodes -days 1 -newkey rsa:2048 -subj /CN=localhost -keyout
testcert.pem -out testcert.pem"
Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/448
|
| |
|
|
|
|
|
|
| |
If `G_FILE_ATTRIBUTE_TIME_MODIFIED` is not set for some reason, the
fuse daemon aborts as it expects that it is always set. Let's use
g_file_info_has_attribute to prevent the crashes.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This should not happen, but somehow the global_client ends up
being NULL.
In daemon/gvfsbackenddnssd.c the call to avahi_client_free in
the finalize function is similarly guarded.
|
|
|
|
| |
(cherry picked from commit dde126c316f13f98dfd72cc69ec17261a4a800a3)
|
|
|
|
|
| |
Reflect the changes made in GNOME/gnome-build-meta to make the job
work again.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GVfs calls gvfs_dbus_daemon_proxy_new() in cancelled signal handler which
internally needs CONNECTION_LOCK(connection). The lock can be unfortunately
held by gdbus worker thread which can call g_cancellable_disconnect(). This
obviously leads to deadlocks. I don't see any reason why we have to block
g_cancellable_disconnect() because of gvfs_dbus_daemon_proxy_new() resp.
gvfs_dbus_daemon_call_cancel(). Let's call it over idle source to not block
the cancelled signal handler in order to prevent the deadlocks.
It would be better to fix this issue directly in gdbus codes, however, it
is not fully clear to me, what is a proper way to fix this.
https://gitlab.gnome.org/GNOME/glib/issues/1023
|
|
|
|
|
|
|
|
|
|
|
|
| |
The samba backend calls stat for each file during the enumeration job.
Unfortunately, this is significantly slower with the recent samba versions.
However, smbc_readdirplus2() has been recently added and it can be used
to improve the performance as all the necessary info is transferred in one
network request. Let's use smbc_readdirplus2() if available.
See: https://gitlab.com/samba-team/samba/merge_requests/302
Relates: https://gitlab.gnome.org/GNOME/gvfs/issues/306
|
|
|
|
|
|
|
|
|
|
| |
Test suite were ported to python3, however, twistd binary is still required
for ftp test cases. The twistd binary is part of python2-twisted, which is
going to be retired. Let's use python3 version instead. It seems that Fedora
has twistd-3 binary, whereas, Debian has twistd3, so try to look for both of
them. The test cases seem working nicely with it as per my testing.
Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/428
|
| |
|
| |
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
|
| |
Don't ignore the result_uncertain flag from g_content_type_guess() as it
might cause nautilus to incorrectly think that a particular file is of a
certain type, and never check its magic.
|
|
|
|
|
| |
content_type was only used and initialised inside this block, so move it
there.
|
|
|
|
|
|
|
|
|
|
| |
The mount operation currently fails with "Invalid argument" error if
GVfsDnsSdResolver returns link-local IPv6 address. This can quite easily
happen also when using File Share functionality provided by GNOME. It
fails because the link-local addresses requires interface to be specified.
Let's append the interface in them to fix this issue.
Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/423
|
|
|
|
|
|
| |
GVfsDnsSdResolver doesn't store interface for the resolved service,
however, we need this for link-local address support. Let's add the
missing bits for it.
|
|
|
|
|
|
| |
This is follow up of commit d8556a0, which removes brackets when mounting
over dav/davs schemes, however, the same fix is also needed when mounting
over dav+sd/davs+sd schemes in order to prevent "Invalid URI" error.
|
| |
|
|
|
|
| |
This reverts commit 1a38caf8bcb4e02b68f8062319ef7736796a7e64.
|
|
|
|
| |
This reverts commit db26e29930084ad48711c076d611b0227dd97a65.
|
|
|
|
|
| |
GTimeVal is deprecated. Let's replace it by GDateTime in order to
prevent the deprecation warnings.
|
|
|
|
|
| |
GTimeVal is deprecated. Let's replace it by GDateTime in order to
prevent the deprecation warnings.
|
|
|
|
|
| |
GTimeVal is deprecated. Let's remove it in order to prevent the
deprecation warnings.
|
|
|
|
|
| |
GTimeVal is deprecated. Let's remove it in order to prevent the
deprecation warnings.
|
|
|
|
|
| |
GTimeVal is deprecated. Let's remove it in order to prevent the
deprecation warnings.
|
|
|
|
|
| |
GTimeVal is deprecated. Let's remove it in order to prevent the
deprecation warnings.
|
|
|
|
|
| |
GTimeVal is deprecated. Let's remove it in order to prevent the
deprecation warnings.
|