The current libvirtd remote protocol dispatch code is written in
such a way that assumes the only incoming messages from clients
are method calls. This makes it very hard to support data streams.
This patch series does an incrmental refactoring of alot of code
to allow data streams to be easily wired in.
Daniel P. Berrange (9):
Split generic RPC message dispatch code out from remote protocol API
handlers
Decode incoming request header before invoking dispatch code
Separate code for encoding outgoing remote message headers
Change code generator to give async event messages their own postfix
Move queuing of RPC replies into dispatch code
Change the way client event loop watches are managed
Split out code for handling incoming method call messages
Define an API for registering incoming message dispatch filters
Rename 'direction' to 'type' in remote_message_header
qemud/Makefile.am | 3 +-
qemud/dispatch.c | 533 ++++++++++++++++++++++++++++++++++++
qemud/dispatch.h | 63 +++++
qemud/qemud.c | 136 ++++++----
qemud/qemud.h | 35 ++-
qemud/remote.c | 442 ++++--------------------------
qemud/remote.h | 72 +++++
qemud/remote_dispatch_prototypes.h | 7 -
qemud/remote_dispatch_ret.h | 1 -
qemud/remote_dispatch_table.h | 6 +-
qemud/remote_generate_stubs.pl | 23 ++-
qemud/remote_protocol.c | 6 +-
qemud/remote_protocol.h | 18 +-
qemud/remote_protocol.x | 66 ++++--
src/remote_internal.c | 18 +-
15 files changed, 926 insertions(+), 503 deletions(-)
create mode 100644 qemud/dispatch.c
create mode 100644 qemud/dispatch.h
create mode 100644 qemud/remote.h
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|