This new version of the message interface patches addresses the issues Tanu found during his review. The parsing function now does no longer necessarily allocate a string, though the general logic has not changed and is still under discussion. I hope this solution is more acceptable than the previous. This patch set also takes care about escaping curly braces within parameter strings. A simple function for writing escaped strings was added to strbuf. This approach may not be optimal but seemed like the fastest way to achieve the goal. Georg Chini (6): core: add simple message interface protocol-native: add message sending capability pactl, pacmd, cli-command: Add send-message command core: add message handler pactl: Implement list message-handlers message-handler: Allow parameter strings to contain escaped curly braces PROTOCOL | 14 +++++ configure.ac | 2 +- doc/messaging_api.txt | 41 +++++++++++++ man/pactl.1.xml.in | 9 ++- man/pulse-cli-syntax.5.xml.in | 7 +++ shell-completion/bash/pulseaudio | 7 ++- shell-completion/zsh/_pulseaudio | 3 + src/Makefile.am | 1 + src/map-file | 1 + src/pulse/introspect.c | 64 ++++++++++++++++++++ src/pulse/introspect.h | 17 ++++++ src/pulse/util.c | 124 +++++++++++++++++++++++++++++++++++++ src/pulse/util.h | 4 ++ src/pulsecore/cli-command.c | 44 ++++++++++++++ src/pulsecore/core.c | 47 ++++++++++++++ src/pulsecore/core.h | 2 +- src/pulsecore/message-handler.c | 128 +++++++++++++++++++++++++++++++++++++++ src/pulsecore/message-handler.h | 50 +++++++++++++++ src/pulsecore/native-common.h | 3 + src/pulsecore/pdispatch.c | 3 + src/pulsecore/protocol-native.c | 52 ++++++++++++++++ src/pulsecore/strbuf.c | 26 ++++++++ src/pulsecore/strbuf.h | 1 + src/utils/pacmd.c | 1 + src/utils/pactl.c | 103 ++++++++++++++++++++++++++++++- 25 files changed, 745 insertions(+), 9 deletions(-) create mode 100644 doc/messaging_api.txt create mode 100644 src/pulsecore/message-handler.c create mode 100644 src/pulsecore/message-handler.h -- 2.14.1