Third iteration. Changes since previous version: * it's now srbchannel (Shared RingBuffer) instead of srchannel (srchannel could easily be read as src-hannel) * srbchannel test added on pstream level, also tests the pstream on the iochannel btw. * protocol-native has a new module parameter "srbchannel", which defaults to true. Set it to false to use the iochannel only. * srbchannel setup is now acked by client, and packets are sent in a different order. No srbchannel without both parties agreeing on it. * Pstream: fixed the actual switching to be slightly more robust, and only happening when the output buffer is empty. * fixed pa_iochannel_read_with_ancil to fall back to pa_iochannel_read in case it was called on a non-socket. David Henningsson (11): creds: Add struct for ancillary data iochannel/pstream/pdispatch: Add support for receiving file descriptors iochannel/pstream: Support sending file descriptors srbchannel: Add the shared ringbuffer object shm: Allow to open shm in writable mode memblock, pstream: Allow send/receive of remote writable memblocks core: Add a second rw mempool pstream: Allow reading/writing through srbchannel Protocol, client: Add commands to enable srbchannel protocol-native: Enable srbchannel tests: Add pstream/srbchannel test Peter Meerwald (1): tests: Adapt memblock-test to changed pa_memimport_get() PROTOCOL | 20 +++ configure.ac | 2 +- src/Makefile.am | 9 +- src/modules/module-protocol-stub.c | 6 +- src/modules/module-tunnel.c | 4 +- src/pulse/context.c | 112 ++++++++++++- src/pulse/internal.h | 3 + src/pulsecore/core.c | 14 +- src/pulsecore/core.h | 5 +- src/pulsecore/creds.h | 13 ++ src/pulsecore/iochannel.c | 85 ++++++++-- src/pulsecore/iochannel.h | 3 +- src/pulsecore/memblock.c | 40 ++++- src/pulsecore/memblock.h | 6 +- src/pulsecore/native-common.h | 5 + src/pulsecore/pdispatch.c | 26 ++- src/pulsecore/pdispatch.h | 4 +- src/pulsecore/protocol-native.c | 79 ++++++++- src/pulsecore/protocol-native.h | 1 + src/pulsecore/pstream-util.c | 31 +++- src/pulsecore/pstream-util.h | 1 + src/pulsecore/pstream.c | 317 ++++++++++++++++++++++++------------- src/pulsecore/pstream.h | 9 +- src/pulsecore/shm.c | 12 +- src/pulsecore/shm.h | 2 +- src/pulsecore/srbchannel.c | 305 +++++++++++++++++++++++++++++++++++ src/pulsecore/srbchannel.h | 62 ++++++++ src/tests/memblock-test.c | 4 +- src/tests/srbchannel-test.c | 138 ++++++++++++++++ 29 files changed, 1163 insertions(+), 155 deletions(-) create mode 100644 src/pulsecore/srbchannel.c create mode 100644 src/pulsecore/srbchannel.h create mode 100644 src/tests/srbchannel-test.c -- 1.9.1