1. 03 11月, 2009 2 次提交
    • D
      Annotate many methods with ATTRIBUTE_RETURN_CHECK & fix problems · 46992453
      Daniel P. Berrange 提交于
      Nearly all of the methods in src/util/util.h have error codes that
      must be checked by the caller to correct detect & report failure.
      Add ATTRIBUTE_RETURN_CHECK to ensure compile time validation of
      this
      
      * daemon/libvirtd.c: Add explicit check on return value of virAsprintf
      * src/conf/domain_conf.c: Add missing check on virParseMacAddr return
        value status & report error
      * src/network/bridge_driver.c: Add missing OOM check on virAsprintf
        and report error
      * src/qemu/qemu_conf.c: Add missing check on virParseMacAddr return
        value status & report error
      * src/security/security_selinux.c: Remove call to virRandomInitialize
        that's done in libvirt.c already
      * src/storage/storage_backend_logical.c: Add check & log on virRun
        return status
      * src/util/util.c: Add missing checks on virAsprintf/Run status
      * src/util/util.h: Annotate all methods with ATTRIBUTE_RETURN_CHECK
        if they return an error status code
      * src/vbox/vbox_tmpl.c: Add missing check on virParseMacAddr
      * src/xen/xm_internal.c: Add missing checks on virAsprintf
      * tests/qemuargv2xmltest.c: Remove bogus call to virRandomInitialize()
      46992453
    • D
      Allow for a driver specific private data blob in virDomainObjPtr · 3505790b
      Daniel P. Berrange 提交于
      The virDomainObjPtr object stores state about a running domain.
      This object is shared across all drivers so it is not appropriate
      to include driver specific state here. This patch adds the ability
      to request a blob of private data per domain object instance. The
      driver must provide a allocator & deallocator for this purpose
      
      THis patch abuses the virCapabilitiesPtr structure for storing the
      allocator/deallocator callbacks, since it is already being abused
      for other internal things relating to parsing. This should be moved
      out into a separate object at some point.
      
      * src/conf/capabilities.h: Add privateDataAllocFunc and
        privateDataFreeFunc fields
      * src/conf/domain_conf.c: Invoke the driver allocators / deallocators
        when creating/freeing virDomainObjPtr instances.
      * src/conf/domain_conf.h: Pass virCapsPtr into virDomainAssignDef
        to allow access to the driver specific allocator function
      * src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
        src/openvz/openvz_driver.c, src/qemu/qemu_driver.c,
        src/test/test_driver.c, src/uml/uml_driver.c: Update for
        change in virDomainAssignDef contract
      3505790b
  2. 02 11月, 2009 2 次提交
  3. 30 10月, 2009 4 次提交
  4. 29 10月, 2009 1 次提交
    • D
      Convert virDomainObjListPtr to use a hash of domain objects · a3adcce7
      Daniel P. Berrange 提交于
      The current virDomainObjListPtr object stores domain objects in
      an array. This means that to find a particular objects requires
      O(n) time, and more critically acquiring O(n) mutex locks.
      
      The new impl replaces the array with a virHashTable, keyed off
      UUID. Finding a object based on UUID is now O(1) time, and only
      requires a single mutex lock. Finding by name/id is unchanged
      in complexity.
      
      In changing this, all code which iterates over the array had
      to be updated to use a hash table iterator function callback.
      Several of the functions which were identically duplicating
      across all drivers were pulled into domain_conf.c
      
      * src/conf/domain_conf.h, src/conf/domain_conf.c: Change
        virDomainObjListPtr to use virHashTable. Add a initializer
        method virDomainObjListInit, and rename virDomainObjListFree
        to virDomainObjListDeinit, since its not actually freeing
        the container, only its contents. Also add some convenient
        methods virDomainObjListGetInactiveNames,
        virDomainObjListGetActiveIDs and virDomainObjListNumOfDomains
        which can be used to implement the correspondingly named
        public API entry points in drivers
      * src/libvirt_private.syms: Export new methods from domain_conf.h
      * src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
        src/openvz/openvz_conf.c, src/openvz/openvz_driver.c,
        src/qemu/qemu_driver.c, src/test/test_driver.c,
        src/uml/uml_driver.c, src/vbox/vbox_tmpl.c: Update all code
        to deal with hash tables instead of arrays for domains
      a3adcce7
  5. 28 10月, 2009 10 次提交
  6. 27 10月, 2009 4 次提交
  7. 26 10月, 2009 5 次提交
  8. 22 10月, 2009 2 次提交
    • M
      Fix potential false-positive OOM error reporting. · 4ed2c377
      Matthias Bolte 提交于
      If no matching device was found (cap == NULL) then no strdup() call
      was made and *wwnn and *wwpn are untouched. Checking them for NULL
      in this situation may result in reporting an false-positive OOM error
      because *wwnn and *wwpn may be initialized to NULL by the caller.
      
      Only check *wwnn and *wwpn for NULL if a matching device was found
      (cap != NULL) and thus strdup() was called.
      
      * src/conf/node_device_conf.c: only report an OOM error if there
        really is one
      4ed2c377
    • D
      Consolidate virXPathNodeSet() · 2f4682a9
      Daniel Veillard 提交于
      virXPathNodeSet() could return -1 when doing an evaluation failure
      due to xmlXPathEval() from libxml2 behaviour.
      * src/util/xml.c: make sure we always return 0 unless the returned
        XPath type is of the wrong type (meaning the query passed didn't
        evaluate to a node set and code must be fixed)
      2f4682a9
  9. 21 10月, 2009 6 次提交
  10. 19 10月, 2009 3 次提交
    • D
      Remove bogus const annotations to hash iterator · cf577653
      Daniel P. Berrange 提交于
      Most of the hash iterators need to modify either payload of
      data args. The const annotation prevents this.
      
      * src/util/hash.h, src/util/hash.c: Remove const-ness from
        virHashForEach/Iterator
      * src/xen/xm_internal.c: Remove bogus casts
      cf577653
    • D
      fix virDomainMigrateToURI doc · de2b252d
      Dan Kenigsberg 提交于
      * src/libvirt.c: remove reverences to non existent dconn parameter
        when using that entry point.
      de2b252d
    • R
      LXC fix virCgroupGetValueStr problem with \n · 41fa653f
      Ryota Ozaki 提交于
      A cgroup file returns integer value terminated with '\n' and remaining
      it has sometimes harmful effects, for example it leads virStrToLong_ull
      to fail.
      * src/util/cgroup.c: strip out terminating \n when reading a value
      41fa653f
  11. 15 10月, 2009 1 次提交
    • M
      Don't copy old machines from a domain which has none · 2210f8a3
      Mark McLoughlin 提交于
      If the the qemu and kvm binaries are the same, we don't include machine
      types in the kvm domain info.
      
      However, the code which refreshes the machine types info from the
      previous capabilities structure first looks at the kvm domain's info,
      finds it matches and then copies the empty machine types list over
      for the top-level qemu domain.
      
      That doesn't make sense, we shouldn't copy an empty machin types list.
      
      * src/qemu/qemu_conf.c: qemudGetOldMachinesFromInfo(): don't copy an
        empty machine types list.
      2210f8a3