tunnel-manager: New module for managing tunnels to remote servers 04/30204/3
authorTanu Kaskinen <tanu.kaskinen@linux.intel.com>
Fri, 3 Oct 2014 04:20:11 +0000 (07:20 +0300)
committerTanu Kaskinen <tanu.kaskinen@linux.intel.com>
Thu, 4 Dec 2014 17:10:15 +0000 (19:10 +0200)
commitf41dd2de30193714fa2c6e2e5f0f4cb3731c7770
tree1fbff1e9723a33857452f9e155ed3f707ee8a98a
parent41b1b7b9e208857a0dc06611062bb0aa75bc242e
tunnel-manager: New module for managing tunnels to remote servers

The initial use case for this module is to connect user PulseAudio
instances to the system instance via tunnel sinks and sources. This
is the so called "cascaded setup". The point of doing that is to allow
multiple users to access the same hardware simultaneously.

The module connects to zero or more remote servers and builds an
internal representation of all sinks and sources in those servers.
Currently the module doesn't actually load any tunnel sinks or
sources, because the tunnel sink and source code have to be first
modified a bit (the next patch does that).

The remote servers are configured in a separate configuration file
that is named tunnel-manager.conf. Currently only the server address
can be configured, but I expect more configuration options to be
implement in the future, such as options for defining the policy of
which remote devices to use. Here's an example of the configuration
file syntax:

    [RemoteServer foo]
    address = /run/pulse/native

    [RemoteServer bar]
    address = example.com

The bulk of the functionality is not in module-tunnel-manager.so, but
in libtunnel-manager.so, which will be used also by the tunnel sink
and source modules to access the information that the tunnel manager
has previously queried from the remote server.

Change-Id: I3d41936451572b6341cfb9717e07b355d8449490
src/Makefile.am
src/modules/tunnel-manager/module-tunnel-manager.c [new file with mode: 0644]
src/modules/tunnel-manager/remote-device.c [new file with mode: 0644]
src/modules/tunnel-manager/remote-device.h [new file with mode: 0644]
src/modules/tunnel-manager/remote-server.c [new file with mode: 0644]
src/modules/tunnel-manager/remote-server.h [new file with mode: 0644]
src/modules/tunnel-manager/tunnel-manager-config.c [new file with mode: 0644]
src/modules/tunnel-manager/tunnel-manager-config.h [new file with mode: 0644]
src/modules/tunnel-manager/tunnel-manager.c [new file with mode: 0644]
src/modules/tunnel-manager/tunnel-manager.h [new file with mode: 0644]