protocol-native: Disable srbchannel for setups without SCM_CREDENTIALS

srbchannel needs fd passing. Otherwise we get the following error
for systems without SCM_CREDENTIALS support:

    Code should not be reached at pulsecore/pstream-util.c:95,
    function pa_pstream_send_tagstruct_with_fds(). Aborting.

[[ The root cause is that we define HAVE_CREDS only if
SCM_CREDENTIALS is defined, but SCM_CREDENTIALS is a Linux-specific
symbol. Thus HAVE_CREDS is always disabled on Solaris.

And since pulse couples the non-portable creds passing support
with the portable fd passing one, through _35_ places where
HAVE_CREDS is used, a real fix needs a PA redesign -- assuming that
latency on Solaris is something people care about. ]]

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=94339
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
This commit is contained in:
Ahmed S. Darwish 2016-04-22 21:48:26 +02:00 committed by Tanu Kaskinen
parent dcbe79bd63
commit 26d5b6d199
2 changed files with 7 additions and 2 deletions

View file

@ -2604,6 +2604,11 @@ static void setup_srbchannel(pa_native_connection *c) {
pa_tagstruct *t;
int fdlist[2];
#ifndef HAVE_CREDS
pa_log_debug("Disabling srbchannel, reason: No fd passing support");
return;
#endif
if (!c->options->srbchannel) {
pa_log_debug("Disabling srbchannel, reason: Must be enabled by module parameter");
return;