1. 29 9月, 2009 1 次提交
    • D
      Helper functions for processing data streams in libvirtd · 11573f3e
      Daniel P. Berrange 提交于
      Defines the extensions to the remote protocol for generic
      data streams. Adds a bunch of helper code to the libvirtd
      daemon for working with data streams.
      
      * daemon/Makefile.am: Add stream.c/stream.h to build
      * daemon/stream.c, qemud/stream.h: Generic helper functions for
        creating new streams, associating streams with clients, finding
        existing streams for a client and removing/deleting streams.
      * src/remote/remote_protocol.x: Add a new 'REMOTE_STREAM' constant
        for the 'enum remote_message_type' for encoding stream data
        in wire messages. Add a new 'REMOTE_CONTINUE' constant to
        'enum remote_message_status' to indicate further data stream
        messsages are expected to follow.  Document how the
        remote_message_header is used to encode data streams
      * src/remote/remote_protocol.h: Regenerate
      * daemon/dispatch.c: Remove assumption that a error message
        sent to client is always type=REMOTE_REPLY. It may now
        also be type=REMOTE_STREAM. Add convenient method for
        sending outgoing stream data packets. Log and ignore
        non-filtered incoming stream packets. Add a method for
        serializing a stream error message
      * daemon/dispatch.h:  Add API for serializing stream errors
        and sending stream data packets
      * daemon/qemud.h: Add struct qemud_client_stream for tracking
        active data streams for clients. Tweak filter function
        operation so that it accepts a client object too.
      * daemon/qemud.c: Refactor code for free'ing message objects
        which have been fully transmitted into separate method.
        Release all active streams when client shuts down. Change
        filter function to be responsible for queueing the message
      11573f3e
  2. 21 9月, 2009 1 次提交
    • D
      Rename qemud/ directory to daemon/ · 5c2a1ae8
      Daniel P. Berrange 提交于
      * qemud/: Rename to daemon/
      * Makefile.am, configure.in, src/Makefile.am, src/remote_internal.c,
        tests/Makefile.am, tests/eventtest.c: s/qemud/daemon/ where needed
      5c2a1ae8
  3. 16 7月, 2009 7 次提交
    • D
      Rename 'direction' to 'type' in remote_message_header · 27944fac
      Daniel P. Berrange 提交于
      The 'remote_message_header' struct has a mis-leadingly named
      field 'direction'. It is really a reflection of the type of
      message, and some types can be sent in either direction. Thus
      the field is more accurately named 'type'. No function change.
      
      * qemud/remote_protocol.x: Rename 'direction' to 'type' in
        'remote_message_header. Write better docs describing the
        message header field semantics & usage
      * qemud/remote_protocol.c, qemud/remote_protocol.h: Regenerate
      * qemud/remote.c, qemud/dispatch.c, src/remote_internal.c
        Update to reflect rename of 'direction' to 'type'
      27944fac
    • D
      Split out code for handling incoming method call messages · 47cab734
      Daniel P. Berrange 提交于
      The remoteDispatchClientRequest() method is currently hardwired to
      assume there is only one type of incoming message, a method call.
      To allow for alternate types of incoming messags, the code that is
      specific to method calls is being split into a separate method
      remoteDispatchClientCall
      
      * qemud/dispatch.c: Move method call specific code out into
        remoteDispatchClientCall. Add a helper remoteSerializeError
        for returning error messages to client
      47cab734
    • D
      Change the way client event loop watches are managed · af4dad0f
      Daniel P. Berrange 提交于
      The current qemudRegisterClientEvent() code is used both for
      registering the initial socket watch, and updating the already
      registered watch. This causes unneccessary complexity in alot
      of code which only cares about updating existing watches. The
      updating of a watch cannot ever fail, nor is a reference to the
      'qemud_server' object required.
      
      This introduces a new qemudUpdateClientEvent() method for that
      case, allowing the elimination of unneccessary error checking
      and removal of the server back-reference in struct qemud_client.
      
      * qemud/qemud.h: Remove 'server' field from struct qemud_client.
        Add qemudUpdateClientEvent() method. Remove 'update' param
        from qemudRegisterClientEvent method
      * qemud/dispatch.c, qemud/qemud.c, qemud/remote.c: Update alot
        of code to use qemudUpdateClientEvent() instead of
        qemudRegisterClientEvent(). Move more logic from remoteRelayDomainEvent
        into remoteDispatchDomainEventSend.
      af4dad0f
    • D
      Move queuing of RPC replies into dispatch code · c40e14b4
      Daniel P. Berrange 提交于
      This removes an assumption from qemudWorker() code that every
      incoming message will generate a reply.
      
      * qemud/dispatch.c: remoteDispatchClientRequest now has responsibility
        for queuing the reply message to the RPC call
      * qemud/qemud.c: Do not queue the RPC call reply in qemudWorker(),
        allowing remoteDispatchClientRequest() to take care of it
      c40e14b4
    • D
      Separate code for encoding outgoing remote message headers · 852fa7d0
      Daniel P. Berrange 提交于
      Introduces an API for encoding the header field for outgoing messages
      allowing some duplicated code to be eliminated
      
      * qemud/dispatch.c, qemud/dispatch.h: add remoteEncodeClientMessageHeader
        for encoding message header. Update remoteDispatchClientRequest to
        use this method.
      * qemud/remote.c: Update remoteDispatchDomainEventSend to use the
        generic remoteEncodeClientMessageHeader() for encoding event
        message hedaders. Push some logic from remoteRelayDomainEvent
        down into remoteDispatchDomainEventSend.
      852fa7d0
    • D
      Decode incoming request header before invoking dispatch code · 081c6330
      Daniel P. Berrange 提交于
      Separate the decoding of incoming request header out from the
      dispatch code. This will allow later code to making dispatcher
      routing decisions based on the header field data.
      
      * qemud/dispatch.c, qemud/dispatch.h: Add remoteDecodeClientMessageHeader
        API for decoding the header of a client message. Update the
        remoteDispatchClientRequest method to assume a pre-decoded
        header.
      * qemud/qemud.h: Include a 'remote_message_header' field in
        'struct qemud_client_message' for pre-decoded header data
      * qemud/qemud.c: Decode the incoming client message header before
        invoking remoteDispatchClientRequest
      081c6330
    • D
      Split generic RPC message dispatch code out from remote protocol API handlers · a147ef38
      Daniel P. Berrange 提交于
      * po/POTFILES.in: Add qemud/dispatch.c
      * qemud/dispatch.c, qemud/dispatch.h: Generic code handling dispatch of
        RPC messages.
      * qemud/Makefile.am: Add dispatch.c to build
      * qemud/qemud.c: Include dispatch.h
      * qemud/qemud.h: Remove remoteDispatchClientRequest, remoteRelayDomainEvent
        now in dispatch.h
      * qemud/remote.c: Remove remoteDispatchClientRequest, remoteRelayDomainEvent
        now in dispatch.c, and dispatch_args, dispatch_ret, dispatch_fn & dispatch_data
        now in remote.h
      * qemud/remote.h: Add typedefs for dispatch_args, dispatch_ret,
        dispatch_fn, dispath_data. Add remoteGetDispatchData() API
      a147ef38
  4. 27 6月, 2007 6 次提交
  5. 11 6月, 2007 1 次提交
    • R
      Mon Jun 11 12:49:00 BST 2007 Richard W.M. Jones <rjones@redhat.com> · 9172d0ec
      Richard W.M. Jones 提交于
      	* qemud/Makefile.am, qemud/dispatch.c, qemud/dispatch.h,
      	  qemud/internal.h, qemud/protocol.c,
      	  qemud/protocol.h, qemud/protocol.x, qemud/qemud.c:
      	  libvirt_qemud server-side modifications to use
      	  XDR-based protocol instead of homebrew (Dan Berrange).
      	  QEMUD server modified to dispatch calls from remote
      	  clients (Richard Jones).  Added TLS support (Richard Jones).
      	  Added TCP & IPv6 support (Richard Jones).
      	  Additional configuration file, command-line handling, and
      	  usage (Richard Jones).
      	* qemud/conf.c: Remove unnecessary header file.
      9172d0ec
  6. 16 3月, 2007 2 次提交
    • D
      33134578
    • D
      * include/libvirt/libvirt.h[.in] include/libvirt/virterror.h · 635ae389
      Daniel Veillard 提交于
        proxy/libvirt_proxy.c qemud/Makefile.am qemud/conf.c qemud/conf.h
        qemud/dispatch.c qemud/internal.h qemud/protocol.h
        src/driver.h src/internal.h src/libvirt.c src/libvirt_sym.version
        src/proxy_internal.c src/proxy_internal.h src/qemu_internal.c
        src/test.c src/virsh.c src/virterror.c src/xen_internal.c
        src/xen_internal.h src/xend_internal.c src/xm_internal.c
        src/xml.h src/xs_internal.c: applied patch from Richard Jones
        adding virConnectGetCapabilities(), plus various small little
        fixes
      * docs/*: fixed the api extractor script and regenerated
      Daniel
      635ae389
  7. 23 2月, 2007 2 次提交
  8. 17 2月, 2007 1 次提交
    • M
      Fri Feb 16 18:28:32 IST 2007 Mark McLoughlin <markmc@redhat.com> · cfa655f9
      Mark McLoughlin 提交于
              * qemud/qemud.c, qemud/dispatch.c, qemud/internal.h
              qemud/conf.c, qemud/driver.c, configure.in: add a
              qemudLog() function which uses syslog() if we're in daemon
              mode, doesn't output INFO/DEBUG messages unless the
              verbose flag is set and doesn't output DEBUG messages
              unless compiled with --enable-debug. Also, make a first
              pass through fatal errors and add error messages for them.
      cfa655f9
  9. 16 2月, 2007 1 次提交
  10. 15 2月, 2007 2 次提交
  11. 14 2月, 2007 3 次提交