]> xenbits.xensource.com Git - libvirt.git/commit
Introduce generic RPC server objects
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 1 Dec 2010 16:36:40 +0000 (16:36 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 24 Jun 2011 10:48:37 +0000 (11:48 +0100)
commit4e00b1da8a85401652031e0125477d72bfad3502
tree27cadf8ffa6addc37131dd2cf2494a54d3eda9da
parentf5fa167e8de8af627295ce3a8ebedade61ad517f
Introduce generic RPC server objects

To facilitate creation of new daemons providing XDR RPC services,
pull a lot of the libvirtd daemon code into a set of reusable
objects.

 * virNetServer: A server contains one or more services which
   accept incoming clients. It maintains the list of active
   clients. It has a list of RPC programs which can be used
   by clients. When clients produce a complete RPC message,
   the server passes this onto the corresponding program for
   handling, and queues any response back with the client.

 * virNetServerClient: Encapsulates a single client connection.
   All I/O for the client is handled, reading & writing RPC
   messages.

 * virNetServerProgram: Handles processing and dispatch of
   RPC method calls for a single RPC (program,version).
   Multiple programs can be registered with the server.

 * virNetServerService: Encapsulates socket(s) listening for
   new connections. Each service listens on a single host/port,
   but may have multiple sockets if on a dual IPv4/6 host.

Each new daemon now merely has to define the list of RPC procedures
& their handlers. It does not need to deal with any network related
functionality at all.
cfg.mk
po/POTFILES.in
src/Makefile.am
src/rpc/virnetserver.c [new file with mode: 0644]
src/rpc/virnetserver.h [new file with mode: 0644]
src/rpc/virnetserverclient.c [new file with mode: 0644]
src/rpc/virnetserverclient.h [new file with mode: 0644]
src/rpc/virnetserverprogram.c [new file with mode: 0644]
src/rpc/virnetserverprogram.h [new file with mode: 0644]
src/rpc/virnetserverservice.c [new file with mode: 0644]
src/rpc/virnetserverservice.h [new file with mode: 0644]