1. 30 11月, 2010 1 次提交
    • M
      Log client errors in libvirtd at debug priority · abff683f
      Matthias Bolte 提交于
      This reverts commit
      
       Log all errors at level INFO to stop polluting syslog
       04bd0360.
      
      and makes virRaiseErrorFull() log errors at debug priority
      when called from inside libvirtd. This stops libvirtd from
      polluting it's own log with client errors at error priority
      that'll be reported and logged on the client side anyway.
      abff683f
  2. 23 11月, 2010 2 次提交
    • E
      libvirtd: fix bug when shrinking number of clients · 149c4921
      Eric Blake 提交于
      * daemon/libvirtd.c (qemudRunLoop): Pass allocation size, not
      current count, to VIR_SHRINK_N.
      * docs/hacking.html.in: Update doc example.
      * HACKING: Regenerate.
      149c4921
    • D
      Don't catch SIGCHLD in libvirtd · 375ba36e
      Daniel P. Berrange 提交于
      libvirtd no longer deals with SIGCHLD in its signal handler
      since the QEMU driver switched to always daemonize processes.
      Thus remove the sigaction for it, to avoid warning log
      messages
      
      * daemon/libvirtd.c: Don't catch SIGCHLD
      375ba36e
  3. 19 11月, 2010 1 次提交
    • E
      daemon: use safer memory growth macros · e6b68d74
      Eric Blake 提交于
      * daemon/libvirtd.h (qemud_server): Change types of members
      tracking array sizes, and add allocation trackers.
      * daemon/event.c (virEventLoop): Likewise.
      (virEventAddHandleImpl, virEventAddTimeoutImpl)
      (virEventCleanupTimeouts, virEventCleanupHandles): Use
      VIR_RESIZE_N instead of VIR_REALLOC_N.  Tweak debug messages to
      match type changes.
      * daemon/libvirtd.c (qemudDispatchServer, qemudRunLoop): Likewise.
      e6b68d74
  4. 18 11月, 2010 1 次提交
    • E
      maint: improve i18n on non-Linux · 981d2cda
      Eric Blake 提交于
      Per the gettext developer:
      http://lists.gnu.org/archive/html/bug-gnu-utils/2010-10/msg00019.html
      http://lists.gnu.org/archive/html/bug-gnu-utils/2010-10/msg00021.html
      
      gettext() doesn't work correctly on all platforms unless you have
      called setlocale().  Furthermore, gnulib's gettext.h has provisions
      for setting up a default locale, which is the preferred method for
      libraries to use gettext without having to call textdomain() and
      override the main program's default domain (virInitialize already
      calls bindtextdomain(), but this is insufficient without the
      setlocale() added in this patch; and a redundant bindtextdomain()
      in this patch doesn't hurt, but serves as a good example for other
      packages that need to bind a second translation domain).
      
      This patch is needed to silence a new gnulib 'make syntax-check'
      rule in the next patch.
      
      * daemon/libvirtd.c (main): Setup locale and gettext.
      * src/lxc/lxc_controller.c (main): Likewise.
      * src/security/virt-aa-helper.c (main): Likewise.
      * src/storage/parthelper.c (main): Likewise.
      * tools/virsh.c (main): Fix exit status.
      * src/internal.h (DEFAULT_TEXT_DOMAIN): Define, for gettext.h.
      (_): Simplify definition accordingly.
      * po/POTFILES.in: Add src/storage/parthelper.c.
      981d2cda
  5. 17 11月, 2010 3 次提交
    • E
      maint: use gnulib configmake rather than open-coding things · 0d5f54bb
      Eric Blake 提交于
      * bootstrap.conf (gnulib_modules): Add configmake.
      * daemon/Makefile.am (libvirtd_CFLAGS): Drop defines provided by
      gnulib.
      * src/Makefile.am (INCLUDES): Likewise.
      * tests/Makefile.am (INCLUDES): Likewise.
      * tools/Makefile.am (virsh_CFLAGS): Likewise.
      * daemon/libvirtd.c (qemudInitPaths, usage, main): Update
      clients.
      * src/cpu/cpu_map.c (CPUMAPFILE): Likewise.
      * src/driver.c (DEFAULT_DRIVER_DIR): Likewise.
      * src/internal.h (_): Likewise.
      * src/libvirt.c (virInitialize): Likewise.
      * src/lxc/lxc_conf.h (LXC_CONFIG_DIR, LXC_STATE_DIR, LXC_LOG_DIR):
      Likewise.
      * src/lxc/lxc_conf.c (lxcCapsInit, lxcLoadDriverConfig):
      Likewise.
      * src/network/bridge_driver.c (NETWORK_PID_DIR)
      (NETWORK_STATE_DIR, DNSMASQ_STATE_DIR, networkStartup): Likewise.
      * src/nwfilter/nwfilter_driver.c (nwfilterDriverStartup):
      Likewise.
      * src/qemu/qemu_conf.c (qemudLoadDriverConfig): Likewise.
      * src/qemu/qemu_driver.c (qemudStartup): Likewise.
      * src/remote/remote_driver.h (LIBVIRTD_PRIV_UNIX_SOCKET)
      (LIBVIRTD_PRIV_UNIX_SOCKET_RO, LIBVIRTD_CONFIGURATION_FILE)
      (LIBVIRT_PKI_DIR): Likewise.
      * src/secret/secret_driver.c (secretDriverStartup): Likewise.
      * src/security/security_apparmor.c (VIRT_AA_HELPER): Likewise.
      * src/security/virt-aa-helper.c (main): Likewise.
      * src/storage/storage_backend_disk.c (PARTHELPER): Likewise.
      * src/storage/storage_driver.c (storageDriverStartup): Likewise.
      * src/uml/uml_driver.c (TEMPDIR, umlStartup): Likewise.
      * src/util/hooks.c (LIBVIRT_HOOK_DIR): Likewise.
      * tools/virsh.c (main): Likewise.
      * docs/hooks.html.in: Likewise.
      0d5f54bb
    • S
      deprecate fclose() and introduce VIR_{FORCE_}FCLOSE() · 7b7cb1ec
      Stefan Berger 提交于
      Similarly to deprecating close(), I am now deprecating fclose() and
      introduce VIR_FORCE_FCLOSE() and VIR_FCLOSE(). Also, fdopen() is replaced with
      VIR_FDOPEN().
      
      Most of the files are opened in read-only mode, so usage of
      VIR_FORCE_CLOSE() seemed appropriate. Others that are opened in write
      mode already had the fclose()<  0 check and I converted those to
      VIR_FCLOSE()<  0.
      
      I did not find occurrences of possible double-closed files on the way.
      7b7cb1ec
    • O
      daemon: fix indention problem in daemon/libvirt.c · 7942fd1c
      Osier Yang 提交于
      * daemon/libvirtd.c
      7942fd1c
  6. 10 11月, 2010 1 次提交
    • S
      bye to close(), welcome to VIR_(FORCE_)CLOSE() · 60ae1c34
      Stefan Berger 提交于
      Using automated replacement with sed and editing I have now replaced all
      occurrences of close() with VIR_(FORCE_)CLOSE() except for one, of
      course. Some replacements were straight forward, others I needed to pay
      attention. I hope I payed attention in all the right places... Please
      have a look. This should have at least solved one more double-close
      error.
      60ae1c34
  7. 26 10月, 2010 1 次提交
    • M
      Fix build for SystemTap 1.0 · cbe719fe
      Matthias Bolte 提交于
      With SystemTap 1.0 a part of the generated macros in probes.h
      expands to:
      
      volatile __typeof__(((name))) arg2 = (name);
      
      GCC reports an 'invalid initialize' error when name has type
      char[]. Therfore, add casts to char* to avoid this.
      cbe719fe
  8. 22 10月, 2010 2 次提交
    • D
      Include socket address in client probe data · 4b16b9c7
      Daniel P. Berrange 提交于
      It is useful to know where the client is connecting from,
      so include the socket address in probe data.
      
      * daemon/libvirtd.h: Use virSocketAddr for storing client
        address and keep printable address handy for logging
      * daemon/libvirtd.c: Include socket address in client
        connect/disconnect probes
      * daemon/probes.d: Add socket address to probes
      * examples/systemtap/client.stp: Print socket address
      * src/util/network.h: Add sockaddr_un to virSocketAddr union
      4b16b9c7
    • D
      Add dtrace static probes in libvirtd · 968eb4e5
      Daniel P. Berrange 提交于
      Adds initial support for dtrace static probes in libvirtd
      daemon, assuming use of systemtap dtrace compat shim on
      Linux. The probes are inserted for network client connect,
      disconnect, TLS handshake states and authentication protocol
      states.
      
      This can be tested by running the xample program and then
      attempting to connect with any libvirt client (virsh,
      virt-manager, etc).
      
       # stap examples/systemtap/client.stp
        Client fd=44 connected readonly=0
        Client fd=44 auth polkit deny pid:24997,uid:500
        Client fd=44 disconnected
        Client fd=46 connected readonly=1
        Client fd=46 auth sasl allow test
        Client fd=46 disconnected
      
      The libvirtd.stp file should also really not be required,
      since it is duplicated info that is already available in
      the main probes.d definition file. A script to autogenerate
      the .stp file is needed, either in libvirtd tree, or better
      as part of systemtap itself.
      
      * Makefile.am: Add examples/systemtap subdir
      * autobuild.sh: Disable dtrace for mingw32
      * configure.ac: Add check for dtrace
      * daemon/.gitignore: Ignore generated dtrace probe file
      * daemon/Makefile.am: Build dtrace probe header & object
        files
      * daemon/libvirtd.stp: SystemTAP convenience probeset
      * daemon/libvirtd.c: Add connect/disconnect & TLS probes
      * daemon/remote.c: Add SASL and PolicyKit auth probes
      * daemon/probes.d: Master probe definition
      * daemon/libvirtd.h: Add convenience macro for probes
        so that compilation is a no-op when dtrace is not available
      * examples/systemtap/Makefile.am, examples/systemtap/client.stp
        Example systemtap script using dtrace probe markers
      * libvirt.spec.in: Enable dtrace on F13/RHEL6
      * mingw32-libvirt.spec.in: Force disable dtrace
      968eb4e5
  9. 20 10月, 2010 1 次提交
    • D
      Basic framework for auditing integration · 8f680ad3
      Daniel P. Berrange 提交于
      Integrate with libaudit.so for auditing of important operations.
      libvirtd gains a couple of config entries for auditing. By
      default it will enable auditing, if its enabled on the host.
      It can be configured to force exit if auditing is disabled
      on the host. It will can also send audit messages via libvirt
      internal logging API
      
      Places requiring audit reporting can use the VIR_AUDIT
      macro to report data. This is a no-op unless auditing is
      enabled
      
      * autobuild.sh, mingw32-libvirt.spec.in: Disable audit
        on mingw
      * configure.ac: Add check for libaudit
      * daemon/libvirtd.aug, daemon/libvirtd.conf,
        daemon/test_libvirtd.aug, daemon/libvirtd.c: Add config
        options to enable auditing
      * include/libvirt/virterror.h, src/util/virterror.c: Add
        VIR_FROM_AUDIT source
      * libvirt.spec.in: Enable audit
      * src/util/virtaudit.h, src/util/virtaudit.c: Simple internal
        API for auditing messages
      8f680ad3
  10. 23 9月, 2010 1 次提交
    • D
      Refactor some daemon code to facilitate introduction of static probes · e8066d53
      Daniel P. Berrange 提交于
      Refactor some daemon code to facilitate the introductioin of static
      probes, sanitizing function exit paths in many places
      
      * daemon/libvirtd.c: Pass the dname string into remoteCheckDN
        to let caller deal with failure paths. Add separate exit paths
        to remoteCheckCertificate for auth failure vs denial. Merge
        all exit paths in qemudDispatchServer to one cleanup block
      * daemon/remote.c: Add separate exit paths to SASL & PolicyKit
        functions for auth failure vs denial
      e8066d53
  11. 16 9月, 2010 1 次提交
  12. 08 6月, 2010 1 次提交
    • D
      Ensure UNIX domain sockets are removed on daemon shutdown · 53fc1d8a
      Daniel P. Berrange 提交于
      When libvirtd exits it is leaving UNIX domain sockets on
      the filesystem. These need to be removed.
      
      The qemudInitPaths() method has signficant code churn to
      switch from using a pre-allocated buffer on the stack, to
      dynamically allocating on the heap.
      
      * daemon/libvirtd.c, daemon/libvirtd.h: Store a reference
        to the UNIX domain socket path and unlink it on shutdown
      53fc1d8a
  13. 26 5月, 2010 2 次提交
    • J
      libvirtd: diagnose invalid host UUID · 3db8607f
      Jim Meyering 提交于
      * daemon/libvirtd.c (remoteReadConfigFile): Diagnose an invalid
      host UUID rather than silently exiting with status 7.
      3db8607f
    • D
      Expose a host UUID in the capabilities XML · 60881161
      Daniel P. Berrange 提交于
      Allow for a host UUID in the capabilities XML. Local drivers
      will initialize this from the SMBIOS data. If a sanity check
      shows SMBIOS uuid is invalid, allow an override from the
      libvirtd.conf configuration file
      
      * daemon/libvirtd.c, daemon/libvirtd.conf: Support a host_uuid
        configuration option
      * docs/schemas/capability.rng: Add optional host uuid field
      * src/conf/capabilities.c, src/conf/capabilities.h: Include
        host UUID in XML
      * src/libvirt_private.syms: Export new uuid.h functions
      * src/lxc/lxc_conf.c, src/qemu/qemu_driver.c,
        src/uml/uml_conf.c: Set host UUID in capabilities
      * src/util/uuid.c, src/util/uuid.h: Support for host UUIDs
      * src/node_device/node_device_udev.c: Use the host UUID functions
      * tests/confdata/libvirtd.conf, tests/confdata/libvirtd.out: Add
        new host_uuid config option to test
      60881161
  14. 23 5月, 2010 2 次提交
    • J
      libvirtd: start each diagnostic with "argv0: " · d5fda6d6
      Jim Meyering 提交于
      Some diagnostics had a hard-coded "libvirtd: " prefix, some used
      "error: " and some used "argv[0]: ".  Always use "argv[0]: ".
      * daemon/libvirtd.c (argv0): New global.
      (main): Set it.
      (version, usage): Remove argv0 parameter.  Use global; update callers.
      (daemonForkIntoBackground): Use argv0:, not error:.
      (qemudWritePidFile): Start each diagnostic with argv0:.
      Suggested by Eric Blake.
      d5fda6d6
    • J
      libvirtd: mark strings for translation, including --help output · 0c316338
      Jim Meyering 提交于
      * daemon/libvirtd.c (daemonForkIntoBackground, main): Mark strings
      for translation.
      (usage): Rework --help so that it is translatable, replacing
      each embedded, configuration-dependent, macro with an `%s'.
      
      libvirtd: don't ignore virInitialize failure
      * daemon/libvirtd.c (main): Diagnose virInitialize failure
      and exit nonzero.
      0c316338
  15. 21 5月, 2010 4 次提交
  16. 20 5月, 2010 1 次提交
  17. 19 5月, 2010 1 次提交
  18. 22 4月, 2010 1 次提交
    • C
      Make avahi startup more robust. · 8274993f
      Chris Lalancette 提交于
      If the hostname of the current virtualization machine
      could not be resolved, then libvirtd would fail to
      start.  However, for disconnected operation (on a laptop,
      for instance) the hostname may very legitimately not
      be resolvable.  This patch makes it so that if we can't
      resolve the hostname, avahi doesn't fail, it just uses
      a less useful MDNS string.
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      8274993f
  19. 06 4月, 2010 1 次提交
  20. 30 3月, 2010 2 次提交
  21. 27 3月, 2010 1 次提交
    • S
      Core driver implementation with ebtables support · 065b6571
      Stefan Berger 提交于
      This patch implements the core driver and provides
      - management functionality for managing the filter XMLs
      - compiling the internal filter representation into ebtables rules
      - applying ebtables rules on a network (tap,macvtap) interface
      - tearing down ebtables rules that were applied on behalf of an
      interface
      - updating of filters while VMs are running and causing the firewalls to
      be rebuilt
      - other bits and pieces
      Signed-off-by: NStefan Berger <stefanb@us.ibm.com>
      065b6571
  22. 26 3月, 2010 1 次提交
    • D
      Remote driver & daemon impl of new event API · 097e07a6
      Daniel P. Berrange 提交于
      This wires up the remote driver to handle the new events APIs.
      The public API allows an application to request a callback filters
      events to a specific domain object, and register multiple callbacks
      for the same event type. On the wire there are two strategies for
      this
      
       - Register multiple callbacks with the remote daemon, each
         with filtering as needed
       - Register only one callback per event type, with no filtering
      
      Both approaches have potential inefficiency. In the first scheme,
      the same event gets sent over the wire many times if multiple
      callbacks are registered. With the second scheme, unneccessary
      events get sent over the wire if a per-domain filter is set on
      the client. The second scheme is far easier to implement though,
      so this patch takes that approach.
      
      * daemon/dispatch.h: Don't export remoteRelayDomainEvent since it
        is no longer needed for unregistering callbacks, instead the
        unique callback ID is used
      * daemon/libvirtd.c, daemon/libvirtd.h: Track and unregister
        callbacks based on callback ID, instead of function pointer
      * daemon/remote.c: Switch over to using virConnectDomainEventRegisterAny
        instead of legacy virConnectDomainEventRegister function. Refactor
        remoteDispatchDomainEventSend() to cope with arbitrary event types
      * src/driver.h, src/driver.c: Move verify() call into source file
        instead of header, to avoid polluting the global namespace with
        the verify function name
      * src/remote/remote_driver.c: Implement new APIs for event
        registration. Refactor processCallDispatchMessage() to cope
        with arbitrary incoming event types. Merge remoteDomainQueueEvent()
        into processCallDispatchMessage() to avoid duplication of code.
        Rename remoteDomainReadEvent() to remoteDomainReadEventLifecycle()
      * src/remote/remote_protocol.x: Define wire format for the new
        virConnectDomainEventRegisterAny and virConnectDomainEventDeregisterAny
        functions
      097e07a6
  23. 10 3月, 2010 1 次提交
  24. 02 3月, 2010 1 次提交
  25. 27 2月, 2010 1 次提交
  26. 26 2月, 2010 1 次提交
    • C
      remote: Improve daemon startup error reporting · 67b2eb10
      Cole Robinson 提交于
      If I toggle enable_tcp in libvirtd.conf and add --listen in
      /etc/init.d/libvirtd, I get the unhelpful error:
      
      Starting libvirtd daemon: error: Unable to initialize network sockets.
      
      Running without --daemon provides much more useful info:
      
      sudo libvirtd --listen
      11:29:26.117: error : remoteCheckCertFile:270 : Cannot access CA certificate '/etc/pki/CA/cacert.pem': No such file or directory
      
      The daemon architecture makes it difficult to report this useful
      info if daemonized, so point users to /var/log/messages and
      dropping the --daemon flag if they want more info.
      67b2eb10
  27. 09 2月, 2010 2 次提交
  28. 02 2月, 2010 1 次提交
  29. 20 1月, 2010 1 次提交