summaryrefslogtreecommitdiff
path: root/document-portal/xdp-fuse.c
Commit message (Collapse)AuthorAgeFilesLines
* Rename source files to flatpakAlexander Larsson2016-05-091-2/+2
|
* Rename all non-autogenerated symbols to flatpakAlexander Larsson2016-05-091-21/+21
|
* uncruftify: Initial run, all non-problematic changesAlexander Larsson2016-05-061-173/+212
|
* Remove unused local variables reported by clangAlexander Larsson2016-04-211-3/+0
|
* fuse: Store basename in dir so we don't have to keep looking it upAlexander Larsson2016-03-141-27/+21
| | | | Its immutable for a document anyway
* document portal: Avoid some deadlockAlexander Larsson2016-03-141-2/+1
| | | | | We can't hold the db lock and call into the fuse backend, because that can create deadlocks if it calls back into the db.
* Reimplement fuse backendAlexander Larsson2016-03-111-1465/+1474
| | | | | | | | | | | The magic inode numbers we used before are problematic. The inode nrs are tied to the file names, so inode changes on rename, which breaks posix expectations. Also, it relied on 64bit inode space which is not true on i386. So, this is a new implementation that uses a more traditional approach of dynamically allocating inodes as needed.
* common: Make it explicit that XdgAppError are portal errorsAlexander Larsson2015-12-081-4/+4
|
* fuse: Disable entry cache to work around race conditionAlexander Larsson2015-10-011-1/+5
|
* fuse: Supply mode when creating filesAlexander Larsson2015-09-181-1/+1
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=92034
* document portal: Fix crashes when dbus activatedAlexander Larsson2015-09-091-2/+15
| | | | | | We handle the first message (the activating message) before we have gotten the name aquired message. Make sure that this is correctly handled.
* fuse: Drop DOC_DIR_INO_CLASSAlexander Larsson2015-09-081-75/+26
| | | | | We can just use a APP_DOC_DIR_INO_CLASS with app_id 0. This gets rid of some duplicated code.
* document portal: Correctly handle recursive documentsAlexander Larsson2015-09-081-0/+12
| | | | | I.e. if you pass in a document fd to the document portal we reuse the existing id.
* fuse: Add some more debug spewAlexander Larsson2015-09-081-1/+3
|
* fuse: Raise entry cache times now that we invalidateAlexander Larsson2015-09-081-7/+5
|
* fuse: Properly invalidate inodes and entriesAlexander Larsson2015-09-081-5/+55
|
* fuse: Unmount previous fuse instance if ENOTCONNAlexander Larsson2015-09-081-0/+10
|
* document-portal: Actually respect WRITE permissionsAlexander Larsson2015-09-041-80/+225
|
* document-portal: Use xdg_app_is_valid_name() to validate app namesAlexander Larsson2015-09-041-1/+1
|
* fuse: Always open files with O_NOFOLLOWAlexander Larsson2015-09-041-3/+3
| | | | Following symlinks is risky as the sandbox may control them.
* Add debug output for releaseAlexander Larsson2015-09-031-0/+3
|
* Store and verify parent dir dev/ino and pass O_PATH fdsAlexander Larsson2015-09-031-84/+140
| | | | | | | | | | | | | | | In order to be robust against symlink attacks (i.e. make a document for a path, then replace it with a symlink somewhere else and have the portal read that instead) we store the parent dev/ino when we create the document id and always verify that (atomically with the *at syscalls) on each use. Also, we pass O_PATH fds when creating documents, as it allows us to be a bit safer. For instance we can verify that the fd is a O_PATH fd before doing any ops on it, and it makes it possible to avoid other symlink trickery. Also, we drop the double add methods, and just use the O_PATH version.
* fuse: Make filesystem multithreadedAlexander Larsson2015-09-031-390/+613
| | | | This allows us to handle multiple apps better.
* Use g_auto(GStrv) instead of glnx_strfreevAlexander Larsson2015-08-311-1/+1
|
* Remove ununsed variables reported by clangAlexander Larsson2015-08-271-1/+0
|
* Drop the xdp specific errors and use the xdg-app onesAlexander Larsson2015-08-271-4/+4
|
* Document portal: Store paths, not urisAlexander Larsson2015-08-271-11/+11
| | | | | There is no way to do this for generic uris anyway, lets not pretend we're solving a larger problem.
* Make document portal use the new permission storeAlexander Larsson2015-08-261-80/+74
|
* Don't list empty names in opendirAlexander Larsson2015-08-041-2/+3
| | | | This happened in my devel system by mistake and it broke readdir.
* document-portal: *always* use the by-app locationAlexander Larsson2015-07-111-24/+4
| | | | | This is better as you can't accidentally access another apps docs (although you can still see the backing real files)
* Add GetMountPoint method for document portalAlexander Larsson2015-07-101-0/+6
| | | | | This is both to get the mount path and to have a nice way to activate the mount.
* Import xdg-document-portal from github repoAlexander Larsson2015-07-101-0/+1787
This pulls in the daemon code from: https://github.com/alexlarsson/xdg-document-portal/ We need this in xdg-app because we need to set up the mounts correctly.