protocol-native: Enable srbchannel

The srbchannel is enabled if protocol version >= 30 and
SHM is available. There is also a module parameter
srbchannel=false that can be used for disabling the srbchannel.

The setup is done in these steps:
1) Server receives authentication (like today)
2) Server sends enable_srbchannel to client
3) Server sends memblock to client
4) Client receives enable_srbchannel
5) Client receives memblock
6) Client sends enable_srbchannel back to server
7) Client switches over
8) Server receives enable_srbchannel and switches over

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
This commit is contained in:
David Henningsson 2014-04-25 17:57:18 +02:00
parent 1827991548
commit a476371254
3 changed files with 81 additions and 1 deletions

View file

@ -120,14 +120,17 @@
# endif
# if defined(HAVE_CREDS) && !defined(USE_TCP_SOCKETS)
# define MODULE_ARGUMENTS MODULE_ARGUMENTS_COMMON "auth-group", "auth-group-enable",
# define MODULE_ARGUMENTS MODULE_ARGUMENTS_COMMON "auth-group", "auth-group-enable", "srbchannel",
# define AUTH_USAGE "auth-group=<system group to allow access> auth-group-enable=<enable auth by UNIX group?> "
# define SRB_USAGE "srbchannel=<enable shared ringbuffer communication channel?> "
# elif defined(USE_TCP_SOCKETS)
# define MODULE_ARGUMENTS MODULE_ARGUMENTS_COMMON "auth-ip-acl",
# define AUTH_USAGE "auth-ip-acl=<IP address ACL to allow access> "
# define SRB_USAGE
# else
# define MODULE_ARGUMENTS MODULE_ARGUMENTS_COMMON
# define AUTH_USAGE
# define SRB_USAGE
# endif
PA_MODULE_DESCRIPTION("Native protocol "SOCKET_DESCRIPTION);
@ -135,6 +138,7 @@
"auth-cookie=<path to cookie file> "
"auth-cookie-enabled=<enable cookie authentication?> "
AUTH_USAGE
SRB_USAGE
SOCKET_USAGE);
#elif defined(USE_PROTOCOL_ESOUND)
# include <pulsecore/protocol-esound.h>