1. 21 7月, 2009 7 次提交
  2. 17 7月, 2009 19 次提交
  3. 16 7月, 2009 14 次提交
    • L
      Implement the new virinterface functions · d4ad29be
      Laine Stump 提交于
      * src/driver.h: add new driver functions virDrvNumOfDefinedInterfaces
        and virDrvListDefinedInterfaces
      * src/libvirt.c: implements the entry points, calling new driver
        functions
      * qemud/remote.c qemud/remote_dispatch_args.h qemud/remote_protocol.[chx]
        qemud/remote_dispatch_prototypes.h qemud/remote_dispatch_ret.h
        qemud/remote_dispatch_table.h src/remote_internal.c: implement the
        client/server side of the RPC
      d4ad29be
    • L
      Public API for new virInterface functions · 043c954e
      Laine Stump 提交于
      * include/libvirt/libvirt.h[.in]: adds signatures for the new exported
        functions virConnectNumOfDefinedInterfaces and
        virConnectListDefinedInterfaces
      * src/libvirt_public.syms: export the new symbols
      043c954e
    • D
      Fix configure flags in spec file · d3c236f9
      Daniel Veillard 提交于
      * libvirt.spec.in: we were still using deprecated configure switches
      d3c236f9
    • D
      Rename a bunch of internal methods to clarify their meaning · 5dd21f2a
      Daniel P. Berrange 提交于
      This renames a lot of the methods in the remote driver client
      to more accurately reflect their responsibility of IO handling
      vs message handling.
      5dd21f2a
    • D
      Simplify remote driver error reporting · d65707a5
      Daniel P. Berrange 提交于
      Remove redundant error reporting functions which obscured the
      filename/line number reporting. Removed code which created a
      virDomain/virNetwork object, since those are silently dropped
      in error reporting functions now
      
      * src/remote_internal.c: Remove error() and errorf() in favour of
       macros, and remove server_error in favour of direct call
      d65707a5
    • D
      Refactor message sending to allow code reuse for data streams · 9c9ed0f3
      Daniel P. Berrange 提交于
      Splits up the 'call' method moving generic IO code out into
      separate method to allow it to be easily reused for sending
      data streams
      
      * src/remote_internal.c: Split 'call' into two methods, the first
        with same name serializes a set of method arguments into a
        message, the second 'remoteIO' takes a pre-serialized messages,
        sends it and awaits a reply
      9c9ed0f3
    • D
      Refactor incoming message handling to prepare for data stream support · 7a61c138
      Daniel P. Berrange 提交于
      * src/remote_internal.c: Rename processCallRecvMsg to
        processCallDispatch, and move code specific to method replies
        into processCallDispatchReply, and rename processCallAsyncEvent
        to processCallDispatchMessage
      7a61c138
    • 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
      Define an API for registering incoming message dispatch filters · caaa1b8f
      Daniel P. Berrange 提交于
      All incoming messages currently get routed to the generic method
      remoteDispatchClientRequest() for processing. To allow incoming
      data stream messages to bypass this and be routed to a specific
      location, a concept of dispatch filters is introduced.
      
      * qemud/qemud.h: Add a qemud_client_filter struct and a callback
        qemud_client_filter_func. Maintain a list of filters on every
        struct qemud_client
      * qemud/qemud.c: Move remoteDecodeClientMessageHeader() out of
        qemudWorker() into qemudDispatchClientRead(). Check registered
        message filters in qemudDispatchClientRead() to decide where
        to send incoming messages for dispatch.
      caaa1b8f
    • 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
      Change code generator to give async event messages their own postfix · aa23d432
      Daniel P. Berrange 提交于
      The naming convention for structs used in the RPC layer is for
      incoming requests to be called XXXX_args, and the associated
      outgoing reply to be called XXXX_ret.  Asynchronously emitted
      messages (eg events) are re-using the XXXX_ret naming scheme.
      This patch changes that such that async messages are XXXX_msg,
      and stops adding entries for them in the dispatch table, avoiding
      the need for a dummy no-op implementation.
      
      * qemud/remote.c: Remove dummy remoteDispatchDomainEvent, no
        longer required. Update to replace remote_domain_event_ret
        with xdr_remote_domain_event_msg
      * qemud/remote_protocol.x: Rename remote_domain_event_ret to
        remote_domain_event_msg
      * qemud/remote_generate_stubs.pl: Adding handling for new
        XXX_msg structs.
      * src/remote_internal.c: Rename remote_domain_event_ret to
        remote_domain_event_msg
      * qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h,
        qemud/remote_dispatch_table.h, qemud/remote_protocol.h,
        qemud/remote_protocol.c: auto-regenerate
      aa23d432
    • 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