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
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to