On Sun, 2015-09-20 at 23:39 +0200, Ahmed S. Darwish wrote: > diff --git a/src/pulse/context.c b/src/pulse/context.c > index ede01fa..f272cd6 100644 > --- a/src/pulse/context.c > +++ b/src/pulse/context.c > @@ -591,6 +591,8 @@ static void setup_context(pa_context *c, pa_iochannel *io) { > pa_tagstruct_putu32(t, PA_PROTOCOL_VERSION | (c->do_shm ? 0x80000000U : 0)); > pa_tagstruct_put_arbitrary(t, cookie, sizeof(cookie)); > > + pa_tagstruct_put_boolean(t, pa_memfd_is_supported()); This breaks compatibility with old servers that expect the tagstruct to end after the cookie. The "memfd supported" bit could be added to the version field like the "shm supported" bit. Another approach would be to do add a new command to do memfd negotiation before enabling srbchannel. Abusing the version field is ugly, adding another negotiation adds more connection setup overhead. I don't know which approach we should choose. -- Tanu