Alexander Larsson
4f4b8c536b
No need to put introspection xml in resources
...
This is already built in to the gdbus codegen code.
2016-04-26 11:54:59 +02:00
Alexander Larsson
af03d2f5b4
Remove unused local variables reported by clang
2016-04-21 09:48:56 +02:00
Alexander Larsson
c3bae9af57
No need for newlines in g_debug messages
2016-03-14 13:01:09 +01:00
Alexander Larsson
46a192824c
fuse: Store basename in dir so we don't have to keep looking it up
...
Its immutable for a document anyway
2016-03-14 10:58:08 +01:00
Alexander Larsson
9537bdc339
document portal: Avoid some deadlock
...
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.
2016-03-14 10:50:34 +01:00
Alexander Larsson
e14837308b
Now newlines needed in g_debug calls
2016-03-11 17:28:23 +01:00
Alexander Larsson
7a61eaa91d
Reimplement fuse backend
...
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.
2016-03-11 17:00:08 +01:00
Simon McVittie
9efe31e8d4
Add systemd user units corresponding to the D-Bus session services
...
Signed-off-by: Simon McVittie <smcv@debian.org>
2016-01-28 23:45:47 +01:00
Alexander Larsson
4177f358cb
common: Make it explicit that XdgAppError are portal errors
2015-12-08 12:16:38 +01:00
Alexander Larsson
3ce0c6f7f9
document portal: Add AddNamed method for host-side use
...
This is needed for the "save as" file selector portal
2015-12-02 15:55:41 +01:00
Alexander Larsson
106a5b06ec
Rename lib/ to common/ in preparation for public xdg-app library
2015-11-26 22:05:38 +01:00
Alexander Larsson
64d7c00045
Move dbus invocation peer app detection to lib/
2015-10-21 10:23:37 +02:00
Alexander Larsson
6e1c211a5c
Correct capitalization on dbus interface filename
2015-10-21 09:48:53 +02:00
Alexander Larsson
7c4898cbb2
document-portal: Fix warning
...
We need to return something from main()
2015-10-06 10:12:19 +02:00
Alexander Larsson
208eb7b1aa
Propagate Xauthority details to the sandbox if X11 is enabled
...
Some xservers out there (like xorg 1.17.1) have a broken server interpreted
local xauth, which causes apps to fail to connect to the xserver.
This fixes that by propagating Xauthority data such as the MIT-MAGIC-COOKIE-1.
2015-10-01 21:23:23 +02:00
Alexander Larsson
cf5050126e
fuse: Disable entry cache to work around race condition
2015-10-01 18:02:13 +02:00
Colin Walters
b337fc7621
build: Fix srcdir != builddir from git
...
Was hitting this in gnome-continuous, which does srcdir != builddir by
default.
2015-09-29 23:26:06 +02:00
Alexander Larsson
2d31c3c7da
fuse: Supply mode when creating files
...
https://bugs.freedesktop.org/show_bug.cgi?id=92034
2015-09-18 14:27:32 +02:00
Alexander Larsson
645c433960
Fix distcheck issues
2015-09-17 20:24:04 +02:00
Alexander Larsson
eec8798f5e
document portal: Add support for transient documents
...
These are useful for passing temporary files.
2015-09-17 20:09:50 +02:00
Alexander Larsson
4ca4f78483
document portal: Fix crashes when dbus activated
...
We handle the first message (the activating message) before we
have gotten the name aquired message. Make sure that this
is correctly handled.
2015-09-09 16:25:51 +02:00
Alexander Larsson
8c04d2b532
fuse: Add some more debug spew
2015-09-08 15:33:55 +02:00
Alexander Larsson
31837cdaa3
fuse: Drop DOC_DIR_INO_CLASS
...
We can just use a APP_DOC_DIR_INO_CLASS with app_id 0.
This gets rid of some duplicated code.
2015-09-08 15:23:18 +02:00
Alexander Larsson
42c6cd4574
document portal: Correctly handle recursive documents
...
I.e. if you pass in a document fd to the document portal we
reuse the existing id.
2015-09-08 14:53:14 +02:00
Alexander Larsson
af331d364f
document portal: Move locking explicitly into portal handlers
...
This is requires because do i/o on the passed in fd in add() and
if you pass in a fd on the fuse mount itself we deadlock.
2015-09-08 14:23:27 +02:00
Alexander Larsson
bbc6fa8835
document-portal: Allow dbus owner replacing
2015-09-08 12:18:14 +02:00
Alexander Larsson
ad9f05397e
fuse: Add some more debug spew
2015-09-08 11:15:31 +02:00
Alexander Larsson
bb6e476f62
fuse: Raise entry cache times now that we invalidate
2015-09-08 11:15:05 +02:00
Alexander Larsson
8fe6a115f6
fuse: Properly invalidate inodes and entries
2015-09-08 11:09:40 +02:00
Alexander Larsson
44f295c088
fuse: Add daemonizing switch
...
This will be used for the tests
2015-09-08 09:47:32 +02:00
Alexander Larsson
8af69c93af
fuse: Unmount previous fuse instance if ENOTCONN
2015-09-08 09:33:44 +02:00
Alexander Larsson
2f115c89af
document-portal: Actually respect WRITE permissions
2015-09-04 17:00:37 +02:00
Alexander Larsson
6cf4d24a09
document-portal: Use xdg_app_is_valid_name() to validate app names
2015-09-04 14:50:02 +02:00
Alexander Larsson
7ad47c74ea
document-portals: Support unique documents
...
These document id will not be shared for multiple users. The main
difference is this this makes it safe for the creating app to delete
the document if he wants to (i.e. for temporary docs), and thus we can
grant this additional permission for the calling app.
2015-09-04 14:46:02 +02:00
Alexander Larsson
83201bd7e4
fuse: Always open files with O_NOFOLLOW
...
Following symlinks is risky as the sandbox may control them.
2015-09-04 14:16:45 +02:00
Alexander Larsson
0c07417d5f
Add debug output for release
2015-09-03 22:17:00 +02:00
Alexander Larsson
04879fdea5
Store and verify parent dir dev/ino and pass O_PATH fds
...
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.
2015-09-03 22:17:00 +02:00
Alexander Larsson
4a298aeec3
fuse: Make filesystem multithreaded
...
This allows us to handle multiple apps better.
2015-09-03 22:16:43 +02:00
Alexander Larsson
6775dc1002
Use g_auto(GStrv) instead of glnx_strfreev
2015-08-31 09:51:48 +02:00
Alexander Larsson
52525f46fd
Remove ununsed variables reported by clang
2015-08-27 16:13:15 +02:00
Alexander Larsson
42012a7d5a
Drop the xdp specific errors and use the xdg-app ones
2015-08-27 10:40:58 +02:00
Alexander Larsson
b6355e1acb
Document portal: Store paths, not uris
...
There is no way to do this for generic uris anyway, lets not
pretend we're solving a larger problem.
2015-08-27 10:38:22 +02:00
Alexander Larsson
0c25376657
Switch document portal to use strings for document ids
2015-08-26 17:26:53 +02:00
Alexander Larsson
12fbd9ff95
Make document portal use the new permission store
2015-08-26 17:11:35 +02:00
Alexander Larsson
a9ffa4960d
Move gvdb to lib/
2015-08-25 09:27:35 +02:00
Alexander Larsson
c465c15e51
Don't list empty names in opendir
...
This happened in my devel system by mistake and it broke readdir.
2015-08-04 12:05:21 +02:00
Alexander Larsson
f76f6a39ef
document-portal: *always* use the by-app location
...
This is better as you can't accidentally access another apps docs (although
you can still see the backing real files)
2015-07-11 10:48:53 +02:00
Alexander Larsson
08d05a30a3
Automatically start and mount document portal in sandbox
2015-07-10 17:49:59 +02:00
Alexander Larsson
4c4c66fc2d
Add GetMountPoint method for document portal
...
This is both to get the mount path and to have a nice way
to activate the mount.
2015-07-10 17:02:38 +02:00
Alexander Larsson
929071ad10
Import xdg-document-portal from github repo
...
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.
2015-07-10 16:56:39 +02:00