Age | Commit message (Collapse) | Author | Files | Lines |
|
servers will broadcast permissions, so we need to check if the server supports each permission before we try to use it. Also, we were looking at the wrong data-structure for actions.
|
|
The problem was that g_vfs_encode_uri was not encoding ':' in the
binding URL because those may appear in ipv6 hostnames. As ipv6
hostnames are in the form [theipv6], the ':[]' are unescaped only for
those ipv6 hostnames.
|
|
|
|
|
|
|
|
|
|
|
|
Also got rid of the custom logger used for debugging purpose: to get the
g_print output, start gvfsd manually.
|
|
lowercased
|
|
|
|
|
|
Conflicts:
daemon/Makefile.am
|
|
|
|
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=511802
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=511802
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=511802
|
|
Add umockdev dump and ioctl trace for a Sony Xperia Mini mobile phone (with
CyanogenMod), with some small demo files and the ioctls from these commands
recorded:
gvfs-mount 'mtp://[usb:001,017]'
gvfs-ls 'mtp://[usb:001,017]/SD-Karte'
gvfs-ls 'mtp://[usb:001,017]/SD-Karte/Music'
gvfs-ls 'mtp://[usb:001,017]/SD-Karte/Music/GStreamer - The Test Sine'
gvfs-info 'mtp://[usb:001,017]/SD-Karte/Music/GStreamer - The Test Sine'
gvfs-info 'mtp://[usb:001,017]/SD-Karte/Music/GStreamer - The Test Sine/sine.ogg'
gvfs-cat 'mtp://[usb:001,017]/SD-Karte/Music/GStreamer - The Test Sine/sine.ogg'
gvfs-cat 'mtp://[usb:001,017]/SD-Karte/hello.txt'
gvfs-info 'mtp://[usb:001,017]/SD-Karte/hello.txt'
gvfs-info 'mtp://[usb:001,017]/SD-Karte/DCIM/100CANON/IMG_0001.JPG'
gvfs-cat 'mtp://[usb:001,017]/SD-Karte/DCIM/100CANON/IMG_0001.JPG'
If umockdev is available, use it to simulate that device and check that we can
get the directory and file info, and access the file contents.
This bumps the (optional) umockdev dependency to >= 0.2.10.
|
|
Drop the D-BUS launch in the gvfs-testbed wrapper, and always launch the test
session D-BUS in gvfs-test. This makes both scripts easier and more consistent,
and also makes the GPhoto test work under gvfs-testbed.
This bumps the (optional) umockdev dependency to >= 0.2.9.
|
|
Instead of failing all over the place and complaining about a missing
session.conf, run the tests against the installed gvfs.
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=951731
https://bugzilla.gnome.org/show_bug.cgi?id=702577
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=951731
|
|
|
|
This was reading the size in the wrong place *sizep, not *(sizep-1),
plus the out of bounds checks were wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=637095
|
|
Now that we can be in charge of mounts even if we have the shadow
mount infrastructure, we should export it so that tracking
of the associated GDaemonMount works correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=696279
|
|
Mount
Some volume monitors, like gnome-online-accounts, want their
mount implementation to be called even though the volume has an
activation root. Allow them to advertise so using the expansion
fields of the volume DBus representation.
https://bugzilla.gnome.org/show_bug.cgi?id=696279
|
|
If two files have two different origins (say, one from g_mount_get_root()
and one from g_file_new_for_uri()), the mount_spec they use could
expose a different mount_prefix, even if the represent the same URI
and network object.
This in particular fixes the handling of shadow mounts for dav
(which rewrites the mount_spec during mount to find the right prefix)
https://bugzilla.gnome.org/show_bug.cgi?id=696279
|
|
Add umockdev dump and ioctl trace for a Canon PowerShot SX200 digicam, with
ioctls from these commands recorded:
gvfs-mount -li
gvfs-mount gphoto2://[usb:001,011]/
gvfs-info gphoto2://[usb:001,011]
gvfs-info gphoto2://[usb:001,011]/DCIM
gvfs-info gphoto2://[usb:001,011]/DCIM/100CANON/IMG_0001.JPG
gvfs-info gphoto2://[usb:001,011]/DCIM/100CANON/IMG_0002.JPG
gvfs-cat gphoto2://[usb:001,011]/DCIM/100CANON/IMG_0001.JPG
gvfs-cat gphoto2://[usb:001,011]/DCIM/100CANON/IMG_0002.JPG
(With two tiny test images, not actual big photos)
If umockdev is available, use it to simulate that device and check that we can
get the directory and file info, and access the pictures.
Note that this does not yet work under gvfs-testbed, as we somehow need to
inject the $UMOCKDEV_ROOT into the spawned d-bus.
|
|
Especially the trash:// tests have a tendency to leave the gvfs-metadata child
around a little while after killing the D-BUS daemon, and thus leaving the
temporary home directory busy. Retry for a few times to allow gvfsd-metadata to
clean up itself.
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=701714
|
|
Related to https://bugs.freedesktop.org/show_bug.cgi?id=65130
|
|
Drop the check that mounting a CD fails without the fake polkit. This worked in
ConsoleKit times, but not with logind any more.
|
|
Create the directory if necessary. Recent udev versions do not create it
automatically any more.
|
|
Use read() instead of readall() for reading from subprocess, as this is a
BufferedReader() now. This also works for older Python versions.
Also, add another missing Popen.stdin.flush(), like in the previous commit.
|
|
Flush the stdin stream to "gvfs-mount" after writing to it. Apparently Python
3.3's buffering behaviour has changed to require this now.
|
|
Force subprocess' stdout to be non-blocking, so that we do not potentially wait
forever, but time out properly.
|
|
Thanks to the work by Jeremy Allison we should be able to connect
to a non-standard port through new enough Samba version.
This patch adds a port argument to smburi parser and both smb and
smb-browse backends.
https://bugzilla.gnome.org/show_bug.cgi?id=698071
|
|
|
|
|
|
Because multiple clients can be concurrently writing to the journal,
it's possible to see partially written journal entries. Emitting
g_warning() here breaks test cases.
The real fix would be safe concurrent access to the journal, but
that's harder.
https://bugzilla.gnome.org/700785
|
|
|
|
|
|
This patch ensures that we safely write all data from journals to
metatrees on exit. E.g. if anything happens to session bus or we get
replaced by some other instance.
https://bugzilla.gnome.org/show_bug.cgi?id=637095
|
|
Since we've moved journal to a non-volatile storage, let's flush
more often to minimize a chance of data loss.
https://bugzilla.gnome.org/show_bug.cgi?id=637095
|
|
This essentially moves is_on_nfs() from metatree.c in metabuilder.c
as the more appropriate place for shared functions. It's used in
meta_builder_get_journal_filename() to determine whether to use original
metadata directory or temporary $XDG_RUNTIME_DIR location to work around
certain NFS issues.
The idea behind this change is to have separate journals for every client
that is accessing shared homedir. Then the only possible point of conflict
is on rotation which is backed up by atomic file rename. Without this,
there were multiple metadata daemons writing to the same journal file,
overwriting changes to each other and being racy in flush and rotation.
There will always be a conflict between clients, overwriting tree file
data by flushing their journals.
https://bugzilla.gnome.org/show_bug.cgi?id=637095
|
|
With concurrent access of multiple daemons there may be a moment when
tree file exists but not the journal file. The daemon can't write
anything without journal and is doomed until next rotation. Missing
journal file can also happen on system crash etc.
This patch tries to create new journal file only when it doesn't exist,
other errors still lead to inability to store anything.
This will also allow us to have journal file somewhere else, e.g. on
a non-persistent storage.
https://bugzilla.gnome.org/show_bug.cgi?id=637095
|
|
In shared NFS homedir case with multiple clients writing to the same
mmaped journal file data can get easily corrupted. The daemon iterates
over a journal file on flush taking in account variable entry size and
advances according to the data read.
However in certain case invalid data are read making us to jump out of
bounds. In case of zero entry size we would stand at the same place
leading to infinite loop.
This patch checks if the indicated entry size is at least the size of
the structure we're getting the size from (it's a first element) and breaks
the iteration cycle if it's not. This may lead to partial data loss on flush
as we don't process the rest of the journal file. Old data from existing
tree file will be preserved of course, only few recent changes would get lost.
https://bugzilla.gnome.org/show_bug.cgi?id=637095
|
|
Once we flush the journal and write new tree file we need to re-read
it to refresh internal data structures (and mmap data from the right
file). We originally left this work on meta_tree_refresh_locked() and
meta_tree_needs_rereading() respectively where we checked the rotated
bit.
In detail, metabuilder wrote a new temp tree file, then explicitly opened
the current (old) one, wrote the rotated bit and atomically replaced the
temp file. Then the metadata daemon having mmapped the old file detected
the rotated bit and scheduled journal and tree file reopen+reread.
However in concurrent environment like NFS homedir where multiple metadata
daemons are handling the same database we may run in a race and not getting
the rotated bit detected properly.
This led to an infinite loop between meta_journal_add_entry() -
meta_tree_flush_locked() - meta_tree_refresh_locked() - meta_journal_add_entry()
since we had full journal, didn't detect the rotation and since the files
were already unlinked, there was no force to break that loop. This patch
forces tree file re-read after successful flush to prevent this issue.
https://bugzilla.gnome.org/show_bug.cgi?id=637095
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=511802
|