1. 10 3月, 2010 1 次提交
  2. 21 1月, 2010 1 次提交
    • D
      Make all bitfields unsigned ints to avoid unexpected values in casts · 50b6c95d
      Daniel P. Berrange 提交于
      The 'int virInterfaceIsActive()' method was directly returning the
      value of the 'int active:1' bitfield in virIntefaceDefPtr. A bitfield
      with a signed integer, will hold the values 0 and -1, not 0 and +1
      as might be expected. This meant that virInterfaceIsActive() was
      always returning -1 when the interface was active, not +1 & thus all
      callers thought an error had occurred. To protect against this kind
      of mistake again, change all bitfields to be unsigned ints
      
      * daemon/libvirtd.h, src/conf/domain_conf.h, src/conf/interface_conf.h,
        src/conf/network_conf.h: Change bitfields to unsigned int.
      50b6c95d
  3. 14 1月, 2010 1 次提交
    • C
      daemon: Don't blindly unregister domain events · 438fa793
      Cole Robinson 提交于
      The daemon will attempt to unregister domain events on client disconnect,
      even if no events were ever registered. This raises an unneeded error.
      
      Track in the qemu_client structure if events have been registered, and
      check this when performing cleanup.
      438fa793
  4. 04 11月, 2009 1 次提交
    • D
      Move libvirtd event loop into background thread · 075bb5f1
      Daniel P. Berrange 提交于
      The virStateInitialize() call for starting up stateful drivers
      may require that the event loop is running already. This it is
      neccessary to start the event loop before this call. At the
      same time, network clients must not be processed until afte
      virStateInitialize has completed.
      
      The qemudListenUnix() and remoteListenTCP() methods must
      therefore not register file handle watches, merely open the
      network sockets & listen() on them. This means clients can
      connected and are queued, pending completion of initialization
      
      The qemudRunLoop() method is moved into a background thread
      that is started early to allow access to the event loop during
      driver initialization. The main process thread leader pretty
      much does nothing once the daemon is running, merely waits
      for the event loop thread to quit
      
      * daemon/libvirtd.c, daemon/libvirtd.h: Move event loop into
        a background thread
      * daemon/THREADING.txt: Rewrite docs to better reflect reality
      075bb5f1
  5. 03 11月, 2009 1 次提交
  6. 29 9月, 2009 2 次提交
    • D
      Handle outgoing data streams in libvirtd · 4f17809a
      Daniel P. Berrange 提交于
      * daemon/dispatch.c: Set streamTX flag on outgoing data packets
      * daemon/qemud.h: Add streamTX flag to track outgoing data
      * daemon/qemud.c: Re-enable further TX when outgoing data packet
        has been fully sent.
      * daemon/stream.h, daemon/stream.c: Add method for enabling TX.
        Support reading from streams and transmitting data out to client
      4f17809a
    • 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
  7. 21 9月, 2009 2 次提交
    • D
      Rename daemon main code · c00c6d03
      Daniel P. Berrange 提交于
      * daemon/qemud.c: Rename to daemon/libvirtd.c
      * daemon/qemud.h: Rename to daemon/libvirtd.h
      * daemon/Makefile.am, daemon/dispatch.h, daemon/mdns.c,
        daemon/remote.h: Update for renamed libvirtd.h file
      c00c6d03
    • 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
  8. 25 8月, 2009 1 次提交
    • D
      Support new PolicyKit 1.0 API · 8e06c8b3
      Daniel P. Berrange 提交于
      * configure.in: Check for pkcheck which indicates new policykit
      * qemud/Makefile.am: Install different versions of policy
      * qemud/libvirtd.policy: Rename to libvirtd.policy-0
      * qemud/libvirtd.policy-1: new style policy
      * qemud/qemud.c, qemud/qemud.h, qemud/remote.c: Support new
        policykit API via external pkcheck helper
      * src/remote_internal.c: Don't prompt for polkit auth with new
        policykit API
      * libvirt.spec.in: deal with new policy install locations & deps
      8e06c8b3
  9. 23 7月, 2009 1 次提交
    • D
      Fix misc Win32 compile warnings · 899ae0d2
      Daniel P. Berrange 提交于
      GCC >= 4.4 assumes the 'printf' attribute refers to the native
      runtime libraries format specifiers. Thanks to gnulib, libvirt
      has GNU format specifiers everywhere.  This means we need to
      use 'gnu_printf' with GCC >= 4.4 to get correct compiler
      checking of printf format specifiers.
      
      * HACKING: Document new rules for ATTRIBUTE_FMT_PRINTF
      * autobuild.sh, mingw32-libvirt.spec.in: Disable OpenNebula
        driver on mingw32 builds
      * qemud/dispatch.h, qemud/qemu.h, src/buf.h src/internal.h,
        src/logging.h, src/security.h, src/sexpr.h, src/util.h,
        src/virterror_internal.h, src/xend_internal.c: Change
        over to ATTRIBUTE_FMT_PRINTF.
      * src/virsh.c: Disable 'cd' and 'pwd' commands on Win32
        since they don't compile
      * src/threads-win32.c: Add missing return value check
      899ae0d2
  10. 16 7月, 2009 4 次提交
    • 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
      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
      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
  11. 12 6月, 2009 1 次提交
  12. 12 5月, 2009 1 次提交
  13. 10 2月, 2009 1 次提交
    • J
      libvirtd: new config-file option: unix_sock_dir · 98352a10
      Jim Meyering 提交于
      Before this change, the unix socket directory was hard-coded
      to be e.g., /var/run/libvirt for euid==0 and ~/.libvirt otherwise.
      With this change, you may now specify that directory in libvirtd's
      config file via a line like this: unix_sock_dir = "/var/run/libvirt".
      This is essential for running tests that do not impinge on any
      existing libvirtd process, and in running tests in parallel.
      * qemud/libvirtd.conf (unix_sock_dir): Add comment and example.
      * qemud/qemud.h (struct qemud_server) [logDir]: Change type
      from char[PATH_MAX] to char*.
      * qemud/qemud.c (unix_sock_dir): New global
      (remoteReadConfigFile): Set the global.
      (qemudInitPaths): Use the global, unix_sock_dir, if non-NULL.
      One minor improvement: unlink both sockets or none, never
      just one of them.
      (qemudCleanup): Free logDir.
      (main): Use the new global rather than hard-coding "/run/libvirt".
      * qemud/libvirtd.aug (sock_acl_entry): Add "unix_sock_dir".
      98352a10
  14. 21 1月, 2009 2 次提交
  15. 16 1月, 2009 1 次提交
  16. 22 12月, 2008 1 次提交
  17. 05 12月, 2008 4 次提交
  18. 20 11月, 2008 1 次提交
  19. 18 11月, 2008 1 次提交
  20. 29 10月, 2008 1 次提交
    • J
      remove src/socketcompat.h; no longer needed · f79ebbd1
      Jim Meyering 提交于
      * src/socketcompat.h: Remove file.
      * src/remote_internal.c: Don't include socketcompat.h.
      * qemud/qemud.h: Likewise.
      * qemud/remote_protocol.x: Likewise, but do include <arpa/inet.h>
      for htonl.
      * src/remote_internal.c: Likewise, but do include <errno.h>.
      * qemud/remote_protocol.c: Regenererate.
      * qemud/remote_protocol.h: Regenererate.
      * src/Makefile.am (REMOTE_DRIVER_SOURCES): Remove socketcompat.h.
      f79ebbd1
  21. 23 10月, 2008 1 次提交
    • D
      Massive patch adding event APIs by Ben Guthro · 1509b802
      Daniel Veillard 提交于
      * include/libvirt/libvirt.h include/libvirt/libvirt.h.in
        src/libvirt.c src/libvirt_sym.version: new libvirt event entry
        points, big patch provided by Ben Guthro
      * Makefile.am configure.in src/driver.h src/event.c src/event.h
        src/internal.h src/libvirt.c src/libvirt_sym.version src/lxc_driver.c
        src/openvz_driver.c src/qemu_conf.h src/qemu_driver.c
        src/remote_internal.c src/storage_backend_fs.c src/test.c
        qemud/event.c qemud/event.h qemud/mdns.c qemud/qemud.c
        qemud/qemud.h qemud/remote.c qemud/remote_dispatch_localvars.h
        qemud/remote_dispatch_proc_switch.h qemud/remote_dispatch_prototypes.h
        qemud/remote_protocol.c qemud/remote_protocol.h
        qemud/remote_protocol.x proxy/Makefile.am python/generator.py:
        Not much is left untouched by the patch adding the events support
      * docs/libvirt-api.xml docs/libvirt-refs.xml
        docs/html/libvirt-libvirt.html: regenerated the docs
      * examples/domain-events/events-c/Makefile.am
        examples/domain-events/events-c/event-test.c: a test example
      * AUTHORS: added Ben Guthro
      daniel
      1509b802
  22. 23 5月, 2008 1 次提交
    • R
      Standardize use of header files, making internal.h primary. · 1d8d4f86
      Richard W.M. Jones 提交于
      	* qemud/internal.h, qemud/qemud.h: Rename this file so it
      	doesn't conflict with src/internal.h.
      	* HACKING: Document how header files should be used.
      	* qemud/Makefile.am: Add src/ directory to includes.
      	* qemud/event.c, qemud/mdns.c, qemud/qemud.c, qemud/remote.c,
      	qemud/remote_protocol.c, qemud/remote_protocol.h,
      	qemud/remote_protocol.x, src/buf.c, src/libvirt.c,
      	src/nodeinfo.c, src/qemu_conf.c, src/qemu_driver.c,
      	src/stats_linux.c, src/storage_backend.c, src/storage_backend_fs.c,
      	src/storage_backend_iscsi.c, src/storage_backend_logical.c,
      	src/storage_conf.c, src/storage_driver.c, src/util.c,
      	src/util.h, src/virsh.c, src/virterror.c, src/xend_internal.c,
      	src/xml.c, tests/reconnect.c, tests/xmlrpctest.c,
      	tests/qparamtest.c: Standardize	use of header files.
      	* docs/*, po/*: Rebuild docs.
      1d8d4f86
  23. 11 4月, 2008 1 次提交
  24. 04 4月, 2008 1 次提交
  25. 23 1月, 2008 1 次提交
    • R
      Portability improvements for Mac OS X. · 9cf2573c
      Richard W.M. Jones 提交于
              * configure.in: Use PortableXDR if available.
              * qemud/internal.h: Use "socketcompat.h".
              * qemud/qemud.c: Use <signal.h>.
              * src/sexpr.c: Use <stdlib.h> instead of <malloc.h>.
              * src/socketcompat.h: Include <sys/un.h> for Mac OS X.
      9cf2573c
  26. 06 12月, 2007 1 次提交
  27. 05 12月, 2007 3 次提交
  28. 26 11月, 2007 1 次提交
  29. 17 11月, 2007 1 次提交