Commit graph

29 commits

Author SHA1 Message Date
Wim Taymans
bc46ead017 client: emit check access in global context
Drop the current client context to check permissions. This restores the
previous behaviour and fixes the permissions set by the portal module.
This fixes screen sharing again.

Fixes #362
2020-11-03 09:35:51 +01:00
Wim Taymans
0ef41252bd access: debug access control some more 2020-10-30 11:54:39 +01:00
Wim Taymans
3f24333315 module-access: update client permissions with full access
Set the current-client to NULL while updating the permissions of
a new client.
2020-10-30 11:00:37 +01:00
Wim Taymans
91d4806611 permission: add some helpers
Add PW_PERM_ALL as a shortcut for all permissions
Add PW_PERMISSION_FORMAT and PW_PERMISSION_ARGS to nicely format
permissions.
2020-07-30 16:26:29 +02:00
Wim Taymans
07cc07597c access: always put access in property
Improve debug
2020-07-17 16:47:14 +02:00
Wim Taymans
89b189d190 access: don't check access if already set
If we already have an access property, leave the client as is.
2020-07-17 13:23:50 +02:00
Wim Taymans
f2c1ab6069 access: make access property configurable
Just set the value of access.force into pipewire.access so that
the session manager can deal with it.
2020-07-17 09:59:49 +02:00
Wim Taymans
5afdd507c3 access: document and improve arguments
Add option to force flatpak security
When a check is inconclusive, go to the next check instead.
2020-07-16 11:45:44 +02:00
Wim Taymans
ce98162ed2 Make sure we don't read too much 2020-05-20 15:24:25 +02:00
Wim Taymans
d8bac82e72 improve logging
Remove some harmless warnings from the log
Remove some excessive info logging
2020-02-21 11:09:34 +01:00
Wim Taymans
4169d9196d module-access: handle -EACCES as non-flatpak
If we can't access the root filesystem, grant access to the app.
This should not happen but for now it is a workaround for selinux
where we can't access the gnome-shell root when it connects for
screen sharing.
2020-01-15 17:17:56 +01:00
Wim Taymans
043e7f24fe add some more useful defines
Add define to match all ids for nodes and params.
Add define for invalid permissions
2020-01-15 11:15:51 +01:00
Wim Taymans
443a49947e pw_module -> pw_impl_module 2019-12-11 11:57:56 +01:00
Wim Taymans
95688939bf pw_client -> pw_impl_client 2019-12-11 11:21:43 +01:00
Wim Taymans
d70a47b7fe move proxy implementations in their own file
Rearrange headers
2019-12-11 10:58:51 +01:00
Wim Taymans
8ea78c2e3f pw_core -> pw_context
The proxy API is the one that we would like to expose for applications
and the other API is used internally when implementing modules or
factories.

The current pw_core object is really a context for all objects so
name it that way. It also makes it possible to rename pw_core_proxy
to pw_proxy later.
2019-12-10 18:19:56 +01:00
Wim Taymans
9ffec214b8 fix includes 2019-10-25 15:01:02 +02:00
Wim Taymans
a212d2f9ed improve error handling some more 2019-06-20 11:04:34 +02:00
Wim Taymans
00ea15dc1f improve error handling 2019-06-19 16:22:22 +02:00
Wim Taymans
3ad73f0532 keys: add keys.h with defines and docs
Add a keys.h file that lists and documents all keys available to
be used in properties.
2019-05-24 15:47:48 +02:00
Wim Taymans
a2bf4ce96e protocol: add security label to a client
Don't pass the ucred to the client construct, just set the properties
in the protocol.
Use the client properties to get ucred.
Add the security label to the client properties (from SO_PEERSEC)
2019-05-10 13:28:18 +02:00
George Kiagiadakis
7a7a12138f module-access: don't leak the fd in check_cmdline 2019-04-02 23:26:05 +02:00
Wim Taymans
8ae5424359 resource: improve error handling
Make some more varargs error functions
Make pw_resource_error always just send the error to the resource id.
Make sure we send errors to the right destination.
Add proxy error event and emit it when the core finds an error for
the given proxy id.
The client error is supposed to be sent to all resources of a client
for the given global.
2019-02-14 16:53:42 +01:00
Wim Taymans
569cbb48a9 use SPA_EXPORT to export symbols 2019-02-06 13:24:41 +01:00
Wim Taymans
3dc6820e9e Don't use __ in defines or declarations, it's reserved
SPA_TYPE -> SPA_TYPE_INFO for type info strings
improve includes

Fixes #115
2019-01-14 13:00:00 +01:00
Wim Taymans
85f2e93c54 Relicense as MIT/X11
Remove some obsolete files
2018-11-05 17:48:52 +01:00
Wim Taymans
eb0a561f8c permissions: pass pw_permission struct around
Use a pw_permission struct to express permissions of object.
Improve client permissions, add/remove globals when permissions
are changed.
2018-11-05 15:02:08 +01:00
Wim Taymans
9364253886 module-access: use check_access signal
Add restricted, blacklisted and flatpak access types.
2018-10-29 08:46:09 +00:00
Wim Taymans
5088bcce60 module-access: make new access module
Rename the flatpak module to access module. The access module should
either let the client connect or mask the client busy while the
permissions are being configured. It is then up to the session manager
to collect the right permissions of the objects and configure those
in the client.

Let the media session monitor the clients and configure the permissions.
2018-10-27 17:33:21 +01:00