1. 28 4月, 2010 4 次提交
  2. 27 4月, 2010 8 次提交
    • C
      Fix up the locking in the snapshot code. · b69bbebb
      Chris Lalancette 提交于
      In particular I was forgetting to take the qemuMonitorPrivatePtr
      lock (via qemuDomainObjBeginJob), which would cause problems
      if two users tried to access the same domain at the same time.
      This patch also fixes a problem where I was forgetting to remove
      a transient domain from the list of domains.
      
      Thanks to Stephen Shaw for pointing out the problem and testing
      out the initial patch.
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      b69bbebb
    • S
      nwfilter: add support for RAPR protocol · aea68ce9
      Stefan Berger 提交于
      This patch adds support for the RARP protocol. This may be needed due to
      qemu sending out a RARP packet (at least that's what it seems to want to
      do even though the protocol id is wrong) when migration finishes and
      we'd need a rule to let the packets pass.
      
      Unfortunately my installation of ebtables does not understand -p RARP
      and also seems to otherwise depend on strings in /etc/ethertype
      translated to protocol identifiers. Therefore I need to pass -p 0x8035
      for RARP. To generally get rid of the dependency of that file I switch
      all so far supported protocols to use their protocol identifier in the
      -p parameter rather than the string.
      
      I am also extending the schema and added a test case.
      
      changes from v1 to v2:
      - added test case into patch
      aea68ce9
    • J
      Ignore qemu STOP event when stopping CPUs · 35b61376
      Jiri Denemark 提交于
      With JSON qemu monitor, we get a STOP event from qemu whenever qemu
      stops guests CPUs. The downside of it is that vm->state is changed to
      PAUSED and a new generic paused event is send to applications. However,
      when we ask qemu to stop the CPUs we are not really interested in qemu
      event and we usually want to issue a more specific event.
      
      By setting vm->status to PAUSED before actually sending the request to
      qemu (and resetting it back if the request fails) we can ignore the
      event since the event handler does nothing when the guest is already
      paused. This solution is quite hacky but unfortunately it's the best
      solution which I was able to come up with and it doesn't introduce a
      race condition.
      35b61376
    • J
      Fix build with DEBUG_RAW_IO=1 · 29bca037
      Jiri Denemark 提交于
      29bca037
    • D
      Fix indentation for storage conf XML · 1b9347b5
      David Allan 提交于
      * virStorageEncryptionFormat is called from both
        virDomainDiskDefFormat and virStorageVolTargetDefFormat.  The proper
        indentation in the generated XML depends on the caller.  My earlier
        patch to fix the incorrect indentation for the domain XML broke the
        indentation for the storage XML.  This patch adopts Laine's
        suggestion of requring the caller of virStorageEncryptionFormat to
        provide an unsigned int with the number of spaces the output should
        be indented.  The patch modifies both callers to provide the
        additional argument.
      
      * Add a regression test for the domain XML
      
      * src/conf/domain_conf.c src/conf/storage_conf.c
        src/conf/storage_encryption_conf.c src/conf/storage_encryption_conf.h:
        change the indentation code
      * tests/qemuxml2xmltest.c
        tests/qemuxml2argvdata/qemuxml2argv-encrypted-disk.args
        tests/qemuxml2argvdata/qemuxml2argv-encrypted-disk.xml: add a regression test
      1b9347b5
    • M
      cygwin: Handle differences in the XDR implementation · d707c866
      Matthias Bolte 提交于
      Cygwin's XDR implementation defines xdr_u_int64_t instead of
      xdr_uint64_t and lacks IXDR_PUT_INT32/IXDR_GET_INT32.
      
      Alter the IXDR_GET_LONG regex in rpcgen_fix.pl so it doesn't destroy
      the #define IXDR_GET_INT32 IXDR_GET_LONG in remote_protocol.x.
      
      Also fix the remote_protocol.h regex in rpcgen_fix.pl.
      d707c866
    • M
      fe4ff24a
    • S
      nwfilter: enable hex number inputs in filter XML · 5c7c755f
      Stefan Berger 提交于
      With this patch I want to enable hex number inputs in the filter XML. A
      number that was entered as hex is also printed as hex unless a string
      representing the meaning can be found.
      
      I am also extending the schema and adding a test case. A problem with
      the DSCP value is fixed on the way as well.
      
      Changes from V1 to V2:
      
      - using asHex boolean in all printf type of functions to select the
      output format in hex or decimal format
      5c7c755f
  3. 26 4月, 2010 4 次提交
    • S
      Starts dnsmasq from libvirtd with --dhcp-hostsfile option · 8fa9c221
      Satoru SATOH 提交于
      This patch makes libvirtd start the dnsmasq daemon with a
      --dhcp-hostsfile option instead of --dhcp-host options for each
      '//ip/dhcp/host' entries defined in network xml file.
      
      the dnsmasq host file is stored into /var/lib/libvirt/network
      
      * src/network/bridge_driver.c: define the directory for the hostfiles
        and save/delete them to be used by dnsmasq
      8fa9c221
    • S
      Add build support for dnsmasq module · 51d203c6
      Satoru SATOH 提交于
      * po/POTFILES.in: the new module contains translatable strings
      * src/Makefile.am: include the files in the utils set
      * src/libvirt_private.syms: exports the symbols internally
      51d203c6
    • S
      Add dnsmasq module files · 4ad65ab8
      Satoru SATOH 提交于
      It implements an idea to save dhcp hosts' macaddr vs. ipaddr mappings to
      static file and make dnsmasq loading it with "--dhcp-hostsfile" option,
      originally suggested by Dan, and can address the problem that too
      many "--dhcp-host" args hitting ARG_MAX limit
      
      * src/util/dnsmasq.h src/util/dnsmasq.c: adds the 2 new files
      4ad65ab8
    • D
      Fix make dist missing ESX generated files · 4ce54ef5
      Daniel Veillard 提交于
      new method generated files are missing from dist tarball.
      4ce54ef5
  4. 24 4月, 2010 7 次提交
  5. 23 4月, 2010 9 次提交
    • D
      Fix crash in nwfilter driver check · 98bd5e6c
      Daniel P. Berrange 提交于
      The nwfilterDriverActive() could de-reference a NULL pointer
      if it hadn't be started at the point it was called. It was
      also not thread safe, since it lacked locking around data
      accesses.
      
      * src/nwfilter/nwfilter_driver.c: Fix locking & NULL checks
        in nwfilterDriverActive()
      98bd5e6c
    • E
      addrToString: give better error message · 3022375d
      Eric Blake 提交于
      The user probably doesn't care what the gai error numbers are, as
      much as what the failed conversion IP address was.
      
      * src/remote/remote_driver.c (addrToString): Mention which address
      could not be converted.
      * daemon/remote.c (addrToString): Likewise.
      3022375d
    • S
      qemu: fix security context references in DAC code · c85c9b3a
      Spencer Shimko 提交于
      * The error messages coming from qemu's DAC support contain strings
        from the original SELinux security driver code.  This just removes
        references to "security context" and other SELinux-isms from the DAC
        code.
      Signed-off-by: NSpencer Shimko <sshimko@tresys.com>
      Signed-off-by: NEric Blake <eblake@redhat.com>
      c85c9b3a
    • S
      Changes from V1 to V2: · 647c26c8
      Stefan Berger 提交于
       - using INT_BUFSIZE_BOUND() to determine the length of the buffersize
      for printing and integer into
      
       - not explicitly initializing static var threadsTerminate to false
      anymore, since that's done automatically
      
      Changes after V2:
        - removed while looks in case of OOM error
        - removed on ifaceDown() call
        - preceding one ifaceDown() call with an ifaceCheck() call
      
      Since the name of an interface can be the same between stops and starts
      of different VMs I have to switch the IP address learning thread to use
      the index of the interface to determine whether an interface is still
      available or not - in the case of macvtap the thread needs to listen for
      traffic on the physical interface, thus having to time out periodically
      to check whether the VM's macvtap device is still there as an indication
      that the VM is still alive. Previously the following sequence of 2 VMs
      with macvtap device
      
      virsh start testvm1; virsh destroy testvm1 ; virsh start testvm2
      
      would not terminate the thread upon testvm1's destroy since the name of
      the interface on the host could be the same (i.e, macvtap0) on testvm1
      and testvm2, thus it was easily race-able. The thread would then
      determine the IP address parameter for testvm2 but apply the rule set
      for testvm1. :-(
      I am also introducing a lock for the interface (by name) that the thread
      must hold while it listens for the traffic and releases when it
      terminates upon VM termination or 0.5 second thereafter. Thus, the new
      thread for a newly started VM with the same interface name will not
      start while the old one still holds the lock. The only other code that I
      see that also needs to grab the lock to serialize operation is the one
      that tears down the firewall that were established on behalf of an
      interface.
      
      I am moving the code applying the 'basic' firewall rules during the IP
      address learning phase inside the thread but won't start the thread
      unless it is ensured that the firewall driver has the ability to apply
      the 'basic' firewall rules.
      647c26c8
    • D
      Properly indent encryption tags · 68529bc5
      David Allan 提交于
      * Fix for the bug reported at:
      
      https://bugzilla.redhat.com/show_bug.cgi?id=573908
      68529bc5
    • J
      Fix locking in qemudDomainCoreDump · 96ac1859
      Jiri Denemark 提交于
      The hang fix in d376b7d6 was incomplete
      since it left quite a few {Enter,Exit}Monitor calls which require driver
      to be unlocked. Since the driver is locked throughout the whole
      function, {Enter,Exit}MonitorWithDriver need to be used instead to
      ensure driver is not locked when issuing monitor commands.
      96ac1859
    • J
      Poll for migration end every 50ms instead of 50us · e2c05948
      Jiri Denemark 提交于
      The comment in qemuDomainWaitForMigrationComplete says we are polling
      every 50ms but the code sleeps only for 50us. This was already discussed
      during review but apparently forgotten when the series was pushed.
      e2c05948
    • D
      Fix QEMU text monitor command error checking · 9772beba
      Daniel P. Berrange 提交于
      The text monitor code was checking for a '\n' prefix on several
      places. Previously this would work, but since the monitor code
      re-write the '\n' is already stripped off, so mustn't be checked
      for.
      
      * src/qemu/qemu_monitor_text.c: Fix monitor error checking
      9772beba
    • D
      Fix CPU hotplug command names · a980d123
      Daniel P. Berrange 提交于
      Probably as a result of a merge error, the CPU hotplug command
      names were completely wrong.
      
      * src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_text.c: Fix
        the CPU hotplug command names
      a980d123
  6. 22 4月, 2010 7 次提交
  7. 21 4月, 2010 1 次提交
    • C
      esx: Don't treat an empty root snapshot list as error · b1fab0c2
      Chris Wong 提交于
      An empty root snapshot list was considered as error condition. Creating a
      new snapshot would fail if the domain didn't have snapshots yet, because
      the snapshot-create function tries to lookup the list of existing snapshots
      in order to verify that the snapshot name is unique. This fails if the
      domain doesn't have snapshots yet.
      
      Removing the NULL check from esxVI_LookupRootSnapshotTreeList fixes this.
      b1fab0c2