1. 14 7月, 2011 1 次提交
    • E
      conf: prefer unsigned flags · e17d3e7f
      Eric Blake 提交于
      * src/conf/cpu_conf.h (virCPUDefFormat, virCPUDefFormatBuf):
      Change flags type.
      * src/conf/cpu_conf.c (virCPUDefFormat, virCPUDefFormatBuf):
      Likewise.
      * src/conf/storage_conf.c (_virStoragePoolOptions): Likewise.
      * src/datatypes.h (_virConnect, _virStream): Likewise.
      e17d3e7f
  2. 23 6月, 2011 1 次提交
    • E
      virStorageVol: avoid PATH_MAX-sized array · aa286e53
      Eric Blake 提交于
      POSIX allows implementations where PATH_MAX is undefined, leading
      to compilation error.  Not to mention that even if it is defined,
      it is often wasteful in relation to the amount of data being stored.
      
      All clients of vol->key were audited, and found not to care about
      whether key is static or dynamic, except for these offenders:
      
      * src/datatypes.h (struct _virStorageVol): Manage key dynamically.
      * src/datatypes.c (virReleaseStorageVol): Free key.
      (virGetStorageVol): Copy key.
      aa286e53
  3. 21 2月, 2011 1 次提交
    • D
      Remove all object hashtable caches from virConnectPtr · 2ff4c137
      Daniel P. Berrange 提交于
      The virConnectPtr struct will cache instances of all other
      objects. APIs like virDomainLookupByUUID will return a
      cached object, so if you do virDomainLookupByUUID twice in
      a row, you'll get the same exact virDomainPtr instance.
      
      This does not have any performance benefit, since the actual
      logic in virDomainLookupByUUID (and other APIs returning
      virDomainPtr, etc instances) is not short-circuited. All
      it does is to ensure there is only one single virDomainPtr
      in existance for any given UUID.
      
      The caching has a number of downsides though, all relating
      to stale data. If APIs aren't careful to always overwrite
      the 'id' field in virDomainPtr it may become out of data.
      Likewise for the name field, if a guest is renamed, or if
      a guest is deleted, and then a new one created with the
      same UUID but different name.
      
      This has been an ongoing, endless source of bugs for all
      applications using libvirt from languages with garbage
      collection, causing them to get virDomainPtr instances
      from long ago with stale data.
      
      The caching is also a waste of memory resources, since
      both applications, and language bindings often maintain
      their own hashtable caches of object instances.
      
      This patch removes all the hash table caching, so all
      APIs return brand new virDomainPtr (etc) object instances.
      
      * src/datatypes.h: Delete all hash tables.
      * src/datatypes.c: Remove all object caching code
      2ff4c137
  4. 19 1月, 2011 1 次提交
    • M
      Simplify "NWFilterPool" to "NWFilter" · 2c0db5b5
      Matthias Bolte 提交于
      The public object is called NWFilter but the corresponding private
      object is called NWFilterPool. I don't see compelling reasons for this
      Pool suffix. One might argue that an NWFilter is a "pool" of rules, etc.
      
      Remove the Pool suffix from NWFilterPool. No functional change included.
      2c0db5b5
  5. 22 12月, 2010 1 次提交
    • E
      maint: avoid space-tab · 831aaf4a
      Eric Blake 提交于
      * daemon/Makefile.am: Avoid spurious space before tabs.
      * src/Makefile.am: Likewise.
      * examples/dominfo/Makefile.am: Likewise.
      * examples/domsuspend/Makefile.am: Likewise.
      * tools/Makefile.am: Likewise.
      * src/datatypes.h (VIR_CONNECT_MAGIC): Likewise.
      * src/internal.h (TODO): Likewise.
      * src/qemu/qemu_monitor.h (QEMU_MONITOR_MIGRATE): Likewise.
      * src/xen/xen_hypervisor.c (XEN_V2_OP_GETAVAILHEAP): Likewise.
      * src/xen/xs_internal.h: Likewise.
      831aaf4a
  6. 05 4月, 2010 1 次提交
  7. 27 3月, 2010 2 次提交
  8. 10 3月, 2010 1 次提交
  9. 29 9月, 2009 1 次提交
    • D
      Add public API definition for data stream handling · 182eba1b
      Daniel P. Berrange 提交于
      * include/libvirt/libvirt.h.in: Public API contract for
        virStreamPtr object
      * src/libvirt_public.syms: Export data stream APIs
      * src/libvirt_private.syms: Export internal helper APIs
      * src/libvirt.c: Data stream API driver dispatch
      * src/datatypes.h, src/datatypes.c: Internal helpers for virStreamPtr
        object
      * src/driver.h: Define internal driver API for streams
      * .x-sc_avoid_write: Ignore src/libvirt.c because it trips
        up on comments including write()
      * python/Makefile.am: Add libvirt-override-virStream.py
      * python/generator.py: Add rules for virStreamPtr class
      * python/typewrappers.h, python/typewrappers.c: Wrapper
        for virStreamPtr
      * docs/libvirt-api.xml, docs/libvirt-refs.xml: Regenerate
        with new APIs
      182eba1b
  10. 15 9月, 2009 2 次提交
    • D
      Add usage type/id as a public API property of virSecret · a2a30038
      Daniel P. Berrange 提交于
      * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in: Add
        virSecretGetUsageType, virSecretGetUsageID and virLookupSecretByUsage
      * python/generator.py: Mark virSecretGetUsageType, virSecretGetUsageID
        as not throwing exceptions
      * qemud/remote.c: Implement dispatch for virLookupSecretByUsage
      * qemud/remote_protocol.x: Add usage type & ID as attributes of
        remote_nonnull_secret. Add RPC calls for new public APIs
      * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
        qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
        qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
      * src/datatypes.c, src/datatypes.h: Add usageType and usageID as
        properties of virSecretPtr
      * src/driver.h: Add virLookupSecretByUsage driver entry point
      * src/libvirt.c: Implement virSecretGetUsageType, virSecretGetUsageID
        and virLookupSecretByUsage
      * src/libvirt_public.syms: Export virSecretGetUsageType, virSecretGetUsageID
        and virLookupSecretByUsage
      * src/remote_internal.c: Implement virLookupSecretByUsage entry
      * src/secret_conf.c, src/secret_conf.h: Remove the
        virSecretUsageType enum, now in public API. Make volume
        path mandatory when parsing XML
      * src/secret_driver.c: Enforce usage uniqueness when defining secrets.
        Implement virSecretLookupByUsage api method
      * src/virsh.c: Include usage for secret-list command
      a2a30038
    • D
      Fix UUID handling in secrets/storage encryption APIs · 47e7a258
      Daniel P. Berrange 提交于
      Convert all the secret/storage encryption APIs / wire format to
      handle UUIDs in raw format instead of non-canonical printable
      format. Guarentees data format correctness.
      
      * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret
        and validate fully
      * docs/schemas/secret.rng: Fully validate UUID
      * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add
        virSecretLookupByUUID and virSecretGetUUID. Make
        virSecretGetUUIDString follow normal API design pattern
      * python/generator.py: Skip generation of virSecretGetUUID,
        virSecretGetUUIDString and virSecretLookupByUUID
      * python/libvir.c, python/libvirt-python-api.xml: Manual impl
        of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID
      * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/
        Fix get_nonnull_secret/make_nonnull_secret to use unsigned char
      * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a
        remote_uuid instead of remote_nonnull_string for UUID field.
        Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to
        REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an
        remote_uuid  value
      * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
        qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
        qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
      * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead
        of printable. Change virGetSecret to use raw format UUID
      * src/driver.h: Rename virDrvSecretLookupByUUIDString to
        virDrvSecretLookupByUUID and use raw format UUID
      * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID
        and re-implement virSecretLookupByUUIDString and
        virSecretGetUUIDString in terms of those
      * src/libvirt_public.syms: Add virSecretLookupByUUID and
        virSecretGetUUID
      * src/remote_internal.c: Rename remoteSecretLookupByUUIDString
        to remoteSecretLookupByUUID. Fix typo in args for
        remoteSecretDefineXML impl. Use raw UUID format for
        get_nonnull_secret and make_nonnull_secret
      * src/storage_encryption_conf.c, src/storage_encryption_conf.h:
        Storage UUID in raw format, and require it to be present in
        XML. Use UUID parser to validate.
      * secret_conf.h, secret_conf.c: Generate a UUID if none is provided.
        Storage UUID in raw format.
      * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets
        in a filed with printable UUID, instead of base64 UUID.
      * src/virsh.c: Adjust for changed public API contract of
        virSecretGetUUIDString.
      * src/storage_Backend.c: DOn't undefine secret we just generated
        upon successful volume creation. Fix to handle raw UUIDs. Generate
        a non-clashing UUID
      * src/qemu_driver.c: Change to use lookupByUUID instead of
        lookupByUUIDString
      47e7a258
  11. 02 9月, 2009 2 次提交
    • M
      Secret manipulation remote client · f68c91fa
      Miloslav Trmač 提交于
      * src/remote_internal.c: Implement client binding for new secrets
        APIs
      * src/datatypes.h: Add 'void *secretPrivateData' to virConnectPtr
        struct
      f68c91fa
    • M
      Secret manipulation internal API · eb42e0ab
      Miloslav Trmač 提交于
      * include/libvirt/virterror.h, src/virterror.c: Add VIR_WAR_NO_SECRET
      * src/libvirt_private.syms, src/datatypes.h, src/datatypes.c: Type
        virSecret struct definition and helper APIs
      * src/driver.h: Sub-driver API definitions for secrets
      * src/libvirt.c: Define new sub-driver for secrets
      eb42e0ab
  12. 29 5月, 2009 1 次提交
  13. 20 5月, 2009 1 次提交
    • D
      Add the Interface config APIs · 73bc0114
      Daniel Veillard 提交于
      * configure.in include/libvirt/libvirt.h[.in]
        include/libvirt/virterror.h qemud/remote.c
        qemud/remote_dispatch_args.h qemud/remote_dispatch_prototypes.h
        qemud/remote_dispatch_ret.h qemud/remote_dispatch_table.h
        qemud/remote_protocol.[chx] src/Makefile.am src/datatypes.c
        src/datatypes.h src/driver.h src/libvirt.c src/remote_internal.c
        src/virterror.c src/libvirt_private.syms src/libvirt_public.syms:
        Add the Interface config APIs and remote stubs for those, patch
        by Laine Stump
      * AUTHORS: add Laine
      daniel
      73bc0114
  14. 20 1月, 2009 1 次提交
  15. 16 1月, 2009 1 次提交
  16. 05 12月, 2008 1 次提交
  17. 21 11月, 2008 1 次提交
  18. 17 11月, 2008 2 次提交
  19. 05 11月, 2008 1 次提交