1. 21 9月, 2012 1 次提交
  2. 18 9月, 2012 5 次提交
    • M
      virNetDevBandwidthClear: Improve error handling · 2f678bb1
      Martin Kletzander 提交于
      Two changes are introduced in this patch:
      
       - The first change removes ATTRIBUTE_RETURN_CHECK from
         virNetDevBandwidthClear, because it was called with ignore_value
         always, anyway. The function is used even when it's not necessary
         to call it, just for cleanup purposes.
      
       - The second change is added ignoring of the command's exit status,
         since it may report an error even when run just as "to be sure we
         clean up" function. No libvirt errors are suppresed by this.
      2f678bb1
    • L
      network: restart radvd/dnsmasq if needed when libvirtd is restarted · 4cf974b6
      Laine Stump 提交于
      A user on IRC had accidentally killed all of his libvirt-started
      dnsmasq instances (due to a buggy dnsmasq service script in Fedora
      16), and had hoped that libvirtd would notice this on restart and
      reload all the dnsmasq daemons (as it does with iptables
      rules). Unfortunately this was not the case - as long as the network
      object had a pid registered for dnsmasq and/or radvd, it assumed that
      the processes were running.
      
      This patch takes advantage of the new utility functions in
      bridge_driver.c to do a "refresh" of all radvd and dnsmasq processes
      started by libvirt each time libvirtd is restarted - this function
      attempts to do a SIGHUP of each existing process, and if that fails,
      it restarts the process, rebuilding all the associated config files
      and commandline parameters in the process. This normally has no
      effect, but will be useful in solving the occasional "odd situation"
      without needing to take the drastic step of destroying/re-starting the
      network.
      4cf974b6
    • L
      network: implement virNetworkUpdate for bridge_driver · cd331650
      Laine Stump 提交于
      Call the network_conf function that modifies the live/persistent/both
      config, then refresh/restart dnsmasq/radvd if necessary, and finally
      save the config in the proper place(s).
      
      This patch also needed to uncomment a few utility functions that were
      added inside #if 0 in the previous commit (to avoid compiler errors
      due to unreferenced static functions).
      cd331650
    • L
      network: reorganize dnsmasq and radvd config file / startup · 1ce4922e
      Laine Stump 提交于
      This patch splits the starting of dnsmasq and radvd into multiple
      files, and adds new networkRefreshXX() and networkRestartXX()
      functions for each. These new functions are currently commented out
      because they won't be used until the next commit, and the compile options
      require all static functions to be used.
      
      networkRefreshXX() - rewrites any file-based config for dnsmasq/radvd,
      and sends SIGHUP to the process to make it reread its config. If the
      program isn't already running, it's just started.
      
      networkRestartXX() - kills the given program, waits for it to exit
      (see the comments in the function networkKillDaemon()), then calls
      networkStartXX().
      
      This commit is here mostly as a checkpoint to verify no change in
      functional behavior after refactoring networkStartXX() functions to
      fit in with these new functions.
      1ce4922e
    • L
      network: utility functions for updating network config · f36309d6
      Laine Stump 提交于
      These new functions are highly inspired by those in domain_conf.c (but
      not identical), and are intended to make it simpler to update the
      various combinations of live/persistent network configs.
      
      The network driver wasn't previously as careful about the separation
      between the live "status" in network->def and the persistent "config"
      in network->newDef (or sometimes in network->def). This series
      attempts to remedy some of that, but probably doesn't go all the way
      (enough to get these functions working and enable continued work on
      virNetworkUpdate though).
      
      bridge_driver.c and test_driver.c were updated in a few places to take
      advantage of the new functions and/or account for changes in argument
      lists.
      f36309d6
  3. 11 9月, 2012 1 次提交
  4. 07 9月, 2012 1 次提交
  5. 24 8月, 2012 1 次提交
    • L
      network: fix virtual network bridge delay setting · ddf1ccb7
      Laine Stump 提交于
      libvirt's network config documents that a bridge's STP "forward delay"
      (called "delay" in the XML) should be specified in seconds, but
      virNetDevBridgeSetSTPDelay() assumes that it is given a delay in
      milliseconds (although the comment at the top of the function
      incorrectly says "seconds".
      
      This fixes the comment, and converts the delay to milliseconds before
      calling virNetDevBridgeSetSTPDelay().
      ddf1ccb7
  6. 23 8月, 2012 2 次提交
  7. 22 8月, 2012 1 次提交
    • T
      network: use firewalld instead of iptables, when available · bf156385
      Thomas Woerner 提交于
      * configure.ac, spec file: firewalld defaults to enabled if dbus is
        available, otherwise is disabled. If --with_firewalld is explicitly
        requested and dbus is not available, configure will fail.
      
      * bridge_driver: add dbus filters to get the FirewallD1.Reloaded
        signal and DBus.NameOwnerChanged on org.fedoraproject.FirewallD1.
        When these are encountered, reload all the iptables reuls of all
        libvirt's virtual networks (similar to what happens when libvirtd is
        restarted).
      
      * iptables, ebtables: use firewall-cmd's direct passthrough interface
        when available, otherwise use iptables and ebtables commands. This
        decision is made once the first time libvirt calls
        iptables/ebtables, and that decision is maintained for the life of
        libvirtd.
      
      * Note that the nwfilter part of this patch was separated out into
        another patch by Stefan in V2, so that needs to be revised and
        re-reviewed as well.
      
      ================
      
      All the configure.ac and specfile changes are unchanged from Thomas'
      V3.
      
      V3 re-ran "firewall-cmd --state" every time a new rule was added,
      which was extremely inefficient.  V4 uses VIR_ONCE_GLOBAL_INIT to set
      up a one-time initialization function.
      
      The VIR_ONCE_GLOBAL_INIT(x) macro references a static function called
      vir(Ip|Eb)OnceInit(), which will then be called the first time that
      the static function vir(Ip|Eb)TablesInitialize() is called (that
      function is defined for you by the macro). This is
      thread-safe, so there is no chance of any race.
      
      IMPORTANT NOTE: I've left the VIR_DEBUG messages in these two init
      functions (one for iptables, on for ebtables) as VIR_WARN so that I
      don't have to turn on all the other debug message just to see
      these. Even if this patch doesn't need any other modification, those
      messages need to be changed to VIR_DEBUG before pushing.
      
      This one-time initialization works well. However, I've encountered
      problems with testing:
      
      1) Whenever I have enabled the firewalld service, *all* attempts to
      call firewall-cmd from within libvirtd end with firewall-cmd hanging
      internally somewhere. This is *not* the case if firewall-cmd returns
      non-0 in response to "firewall-cmd --state" (i.e. *that* command runs
      and returns to libvirt successfully.)
      
      2) If I start libvirtd while firewalld is stopped, then start
      firewalld later, this triggers libvirtd to reload its iptables rules,
      however it also spits out a *ton* of complaints about deletion failing
      (I suppose because firewalld has nuked all of libvirt's rules). I
      guess we need to suppress those messages (which is a more annoying
      problem to fix than you might think, but that's another story).
      
      3) I noticed a few times during this long line of errors that
      firewalld made a complaint about "Resource Temporarily
      unavailable. Having libvirtd access iptables commands directly at the
      same time as firewalld is doing so is apparently problematic.
      
      4) In general, I'm concerned about the "set it once and never change
      it" method - if firewalld is disabled at libvirtd startup, causing
      libvirtd to always use iptables/ebtables directly, this won't cause
      *terrible* problems, but if libvirtd decides to use firewall-cmd and
      firewalld is later disabled, libvirtd will not be able to recover.
      bf156385
  8. 18 8月, 2012 4 次提交
  9. 17 8月, 2012 1 次提交
  10. 16 8月, 2012 1 次提交
    • L
      network: make network driver vlan-aware · 4eb4c6fa
      Laine Stump 提交于
      The network driver now looks for the vlan element in network and
      portgroup objects, and logs an error at network define time if a vlan
      is requested for a network type that doesn't support it. (Currently
      vlan configuration is only supported for openvswitch networks, and
      networks used to do hostdev assignment of SR-IOV VFs.)
      
      At runtime, the three potential sources of vlan information are
      examined in this order: interface, chosen portgroup, network, and the
      first that is non-empty is used.  Another check for valid network type
      is made at this time, since the interface may have requested a vlan (a
      legal thing to have in the interface config, since it's not known
      until runtime if the chosen network will actually support it).
      
      Since we must also check for domains requesting vlans for unsupported
      connection types even if they are type='network', and since
      networkAllocateActualDevice() is being called in exactly the correct
      places, and has all of the necessary information to check, I slightly
      modified the logic of that function so that interfaces that aren't
      type='network' don't just return immediately. Instead, they also
      perform all the same validation for supported features. Because of
      this, it's not necessary to make this identical check in the other
      three places that would normally require it: 1) qemu domain startup,
      2) qemu device hotplug, 3) lxc domain startup.
      
      This can be seen as a first step in consolidating network-related
      functionality into the network driver, rather than having copies of
      the same code spread around in multiple places; this will make it
      easier to split the network parts off into a separate daemon, as we've
      discussed recently.
      4eb4c6fa
  11. 15 8月, 2012 5 次提交
    • L
      network: add connections counter to networks · 300bcdb6
      Laine Stump 提交于
      Just as each physical device used by a network has a connections
      counter, now each network has a connections counter which is
      incremented once for each guest interface that connects using this
      network.
      
      The count is output in the live network XML, like this:
      
         <network connections='20'>
         ...
         </network>
      
      It is read-only, and for informational purposes only - it isn't used
      internally anywhere by libvirt.
      300bcdb6
    • L
      network: change cleanup: to success/cleanup/error: in network*() functions · 4fee4e05
      Laine Stump 提交于
      A later patch will be adding a counter that will be
      incremented/decremented each time an guest interface starts/stops
      using a particular network. For this to work, all types of networks
      need to go through a common return sequence rather than returning
      early. To setup for this, a new success: label is added (when
      necessary), a new error: label is added which does any cleanup
      necessary only for error returns and then does goto cleanup, and early
      returns are changed to goto error if it's a failure, or goto success
      if it's successful. This way the intent of all the gotos is
      unambiguous, and a successful return path never encounters the
      "error:" label.
      4fee4e05
    • L
      conf: rename interface "usageCount" to "connections" · 643feae7
      Laine Stump 提交于
      I want to include this count in the xml output of networks, but
      calling it "connections" in the XML sounds better than "usageCount", and it
      would be better if the name in the XML matched the variable name.
      
      In a few places, usageCount was being initialized to 0, but this is
      unnecessary, because VIR_ALLOC_N zero-fills everything anyway.
      643feae7
    • L
      network: merge relevant virtualports rather than choosing one · 6a3691b7
      Laine Stump 提交于
      One of the original ideas behind allowing a <virtualport> in an
      interface definition as well as in the <network> definition *and*one
      or more <portgroup>s within the network, was that guest-specific
      parameteres (like instanceid and interfaceid) could be given in the
      interface's virtualport, and more general things (portid, managerid,
      etc) could be given in the network and/or portgroup, with all the bits
      brought together at guest startup time and combined into a single
      virtualport to be used by the guest. This was somehow overlooked in
      the implementation, though - it simply picks the "most specific"
      virtualport, and uses the entire thing, with no attempt to merge in
      details from the others.
      
      This patch uses virNetDevVPortProfileMerge3() to combine the three
      possible virtualports into one, then uses
      virNetDevVPortProfileCheck*() to verify that the resulting virtualport
      type is appropriate for the type of network, and that all the required
      attributes for that type are present.
      
      An example of usage is this: assuming a <network> definitions on host
      ABC of:
      
        <network>
          <name>testA</name>
          ...
          <virtualport type='openvswitch'/>
          ...
          <portgroup name='engineering'>
            <virtualport>
              <parameters profileid='eng'/>
            </virtualport>
          </portgroup>
          <portgroup name='sales'>
            <virtualport>
              <parameters profileid='sales'/>
            </virtualport>
          </portgroup>
        </network>
      
      and the same <network> on host DEF of:
      
        <network>
          <name>testA</name>
          ...
          <virtualport type='802.1Qbg'>
            <parameters typeid="1193047" typeidversion="2"/>
          </virtualport>
          ...
          <portgroup name='engineering'>
            <virtualport>
              <parameters managerid="11"/>
            </virtualport>
          </portgroup>
          <portgroup name='sales'>
            <virtualport>
              <parameters managerid="55"/>
            </virtualport>
          </portgroup>
        </network>
      
      and a guest <interface> definition of:
      
        <interface type='network'>
          <source network='testA' portgroup='sales'/>
          <virtualport>
            <parameters instanceid="09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f"
                        interfaceid="09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f"\>
          </virtualport>
          ...
        </interface>
      
      If the guest was started on host ABC, the <virtualport> used would be:
      
        <virtualport type='openvswitch'>
          <parameters interfaceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'
                      profileid='sales'/>
        </virtualport>
      
      but if that guest was started on host DEF, the <virtualport> would be:
      
          <virtualport type='802.1Qbg'>
            <parameters instanceid="09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f"
                        typeid="1193047" typeidversion="2"
                        managerid="55"/>
          </virtualport>
      
      Additionally, if none of the involved <virtualport>s had a specified type
      (this includes cases where no virtualport is given at all),
      6a3691b7
    • L
      conf: move virtPortProfile out of unions in virDomainNetDef · 1d174428
      Laine Stump 提交于
      virtPortProfile is now used by 4 different types of network devices
      (NETWORK, BRIDGE, DIRECT, and HOSTDEV), and it's getting cumbersome to
      replicate so much code in 4 different places just because each type
      has the virtPortProfile in a slightly different place. This patch puts
      a single virtPortProfile in a common place (outside the type-specific
      union) in both virDomainNetDef and virDomainActualNetDef, and adjusts
      the parse and format code (and the few other places where it is used)
      accordingly.
      
      Note that when a <virtualport> element is found, the parse functions
      verify that the interface is of a type that supports one, otherwise an
      error is generated (CONFIG_UNSUPPORTED in the case of <interface>, and
      INTERNAL in the case of <actual>, since the contents of <actual> are
      always generated by libvirt itself).
      1d174428
  12. 23 7月, 2012 1 次提交
    • O
      Desert the FSF address in copyright · f9ce7dad
      Osier Yang 提交于
      Per the FSF address could be changed from time to time, and GNU
      recommends the following now: (http://www.gnu.org/licenses/gpl-howto.html)
      
        You should have received a copy of the GNU General Public License
        along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
      
      This patch removes the explicit FSF address, and uses above instead
      (of course, with inserting 'Lesser' before 'General').
      
      Except a bunch of files for security driver, all others are changed
      automatically, the copyright for securify files are not complete,
      that's why to do it manually:
      
        src/security/security_selinux.h
        src/security/security_driver.h
        src/security/security_selinux.c
        src/security/security_apparmor.h
        src/security/security_apparmor.c
        src/security/security_driver.c
      f9ce7dad
  13. 19 7月, 2012 2 次提交
  14. 17 7月, 2012 1 次提交
    • S
      Convert 'raw MAC address' usages to use virMacAddr · 387117ad
      Stefan Berger 提交于
      Introduce new members in the virMacAddr 'class'
      - virMacAddrSet: set virMacAddr from a virMacAddr
      - virMacAddrSetRaw: setting virMacAddr from raw 6 byte MAC address buffer
      - virMacAddrGetRaw: writing virMacAddr into raw 6 byte MAC address buffer
      - virMacAddrCmp: comparing two virMacAddr
      - virMacAddrCmpRaw: comparing a virMacAddr with a raw 6 byte MAC address buffer
      
      then replace raw MAC addresses by replacing
      
      - 'unsigned char *' with virMacAddrPtr
      - 'unsigned char ... [VIR_MAC_BUFLEN]' with virMacAddr
      
      and introduce usage of above functions where necessary.
      387117ad
  15. 28 6月, 2012 1 次提交
  16. 14 6月, 2012 1 次提交
    • L
      network: fully support/use VIR_NETWORK_XML_INACTIVE flag · 1f145b2f
      Laine Stump 提交于
      commit 52d064f4 added
      VIR_NETWORK_XML_INACTIVE in order to allow suppressing the
      auto-generated list of VFs in network definitions, and a --inactive
      flag to virsh net-dumpxml to take advantage of the flag. However, it
      missed out on two opportunities:
      
      1) Use INACTIVE to get the current config of the network as it
         exists on disk, rather than the currently active config.
      
      2) Add INACTIVE to the flags used for the virsh net-edit command, so
         that it won't include the forward-pool interfaces that were
         autogenerated, and so that a re-edit of the network prior to
         restarting it will show any other edits made since the last restart
         of the network. (prior to this patch, if you edited a network a 2nd
         time without restarting, all of the previous edits would magically
         disappear).
      
      In order to fit with the new #define-based generic edit function in
      virsh.c, a new function vshNetworkGetXMLDesc() was added. This
      function first tries to call virNetworkGetXMLDesc with the INACTIVE
      flag added, then retries without if the first attempt fails (in the
      manner expected when the server doesn't support it).
      1f145b2f
  17. 28 5月, 2012 1 次提交
  18. 14 5月, 2012 1 次提交
    • W
      Use XDG Base Directories instead of storing in home directory · 32a9aac2
      William Jon McCann 提交于
      As defined in:
      http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
      
      This offers a number of advantages:
       * Allows sharing a home directory between different machines, or
      sessions (eg. using NFS)
       * Cleanly separates cache, runtime (eg. sockets), or app data from
      user settings
       * Supports performing smart or selective migration of settings
      between different OS versions
       * Supports reseting settings without breaking things
       * Makes it possible to clear cache data to make room when the disk
      is filling up
       * Allows us to write a robust and efficient backup solution
       * Allows an admin flexibility to change where data and settings are stored
       * Dramatically reduces the complexity and incoherence of the
      system for administrators
      32a9aac2
  19. 09 3月, 2012 1 次提交
    • A
      Attach vm-id to Open vSwitch interfaces. · ac8bbdbd
      Ansis Atteka 提交于
      This patch will allow OpenFlow controllers to identify which interface
      belongs to a particular VM by using the Domain UUID.
      
      ovs-vsctl get Interface vnet0 external_ids
      {attached-mac="52:54:00:8C:55:2C", iface-id="83ce45d6-3639-096e-ab3c-21f66a05f7fa", iface-status=active, vm-id="142a90a7-0acc-ab92-511c-586f12da8851"}
      
      V2 changes:
      Replaced vm-uuid with vm-id. There was a discussion in Open vSwitch
      mailinglist that we should stick with the same DB key postfixes for the
      sake of consistency (e.g iface-id, vm-id ...).
      ac8bbdbd
  20. 03 3月, 2012 2 次提交
    • L
      util: combine bools in virNetDevTapCreateInBridgePort into flags · d1c31023
      Laine Stump 提交于
      With an additional new bool added to determine whether or not to
      discourage the use of the supplied MAC address by the bridge itself,
      virNetDevTapCreateInBridgePort had three booleans (well, 2 bools and
      an int used as a bool) in the arg list, which made it increasingly
      difficult to follow what was going on. This patch combines those three
      into a single flags arg, which not only shortens the arg list, but
      makes it more self-documenting.
      d1c31023
    • A
      util: centralize tap device MAC address 1st byte "0xFE" modification · c1b164d7
      Ansis Atteka 提交于
      When a tap device for a domain is created and attached to a bridge,
      the first byte of the tap device MAC address is set to 0xFE, while the
      rest is set to match the MAC address that will be presented to the
      guest as its network device MAC address. Setting this high value in
      the tap's MAC address discourages the bridge from using the tap
      device's MAC address as the bridge's own MAC address (Linux bridges
      always take on the lowest numbered MAC address of all attached devices
      as their own).
      
      In one case within libvirt, a tap device is created and attached to
      the bridge with the intent that its MAC address be taken on by the
      bridge as its own (this is used to assure that the bridge has a fixed
      MAC address to prevent network outages created by the bridge MAC
      address "flapping" as guests are started and stopped). In this case,
      the first byte of the mac address is *not* altered to 0xFE.
      
      In the current code, callers to virNetDevTapCreateInBridgePort each
      make the MAC address modification themselves before calling, which
      leads to code duplication, and also prevents lower level functions
      from knowing the real MAC address being used by the guest. The problem
      here is that openvswitch bridges must be informed about this MAC
      address, or they will be unable to pass traffic to/from the guest.
      
      This patch centralizes the location of the MAC address "0xFE fixup"
      into virNetDevTapCreateInBridgePort(), meaning 1) callers of this
      function no longer need the extra strange bit of code, and 2)
      bitNetDevTapCreateBridgeInPort itself now is called with the guest's
      unaltered MAC address, and can pass it on, unmodified, to
      virNetDevOpenvswitchAddPort.
      
      There is no other behavioral change created by this patch.
      c1b164d7
  21. 16 2月, 2012 1 次提交
    • A
      network: support Open vSwitch · df810046
      Ansis Atteka 提交于
      This patch allows libvirt to add interfaces to already
      existing Open vSwitch bridges. The following syntax in
      domain XML file can be used:
      
          <interface type='bridge'>
            <mac address='52:54:00:d0:3f:f2'/>
            <source bridge='ovsbr'/>
            <virtualport type='openvswitch'>
              <parameters interfaceid='921a80cd-e6de-5a2e-db9c-ab27f15a6e1d'/>
            </virtualport>
            <address type='pci' domain='0x0000' bus='0x00'
                                slot='0x03' function='0x0'/>
          </interface>
      
      or if libvirt should auto-generate the interfaceid use
      following syntax:
      
          <interface type='bridge'>
            <mac address='52:54:00:d0:3f:f2'/>
            <source bridge='ovsbr'/>
            <virtualport type='openvswitch'>
            </virtualport>
            <address type='pci' domain='0x0000' bus='0x00'
                                slot='0x03' function='0x0'/>
          </interface>
      
      It is also possible to pass an optional profileid. To do that
      use following syntax:
      
         <interface type='bridge'>
           <source bridge='ovsbr'/>
           <mac address='00:55:1a:65:a2:8d'/>
           <virtualport type='openvswitch'>
             <parameters interfaceid='921a80cd-e6de-5a2e-db9c-ab27f15a6e1d'
                         profileid='test-profile'/>
           </virtualport>
         </interface>
      
      To create Open vSwitch bridge install Open vSwitch and
      run the following command:
      
          ovs-vsctl add-br ovsbr
      df810046
  22. 02 2月, 2012 2 次提交
    • E
      network: fix testsuite regression · 0aaf88e8
      Eric Blake 提交于
      I slightly botched commit be9fb5af - I converted '--arg=value' to
      '--arg value', which has no semantic change, but did trip up the
      testsuite.
      
      * src/network/bridge_driver.c (networkBuildDnsmasqArgv): Restore
      expected output.
      0aaf88e8
    • A
      network: Avoid memory leaks on networkBuildDnsmasqArgv · be9fb5af
      Alex Jia 提交于
      Detected by valgrind. Leaks introduced in commit 973af236.
      
      * src/network/bridge_driver.c: fix memory leaks on failure and successful path.
      
      * How to reproduce?
      % make -C tests check TESTS=networkxml2argvtest
      % cd tests && valgrind -v --leak-check=full ./networkxml2argvtest
      
      * Actual result:
      
      ==2226== 3 bytes in 1 blocks are definitely lost in loss record 1 of 24
      ==2226==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
      ==2226==    by 0x39CF0FEDE7: __vasprintf_chk (in /lib64/libc-2.12.so)
      ==2226==    by 0x41DFF7: virVasprintf (stdio2.h:199)
      ==2226==    by 0x41E0B7: virAsprintf (util.c:1695)
      ==2226==    by 0x41A2D9: networkBuildDhcpDaemonCommandLine (bridge_driver.c:545)
      ==2226==    by 0x4145C8: testCompareXMLToArgvHelper (networkxml2argvtest.c:47)
      ==2226==    by 0x4156A1: virtTestRun (testutils.c:141)
      ==2226==    by 0x414332: mymain (networkxml2argvtest.c:123)
      ==2226==    by 0x414D97: virtTestMain (testutils.c:696)
      ==2226==    by 0x39CF01ECDC: (below main) (in /lib64/libc-2.12.so)
      ==2226==
      ==2226== 3 bytes in 1 blocks are definitely lost in loss record 2 of 24
      ==2226==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
      ==2226==    by 0x39CF0FEDE7: __vasprintf_chk (in /lib64/libc-2.12.so)
      ==2226==    by 0x41DFF7: virVasprintf (stdio2.h:199)
      ==2226==    by 0x41E0B7: virAsprintf (util.c:1695)
      ==2226==    by 0x41A307: networkBuildDhcpDaemonCommandLine (bridge_driver.c:551)
      ==2226==    by 0x4145C8: testCompareXMLToArgvHelper (networkxml2argvtest.c:47)
      ==2226==    by 0x4156A1: virtTestRun (testutils.c:141)
      ==2226==    by 0x414332: mymain (networkxml2argvtest.c:123)
      ==2226==    by 0x414D97: virtTestMain (testutils.c:696)
      ==2226==    by 0x39CF01ECDC: (below main) (in /lib64/libc-2.12.so)
      ==2226==
      ==2226== 5 bytes in 1 blocks are definitely lost in loss record 4 of 24
      ==2226==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
      ==2226==    by 0x39CF0FEDE7: __vasprintf_chk (in /lib64/libc-2.12.so)
      ==2226==    by 0x41DFF7: virVasprintf (stdio2.h:199)
      ==2226==    by 0x41E0B7: virAsprintf (util.c:1695)
      ==2226==    by 0x41A2AB: networkBuildDhcpDaemonCommandLine (bridge_driver.c:539)
      ==2226==    by 0x4145C8: testCompareXMLToArgvHelper (networkxml2argvtest.c:47)
      ==2226==    by 0x4156A1: virtTestRun (testutils.c:141)
      ==2226==    by 0x414332: mymain (networkxml2argvtest.c:123)
      ==2226==    by 0x414D97: virtTestMain (testutils.c:696)
      ==2226==    by 0x39CF01ECDC: (below main) (in /lib64/libc-2.12.so)
      ==2226==
      ==2226== LEAK SUMMARY:
      ==2226==    definitely lost: 11 bytes in 3 blocks
      Signed-off-by: NAlex Jia <ajia@redhat.com>
      Signed-off-by: NEric Blake <eblake@redhat.com>
      be9fb5af
  23. 12 1月, 2012 2 次提交
  24. 02 1月, 2012 1 次提交
    • M
      Implement DNS SRV record into the bridge driver · 973af236
      Michal Novotny 提交于
      Hi,
      this is the fifth version of my SRV record for DNSMasq patch rebased
      for the current codebase to the bridge driver and libvirt XML file to
      include support for the SRV records in the DNS. The syntax is based on
      DNSMasq man page and tests for both xml2xml and xml2argv were added as
      well. There are some things written a better way in comparison with
      version 4, mainly there's no hack in tests/networkxml2argvtest.c and
      also the xPath context is changed to use a simpler query using the
      virXPathInt() function relative to the current node.
      
      Also, the patch is also fixing the networkxml2argv test to pass both
      checks, i.e. both unit tests and also syntax check.
      
      Please review,
      Michal
      Signed-off-by: NMichal Novotny <minovotn@redhat.com>
      973af236