Here's yet another version of module-tunnel-manager. New in v3: * The libtunnel-manager code is split into more files, because tunnel-manager.c started to get rather big. * The policy of choosing which devices to create tunnels for is now configurable. Previously the hard-coded policy was to create tunnels for all sinks and sources except monitor sources. That is still supported, but another policy is to filter out devices that are assigned to some other than the user's current seat. This is mainly useful when running user instances on top of the system instance and the system instance manages devices for all users. * In order to implement the new policy, I added seat awareness by adding user seat tracking to the logind code and reading the device seat information from udev. Tanu Kaskinen (11): module: Add PA_CORE_HOOK_MODULE_UNLOAD core-util: Add pa_boolean_to_string() device-type: Add pa_device_type_to_string() tunnel-manager: New module for managing tunnels to remote servers tunnel-new: Read parameters from tunnel manager when available tunnel-manager: Load tunnel sinks and sources tunnel-manager: Make the tunnel enabling policy configurable logind: Move the code that interfaces with logind to liblogind.so logind: Add seat tracking udev: Store the seat id in device proplists tunnel-manager: Implement a policy that enables tunnels based on the device seat src/Makefile.am | 40 +- src/modules/logind/logind.c | 349 ++++++++++++++ src/modules/logind/logind.h | 67 +++ src/modules/module-systemd-login.c | 193 ++++---- src/modules/module-tunnel-sink-new.c | 154 +++++- src/modules/module-tunnel-source-new.c | 155 +++++- src/modules/tunnel-manager/module-tunnel-manager.c | 65 +++ src/modules/tunnel-manager/remote-device.c | 404 ++++++++++++++++ src/modules/tunnel-manager/remote-device.h | 67 +++ src/modules/tunnel-manager/remote-server.c | 533 +++++++++++++++++++++ src/modules/tunnel-manager/remote-server.h | 49 ++ src/modules/tunnel-manager/tunnel-manager-config.c | 212 ++++++++ src/modules/tunnel-manager/tunnel-manager-config.h | 51 ++ src/modules/tunnel-manager/tunnel-manager.c | 167 +++++++ src/modules/tunnel-manager/tunnel-manager.h | 64 +++ src/modules/udev-util.c | 9 + src/modules/udev-util.h | 2 + src/pulsecore/core-util.h | 4 + src/pulsecore/core.h | 1 + src/pulsecore/device-type.c | 37 ++ src/pulsecore/device-type.h | 29 ++ src/pulsecore/module.c | 2 + 22 files changed, 2504 insertions(+), 150 deletions(-) create mode 100644 src/modules/logind/logind.c create mode 100644 src/modules/logind/logind.h create mode 100644 src/modules/tunnel-manager/module-tunnel-manager.c create mode 100644 src/modules/tunnel-manager/remote-device.c create mode 100644 src/modules/tunnel-manager/remote-device.h create mode 100644 src/modules/tunnel-manager/remote-server.c create mode 100644 src/modules/tunnel-manager/remote-server.h create mode 100644 src/modules/tunnel-manager/tunnel-manager-config.c create mode 100644 src/modules/tunnel-manager/tunnel-manager-config.h create mode 100644 src/modules/tunnel-manager/tunnel-manager.c create mode 100644 src/modules/tunnel-manager/tunnel-manager.h create mode 100644 src/pulsecore/device-type.c create mode 100644 src/pulsecore/device-type.h -- 1.9.3