[pulseaudio-discuss] [PATCH 0/5] Add access control to protocol-native

David Henningsson david.henningsson at canonical.com
Fri Jul 17 06:02:04 PDT 2015



On 2015-04-07 17:13, Wim Taymans wrote:
> This is a new patch series that preplaces the previous patches regarding
> access control.
>
> After some experimentation, this patch series adds support for async access
> control checks, like when we need to ask for user input. The async support
> is implemented by exiting the command without reply and then when the reply
> becomes available, re-execute the command.
>
> There is an example access control module that shows how one could implement
> client specific access control checks.
>
> The patch also contains a small typo fix that can probably be applied
> independently.

Thanks for this work. Apparently it's more relevant to me than I first 
thought.

A few design thoughts that I think we need to resolve first before 
reviewing details:

1. Coupling between core and native-protocol. Right now the hooks are in 
core, and mapped 1-to-1 (or? are there exceptions?) to PA_COMMAND_*.

Other options would be:
  - Just have a "pa_hook access[PA_COMMAND_MAX]" in pa_core instead? 
Then we could skip the long list of PA_ACCESS_HOOK_ constants. However, 
the increased dependency between the native protocol and the pa_core 
object might be undesirable.
  - On the other side, we could have the "pa_hook 
access[PA_COMMAND_MAX]" in pa_native_protocol instead. However, native 
protocol instances could - at least in theory - come and go, so they 
probably need stored somewhere more reachable anyhow...

To sum up, I feel that since the hooks are specific to the native 
protocol, they should be put closer to that protocol, but I can't point 
to a better place to put it.

2. In general, I like the async mechanism. We might want to consider 
special constants, say, PA_HOOK_ASYNC and PA_HOOK_DENY to not abuse the 
existing PA_HOOK_CANCEL and PA_HOOK_STOP constants, but I'm not sure. 
Any opinions?

3. I also wonder if we need to make more information available to the 
hooks. E g, for allowing or blocking a stream moving somewhere, the hook 
does now only know what stream it's blocking, not to where moving is 
suggested. Maybe this is something that can be solved later though.


-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


More information about the pulseaudio-discuss mailing list