1. 07 5月, 2010 5 次提交
    • E
      build: simplify checks for sched.h · 2de2d525
      Eric Blake 提交于
      * configure.ac: Remove redundant checks.
      2de2d525
    • E
      build: drop more redundant configure checks · 70e05fa6
      Eric Blake 提交于
      * configure.ac (AC_CHECK_FUNCS_ONCE, AC_SYS_LARGEFILE): Rely on
      gnulib for strtok_r and large file support.
      (AC_OBJEXT): Drop call now done by AC_PROG_CC.
      (m4_foreach_w): Drop macro guaranteed by gnulib.
      (AC_C_CONST): Drop call declared obsolete by autoconf.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      70e05fa6
    • E
      build: use gnulib's sys/wait.h · 8acaeb73
      Eric Blake 提交于
      * configure.ac: Drop sys/wait.h check.
      * src/libvirt.c (includes): Use header unconditionally.
      * src/remote/remote_driver.c (includes): Likewise.
      * src/storage/storage_backend.c (includes): Likewise.
      * src/util/ebtables.c (includes): Likewise.
      * src/util/hooks.c (includes): Likewise.
      * src/util/iptables.c (includes): Likewise.
      * src/util/util.c (includes): Likewise.
      8acaeb73
    • E
      build: use gnulib's uname · 5349cf1e
      Eric Blake 提交于
      * bootstrap.conf (gnulib_modules): Add uname.
      * configure.ac: Drop uname and sys/utsname.h checks.
      * src/nodeinfo.c (nodeGetInfo): Use uname unconditionally.
      5349cf1e
    • E
      build: rely on gnulib's pthread module · 9017b9bc
      Eric Blake 提交于
      Gnulib can guarantee that pthread.h exists, but for now, it is a dummy
      header with no support for most pthread_* functions.  Modify our
      use of pthread to use function checks, rather than header checks,
      to determine how much pthread support is present.
      
      * bootstrap.conf (gnulib_modules): Add pthread.
      * configure.ac: Drop all pthread.h checks.  Optimize function
      checks.  Add check for pthread functions.
      * src/Makefile.am (libvirt_lxc_LDADD): Ensure proper link.
      * src/remote/remote_driver.c (remoteIOEventLoop): Depend on
      pthread_sigmask, now that gnulib guarantees pthread.h.
      * src/util/util.c (virFork): Likewise.
      * src/util/threads.c (threads-pthread.c): Depend on
      pthread_mutexattr_init, as a witness of full pthread support.
      * src/util/threads.h (threads-pthread.h): Likewise.
      9017b9bc
  2. 05 5月, 2010 1 次提交
    • M
      configure.ac: Avoid uname, which breaks cross-compilation · 9537c3d0
      Matthias Bolte 提交于
      When cross-compiling on Linux, configure will misdetect the target as
      Linux because it uses uname instead of relying on the $host variable.
      This results in including libvirt_linux.syms into libvirt.syms and
      therefore trying to export undefined symbols.
      
      Replace uname checks with $host checks to fix this.
      9537c3d0
  3. 04 5月, 2010 1 次提交
    • M
      mingw: Fix symbol export · 38eb50ae
      Matthias Bolte 提交于
      In commit 98fb83ce I changed the
      version script handling. But it seems that I didn't test this properly
      and broke it. The .def file is passed to the compiler directly, but it
      should get passed to the linker instead.
      
      Set VERSION_SCRIPT_FLAGS to -Wl, to pass the .def file correctly to
      the linker.
      
      This fixes the undefined symbol errors while linking virsh.
      38eb50ae
  4. 01 5月, 2010 1 次提交
    • D
      Release of libvirt-0.8.1 · 5d65d32f
      Daniel Veillard 提交于
      * configure.ac docs/news.html.in libvirt.spec.in: updates for release
      * po/*.po*: updated localizations and regenerated
      5d65d32f
  5. 29 4月, 2010 1 次提交
    • M
      cygwin/mingw: Fix version script handling · 98fb83ce
      Matthias Bolte 提交于
      Let configure detect ld instead of hardcoding /usr/bin/ld, because
      MinGW may have ld in /bin.
      
      Only use a .def file to export symbols on MinGW. Cygwin's ld supports
      the normal .syms file used on Linux.
      98fb83ce
  6. 27 4月, 2010 2 次提交
  7. 24 4月, 2010 4 次提交
  8. 23 4月, 2010 1 次提交
  9. 15 4月, 2010 1 次提交
  10. 14 4月, 2010 1 次提交
    • S
      nwfilter: use virFindFileInPath for needed CLI tools · 274f09cb
      Stefan Berger 提交于
      I am getting rid of determining the path to necessary CLI tools at
      compile time. Instead, now the firewall driver has an initialization
      function that uses virFindFileInPath() to determine the path to
      necessary CLI tools and a shutdown function to free allocated memory.
      The rest of the patch mostly deals with availability of the CLI tools
      and to not call certain code blocks if a tool is not available and that
      strings now have to be built slightly differently.
      274f09cb
  11. 13 4月, 2010 1 次提交
    • D
      Release of libvirt-0.8.0 · bfcca587
      Daniel Veillard 提交于
      * configure.ac docs/news.html.in libvirt.spec.in src/libvirt_public.syms:
        updates for release of 0.8.0
      * po/*.po po/libvirt.pot: updated a lar set of localizations, and merge
        the messages
      bfcca587
  12. 09 4月, 2010 1 次提交
  13. 08 4月, 2010 3 次提交
    • D
      Fix Win32 portability problems · 3d3af088
      Daniel P. Berrange 提交于
      The network filter / snapshot / hooks code introduced some
      non-portable pices that broke the win32 build
      
      * configure.ac: Check for net/ethernet.h required by nwfile config
         parsing code
      * src/conf/nwfilter_conf.c: Define ethernet protocol  constants
        if net/ethernet.h is missing
      * src/util/hooks.c: Disable hooks build on Win32 since it lacks
        fork/exec/pipe
      * src/util/threads-win32.c: Fix unchecked return value
      * tools/virsh.c: Disable SIGPIPE on Win32 since it doesn't exist.
        Fix non-portable strftime() formats
      3d3af088
    • D
      Avoid searching for windres when not building for Windows · 9cea2af3
      Diego Elio Pettenò 提交于
      Just checking for a windres tool might hit even on Linux systems when
      building for Linux (e.g.: when using Gentoo and having built binutils
      with multitarget support), and will then fail to link properly at the
      end of the build.
      
      * configure.ac: Avoid searching for windres on non windows target
      9cea2af3
    • S
      nwfilter: Support for learning a VM's IP address · 3bf24abc
      Stefan Berger 提交于
      This patch implements support for learning a VM's IP address. It uses
      the pcap library to listen on the VM's backend network interface (tap)
      or the physical ethernet device (macvtap) and tries to capture packets
      with source or destination MAC address of the VM and learn from DHCP
      Offers, ARP traffic, or first-sent IPv4 packet what the IP address of
      the VM's interface is. This then allows to instantiate the network
      traffic filtering rules without the user having to provide the IP
      parameter somewhere in the filter description or in the interface
      description as a parameter. This only supports to detect the parameter
      IP, which is for the assumed single IPv4 address of a VM. There is not
      support for interfaces that may have multiple  IP addresses (IP
      aliasing) or IPv6 that may then require more than one valid IP address
      to be detected. A VM can have multiple independent interfaces that each
      uses a different IP address and in that case it will be attempted to
      detect each one of the address independently.
      
      So, when for example an interface description in the domain XML has
      looked like this up to now:
      
          <interface type='bridge'>
            <source bridge='mybridge'/>
            <model type='virtio'/>
            <filterref filter='clean-traffic'>
              <parameter name='IP' value='10.2.3.4'/>
            </filterref>
          </interface>
      
      you may omit the IP parameter:
      
          <interface type='bridge'>
            <source bridge='mybridge'/>
            <model type='virtio'/>
            <filterref filter='clean-traffic'/>
          </interface>
      
      Internally I am walking the 'tree' of a VM's referenced network filters
      and determine with the given variables which variables are missing. Now,
      the above IP parameter may be missing and this causes a libvirt-internal
      thread to be started that uses the pcap library's API to listen to the
      backend interface  (in case of macvtap to the physical interface) in an
      attempt to determine the missing IP parameter. If the backend interface
      disappears the thread terminates assuming the VM was brought down. In
      case of a macvtap device a timeout is being used to wait for packets
      from the given VM (filtering by VM's interface MAC address). If the VM's
      macvtap device disappeared the thread also terminates. In all other
      cases it tries to determine the IP address of the VM and will then apply
      the rules late on the given interface, which would have happened
      immediately if the IP parameter had been explicitly given. In case an
      error happens while the firewall rules are applied, the VM's backend
      interface is 'down'ed preventing it to communicate. Reasons for failure
      for applying the network firewall rules may that an ebtables/iptables
      command failes or OOM errors. Essentially the same failure reasons may
      occur as when the firewall rules are applied immediately on VM start,
      except that due to the late application of the filtering rules the VM
      now is already running and cannot be hindered anymore from starting.
      Bringing down the whole VM would probably be considered too drastic.
      While a VM's IP address is attempted to be determined only limited
      updates to network filters are allowed. In particular it is prevented
      that filters are modified in such a way that they would introduce new
      variables.
      
      A caveat: The algorithm does not know which one is the appropriate IP
      address of a VM. If the VM spoofs an IP address in its first ARP traffic
      or IPv4 packets its filtering rules will be instantiated for this IP
      address, thus 'locking' it to the found IP address. So, it's still
      'safer' to explicitly provide the IP address of a VM's interface in the
      filter description if it is known beforehand.
      
      * configure.ac: detect libpcap
      * libvirt.spec.in: require libpcap[-devel] if qemu is built
      * src/internal.h: add the new ATTRIBUTE_PACKED define
      * src/Makefile.am src/libvirt_private.syms: add the new modules and symbols
      * src/nwfilter/nwfilter_learnipaddr.[ch]: new module being added
      * src/nwfilter/nwfilter_driver.c src/conf/nwfilter_conf.[ch]
        src/nwfilter/nwfilter_ebiptables_driver.[ch]
        src/nwfilter/nwfilter_gentech_driver.[ch]: plu the new functionality in
      * tests/nwfilterxml2xmltest: extend testing
      3bf24abc
  14. 01 4月, 2010 1 次提交
    • E
      build: more fallout from test -a · a792bf24
      Eric Blake 提交于
      * cfg.mk (sc_prohibit_test_minus_ao): Also check for [.
      * docs/Makefile.am (%.html, html/index.html): Avoid non-portable
      test usage.
      * libvirt.spec.in (%post): Likewise.
      * tools/virt-pki-validate.in (servercert.pem): Likewise.
      * configure.ac (LOGNAME): Use test, not [, in files processed by
      autoconf.
      Detected by Matthias Bolte.
      a792bf24
  15. 30 3月, 2010 1 次提交
    • S
      Add ip6tables support for IPv6 filtering · bc210210
      Stefan Berger 提交于
      This patch adds IPv6 filtering support for the following protocols:
      - tcp-ipv6
      - udp-ipv6
      - udplite-ipv6
      - esp-ipv6
      - ah-ipv6
      - sctp-ipv6
      - all-ipv6
      - icmpv6
      
      Many of the IPv4 data structure could be re-used for IPv6 support.
      Since ip6tables also supports pretty much the same command line parameters
      as iptables does, also much of the code could be re-used and now
      command lines are invoked with the ip(6)tables tool parameter passed
      through the functions as a parameter.
      bc210210
  16. 27 3月, 2010 3 次提交
    • S
      Add some examples filters · e3a7137a
      Stefan Berger 提交于
      This patch adds some example filters to libvirt. They are automatically
      installed into the proper directory for libvirt to pick them up.
      e3a7137a
    • S
      Extensions for iptables rules · 1130085c
      Stefan Berger 提交于
      This patch adds support for L3/L4 filtering using iptables. This adds
      support for 'tcp', 'udp', 'icmp', 'igmp', 'sctp' etc. filtering.
      
      As mentioned in the introduction, a .c file provided by this patch
      is #include'd into a .c file. This will need work, but should be alright
      for review.
      Signed-off-by: NStefan Berger <stefanb@us.ibm.com>
      1130085c
    • 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
  17. 25 3月, 2010 1 次提交
  18. 24 3月, 2010 1 次提交
  19. 23 3月, 2010 2 次提交
  20. 15 3月, 2010 1 次提交
  21. 09 3月, 2010 1 次提交
  22. 06 3月, 2010 1 次提交
    • D
      Release of libvirt-0.7.7 · 703c1651
      Daniel Veillard 提交于
      * configure.ac libvirt.spec.in: update with new version
      * docs/news.html.in: add list of changes in 0.7.7
      * po/*po*: updated spanish and russian localisations, rebuilt
      703c1651
  23. 05 3月, 2010 2 次提交
  24. 26 2月, 2010 1 次提交
  25. 25 2月, 2010 2 次提交
    • J
      build: fix typos in makefile variable names · 5365ff40
      Jim Meyering 提交于
      * configure.ac: Fix typos:
      s/DRIVER_MODULES_CFLAGS/DRIVER_MODULE_CFLAGS/
      s/DRIVER_MODULES_LIBS/DRIVER_MODULE_LIBS/
      5365ff40
    • J
      build: ensure that MKINSTALLDIRS is AC_SUBST-defined · 89bdf84b
      Jim Meyering 提交于
      since we're using gettext-0.14.1, which uses that now-obsolete
      automake symbol.  Otherwise, make distcheck would fails like this:
      
          make[2]: Entering directory `/t/libvirt-0.7.6/_build/po'
          /bin/sh @MKINSTALLDIRS@ /t/libvirt-0.7.6/_inst/share
          /bin/sh: @MKINSTALLDIRS@: No such file or directory
          make[2]: *** [install-data-yes] Error 127
      
      * configure.ac (MKINSTALLDIRS): Define.
      For reference, we're currently hamstrung by our desire
      to support RHEL5, which still uses gettext-0.14:
      http://bugzilla.redhat.com/523713
      89bdf84b