Browse Source

New upstream version 3.10.0

tags/upstream/3.10.0^0
Guido Günther 3 years ago
parent
commit
04da2cae2c
100 changed files with 4070 additions and 933 deletions
  1. +1
    -0
      AUTHORS
  2. +2521
    -0
      ChangeLog
  3. +5
    -5
      Makefile.am
  4. +5
    -5
      Makefile.in
  5. +1
    -1
      Makefile.nonreentrant
  6. +103
    -0
      NEWS
  7. +418
    -412
      cfg.mk
  8. +1
    -1
      config-post.h
  9. +10
    -10
      configure
  10. +1
    -1
      configure.ac
  11. +86
    -86
      daemon/Makefile.am
  12. +75
    -75
      daemon/Makefile.in
  13. +35
    -23
      daemon/libvirtd.c
  14. +67
    -59
      daemon/remote.c
  15. +1
    -1
      docs/404.html
  16. +28
    -28
      docs/Makefile.am
  17. +22
    -22
      docs/Makefile.in
  18. +1
    -1
      docs/acl.html
  19. +1
    -1
      docs/aclpolkit.html
  20. +1
    -1
      docs/api.html
  21. +1
    -1
      docs/api_extension.html
  22. +1
    -1
      docs/apps.html
  23. +1
    -1
      docs/architecture.html
  24. +1
    -1
      docs/auditlog.html
  25. +1
    -1
      docs/auth.html
  26. +1
    -1
      docs/bindings.html
  27. +1
    -1
      docs/bugs.html
  28. +1
    -1
      docs/cgroups.html
  29. +1
    -1
      docs/compiling.html
  30. +1
    -1
      docs/contact.html
  31. +1
    -1
      docs/contribute.html
  32. +1
    -1
      docs/csharp.html
  33. +1
    -1
      docs/devguide.html
  34. +5
    -1
      docs/docs.html
  35. +3
    -0
      docs/docs.html.in
  36. +1
    -1
      docs/downloads.html
  37. +1
    -1
      docs/drivers.html
  38. +1
    -1
      docs/drvbhyve.html
  39. +1
    -1
      docs/drvesx.html
  40. +1
    -1
      docs/drvhyperv.html
  41. +2
    -2
      docs/drvlxc.html
  42. +1
    -1
      docs/drvlxc.html.in
  43. +1
    -1
      docs/drvnodedev.html
  44. +1
    -1
      docs/drvopenvz.html
  45. +1
    -1
      docs/drvphyp.html
  46. +3
    -3
      docs/drvqemu.html
  47. +2
    -2
      docs/drvqemu.html.in
  48. +1
    -1
      docs/drvremote.html
  49. +1
    -1
      docs/drvtest.html
  50. +1
    -1
      docs/drvuml.html
  51. +29
    -2
      docs/drvvbox.html
  52. +28
    -1
      docs/drvvbox.html.in
  53. +1
    -1
      docs/drvvirtuozzo.html
  54. +1
    -1
      docs/drvvmware.html
  55. +1
    -1
      docs/drvxen.html
  56. +1
    -1
      docs/errors.html
  57. +1
    -1
      docs/firewall.html
  58. +1
    -1
      docs/format.html
  59. +1
    -1
      docs/formatcaps.html
  60. +265
    -60
      docs/formatdomain.html
  61. +272
    -57
      docs/formatdomain.html.in
  62. +1
    -1
      docs/formatdomaincaps.html
  63. +1
    -1
      docs/formatnetwork.html
  64. +1
    -1
      docs/formatnode.html
  65. +1
    -1
      docs/formatnwfilter.html
  66. +1
    -1
      docs/formatsecret.html
  67. +1
    -1
      docs/formatsnapshot.html
  68. +1
    -1
      docs/formatstorage.html
  69. +1
    -1
      docs/formatstorageencryption.html
  70. +1
    -1
      docs/goals.html
  71. +1
    -1
      docs/governance.html
  72. +1
    -1
      docs/hacking.html
  73. +2
    -2
      docs/hooks.html
  74. +1
    -1
      docs/hooks.html.in
  75. +1
    -1
      docs/html/index.html
  76. +1
    -1
      docs/html/libvirt-libvirt-common.html
  77. +1
    -1
      docs/html/libvirt-libvirt-domain-snapshot.html
  78. +1
    -1
      docs/html/libvirt-libvirt-domain.html
  79. +1
    -1
      docs/html/libvirt-libvirt-event.html
  80. +1
    -1
      docs/html/libvirt-libvirt-host.html
  81. +1
    -1
      docs/html/libvirt-libvirt-interface.html
  82. +1
    -1
      docs/html/libvirt-libvirt-network.html
  83. +1
    -1
      docs/html/libvirt-libvirt-nodedev.html
  84. +1
    -1
      docs/html/libvirt-libvirt-nwfilter.html
  85. +1
    -1
      docs/html/libvirt-libvirt-secret.html
  86. +2
    -2
      docs/html/libvirt-libvirt-storage.html
  87. +1
    -1
      docs/html/libvirt-libvirt-stream.html
  88. +1
    -1
      docs/html/libvirt-virterror.html
  89. +1
    -1
      docs/hvsupport.html
  90. +1
    -1
      docs/index.html
  91. +1
    -1
      docs/internals.html
  92. +1
    -1
      docs/internals/command.html
  93. +1
    -1
      docs/internals/eventloop.html
  94. +1
    -1
      docs/internals/locking.html
  95. +1
    -1
      docs/internals/oomtesting.html
  96. +1
    -1
      docs/internals/rpc.html
  97. +1
    -1
      docs/java.html
  98. +2
    -1
      docs/libvirt-api.xml
  99. +5
    -1
      docs/libvirt-refs.xml
  100. +1
    -1
      docs/locking-lockd.html

+ 1
- 0
AUTHORS View File

@@ -639,6 +639,7 @@ ning.bo <ning.bo9@zte.com.cn>
ryan woodsmall <rwoodsmall@gmail.com>
sannyshao <jishao@redhat.com>
weiwei li <weiweili821@gmail.com>
xinhua.Cao <caoxinhua@huawei.com>
xuzhang <xuzhang@redhat.com>
yangdongsheng <yangds.fnst@cn.fujitsu.com>
yuelongguang <yuelongguang@le.com>


+ 2521
- 0
ChangeLog
File diff suppressed because it is too large
View File


+ 5
- 5
Makefile.am View File

@@ -97,11 +97,11 @@ dist-hook: gen-ChangeLog gen-AUTHORS
gen_start_date = 2009-07-04
.PHONY: gen-ChangeLog
gen-ChangeLog:
$(AM_V_GEN)if test -d .git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog \
--since=$(gen_start_date) > $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
$(AM_V_GEN)if test -d .git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog \
--since=$(gen_start_date) > $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi

.PHONY: gen-AUTHORS


+ 5
- 5
Makefile.in View File

@@ -2582,11 +2582,11 @@ clean-cov:
dist-hook: gen-ChangeLog gen-AUTHORS
.PHONY: gen-ChangeLog
gen-ChangeLog:
$(AM_V_GEN)if test -d .git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog \
--since=$(gen_start_date) > $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
$(AM_V_GEN)if test -d .git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog \
--since=$(gen_start_date) > $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi

.PHONY: gen-AUTHORS


+ 1
- 1
Makefile.nonreentrant View File

@@ -17,7 +17,7 @@
#
# Generated by running the following on Fedora 26:
#
# nm -D --defined-only /lib64/libc.so.6 \
# nm -D --defined-only /lib64/libc.so.6 \
# | grep '_r$' \
# | awk '{print $3}' \
# | grep -v __ \


+ 103
- 0
NEWS View File

@@ -1,6 +1,109 @@
libvirt releases
================

# v3.10.0 (2017-12-04)

* New features

- conf: Support defining distances between virtual NUMA cells
A NUMA hardware architecture supports the notion of distances between
NUMA cells. This can now be specified using the <distances> element
within the NUMA cell configuration. Drivers which support this include
Xen and QEMU.

- Xen: Support defining vNUMA topology
Xen now supports defining a virtual NUMA topology for VMs, including
specifying distances between NUMA cells.

- qemu: Add the ability to configure HPT resizing for pSeries guests
The user can now decide whether HPT (Hash Page Table) resizing should
be enabled, disabled or required instead of leaving it up to hypervisor
defaults and negotiation between the guest and the host.

- qemu: Add vmcoreinfo feature
Starting with QEMU 2.11, the guest can save kernel debug details when
this feature is enabled and the kernel supports it. It is useful to
process kernel dump with KASLR enabled, and also provides various
kernel details to crash tools.

- conf: Move the auth and encryption definitions to disk source
Allow parsing and formatting of the auth and encryption sub-elements to
be a child of the source element. This will allow adding an auth
sub-element to a backingStore or mirror elements as a means to track
specific authentication and/or encryption needs.

* Improvements

- vbox: Add VirtualBox 5.2 support

- vbox: Add support for configuring storage controllers
The VirtualBox driver now supports the <controller> element in the
domain XML for configuring storage controllers in VBOX VMs.
Additionally, libvirt's domain XML schema was updated to allow optional
model attribute for <controller type='ide'> which is used by the VBOX
driver to set the IDE controller model to be one of 'piix4', 'piix4'
(default), or 'ich6'. Finally, with this change dumpxml generates
<controller> elements that correspond to current VBOX VM storage
controller configuration.

- vbox: Add support for attaching empty removable disks
The VirutalBox driver now supports adding CD-ROM and floppy disk
devices that do not have the disk source specified. Previously such
devices were silently ignored.

- vbox: Add support for attaching SAS storage controllers
In VirtualBox, SCSI and SAS are distinct controller types whereas
libvirt does not make such distinction. Therefore, the VBOX driver was
updated to allow attaching SAS controllers via <controller type='scsi'
model='lsisas1068'> element. If there are both SCSI and SAS controllers
present in the VBOX VM, the domain XML can associate the disk device
using the <address> element with the controller attribute, and
optionally, set the port via unit attribute.

- qemu: Generate predictable paths for qemu memory backends
In some cases management applications need to know paths passed to
memory-backend-file objects upfront. Libvirt now generates predictable
paths so applications can prepare the files if they need to do so.

- Shareable disks work properly with recent qemu
Recent qemu versions added image locking to avoid potential corruption
of disk images. This broke shareable disks with libvirt since the
feature was turned on by default in qemu. Libvirt now enables sharing
of those disks in qemu so that the image locking is not applied in that
case. Additionally libvirt now checks that shareable disks have
supported format (raw) to avoid metadata corruption.

- Improve serial console behavior on non-x86 architectures
ppc64, aarch64 and s390x guests were treating the <serial> and
<console> elements differently from x86, in some cases presenting
misleading information to the user. The behavior is now consistent
across all architectures and the information reported is always
accurate.

* Bug fixes

- vbox: Do not ignore failures to attach disk devices when defining
The define now fails and reports an error if any of the controller or
disk devices specified in the domain XML fail to attach to the
VirtualBox VM.

- vbox: Fix dumpxml to always output disk devices
The VirtualBox driver was ignoring any disk devices in dumpxml output
if there was a SAS storage controller attached to the VM.

- vbox: Fix dumpxml to always generate valid domain XML
When a VirtualBox VM has multiple disks attached, each to a different
storage controller that uses 'sd' prefix for block device names e.g.
one disk attached to SATA and one to SCSI controller, it no longer
generates XML where both would have 'sda' device name assigned. Instead
it properly assigns 'sda' and 'sdb' to those disks in the order of
appearance.

- Securely pass iSCSI authentication data
Rather than supplying the authentication data as part of the iSCSI URL
for a disk or host device, utilize the encrypted secret object to
securely pass the authentication data.

# v3.9.0 (2017-11-02)

* New features


+ 418
- 412
cfg.mk
File diff suppressed because it is too large
View File


+ 1
- 1
config-post.h View File

@@ -86,7 +86,7 @@
* When __GNUC_PREREQ is not defined, gnulib defines it to 0, which breaks things.
*/
#ifndef __GNUC_PREREQ
# define __GNUC_PREREQ(maj, min) \
# define __GNUC_PREREQ(maj, min) \
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
#endif



+ 10
- 10
configure View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libvirt 3.9.0.
# Generated by GNU Autoconf 2.69 for libvirt 3.10.0.
#
# Report bugs to <libvir-list@redhat.com>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libvirt'
PACKAGE_TARNAME='libvirt'
PACKAGE_VERSION='3.9.0'
PACKAGE_STRING='libvirt 3.9.0'
PACKAGE_VERSION='3.10.0'
PACKAGE_STRING='libvirt 3.10.0'
PACKAGE_BUGREPORT='libvir-list@redhat.com'
PACKAGE_URL='https://libvirt.org'

@@ -3209,7 +3209,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures libvirt 3.9.0 to adapt to many kinds of systems.
\`configure' configures libvirt 3.10.0 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

@@ -3279,7 +3279,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of libvirt 3.9.0:";;
short | recursive ) echo "Configuration of libvirt 3.10.0:";;
esac
cat <<\_ACEOF

@@ -3620,7 +3620,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
libvirt configure 3.9.0
libvirt configure 3.10.0
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
@@ -4329,7 +4329,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by libvirt $as_me 3.9.0, which was
It was created by libvirt $as_me 3.10.0, which was
generated by GNU Autoconf 2.69. Invocation command line was

$ $0 $@
@@ -5333,7 +5333,7 @@ fi

# Define the identity of the package.
PACKAGE='libvirt'
VERSION='3.9.0'
VERSION='3.10.0'


cat >>confdefs.h <<_ACEOF
@@ -78083,7 +78083,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by libvirt $as_me 3.9.0, which was
This file was extended by libvirt $as_me 3.10.0, which was
generated by GNU Autoconf 2.69. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
@@ -78154,7 +78154,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libvirt config.status 3.9.0
libvirt config.status 3.10.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"



+ 1
- 1
configure.ac View File

@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.

AC_INIT([libvirt], [3.9.0], [libvir-list@redhat.com], [], [https://libvirt.org])
AC_INIT([libvirt], [3.10.0], [libvir-list@redhat.com], [], [https://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])


+ 86
- 86
daemon/Makefile.am View File

@@ -33,17 +33,17 @@ CLEANFILES =

WARN_CFLAGS += $(STRICT_FRAME_LIMIT_CFLAGS)

DAEMON_GENERATED = \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
DAEMON_GENERATED = \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
$(NULL)

DAEMON_SOURCES = \
libvirtd.c libvirtd.h \
remote.c remote.h \
stream.c stream.h \
DAEMON_SOURCES = \
libvirtd.c libvirtd.h \
remote.c remote.h \
stream.c stream.h \
$(DAEMON_GENERATED)

LIBVIRTD_CONF_SOURCES = libvirtd-config.c libvirtd-config.h
@@ -57,33 +57,33 @@ MANINFILES = \
$(NULL)

DISTCLEANFILES =
EXTRA_DIST = \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
libvirtd.conf \
libvirtd.init.in \
libvirtd.upstart \
libvirtd.policy.in \
libvirt.rules \
libvirtd.sasl \
libvirtd.service.in \
virt-guest-shutdown.target \
libvirtd.sysconf \
libvirtd.sysctl \
libvirtd.aug \
libvirtd.logrotate.in \
libvirtd.qemu.logrotate.in \
libvirtd.lxc.logrotate.in \
libvirtd.libxl.logrotate.in \
libvirtd.uml.logrotate.in \
test_libvirtd.aug.in \
THREADS.txt \
$(PODFILES) \
$(MANINFILES) \
$(DAEMON_SOURCES) \
$(LIBVIRTD_CONF_SOURCES) \
EXTRA_DIST = \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
libvirtd.conf \
libvirtd.init.in \
libvirtd.upstart \
libvirtd.policy.in \
libvirt.rules \
libvirtd.sasl \
libvirtd.service.in \
virt-guest-shutdown.target \
libvirtd.sysconf \
libvirtd.sysctl \
libvirtd.aug \
libvirtd.logrotate.in \
libvirtd.qemu.logrotate.in \
libvirtd.lxc.logrotate.in \
libvirtd.libxl.logrotate.in \
libvirtd.uml.logrotate.in \
test_libvirtd.aug.in \
THREADS.txt \
$(PODFILES) \
$(MANINFILES) \
$(DAEMON_SOURCES) \
$(LIBVIRTD_CONF_SOURCES) \
$(NULL)

BUILT_SOURCES =
@@ -128,11 +128,11 @@ libvirtd_conf_la_CFLAGS = \
$(WARN_CFLAGS) $(PIE_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(NULL)
libvirtd_conf_la_LDFLAGS = \
$(RELRO_LDFLAGS) \
$(PIE_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
libvirtd_conf_la_LDFLAGS = \
$(RELRO_LDFLAGS) \
$(PIE_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(NULL)
libvirtd_conf_la_LIBADD = $(LIBXML_LIBS)

@@ -141,20 +141,20 @@ libvirtd_admin_la_SOURCES = \
admin.c admin.h admin_server.c admin_server.h

libvirtd_admin_la_CFLAGS = \
$(AM_CFLAGS) \
$(XDR_CFLAGS) \
$(PIE_CFLAGS) \
$(WARN_CFLAGS) \
$(LIBXML_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(AM_CFLAGS) \
$(XDR_CFLAGS) \
$(PIE_CFLAGS) \
$(WARN_CFLAGS) \
$(LIBXML_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(NULL)
libvirtd_admin_la_LDFLAGS = \
$(PIE_LDFLAGS) \
$(RELRO_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(PIE_LDFLAGS) \
$(RELRO_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(NULL)
libvirtd_admin_la_LIBADD = \
libvirtd_admin_la_LIBADD = \
../src/libvirt-admin.la

man8_MANS = libvirtd.8
@@ -182,18 +182,18 @@ libvirtd_CFLAGS = \
$(COVERAGE_CFLAGS) \
-DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\""

libvirtd_LDFLAGS = \
$(RELRO_LDFLAGS) \
$(PIE_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
libvirtd_LDFLAGS = \
$(RELRO_LDFLAGS) \
$(PIE_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(NULL)

libvirtd_LDADD = \
$(LIBXML_LIBS) \
$(GNUTLS_LIBS) \
$(SASL_LIBS) \
$(DBUS_LIBS) \
libvirtd_LDADD = \
$(LIBXML_LIBS) \
$(GNUTLS_LIBS) \
$(SASL_LIBS) \
$(DBUS_LIBS) \
$(LIBNL_LIBS)

if WITH_DTRACE_PROBES
@@ -279,33 +279,33 @@ LOGROTATE_CONFS = libvirtd.qemu.logrotate libvirtd.lxc.logrotate \
BUILT_SOURCES += $(LOGROTATE_CONFS)

libvirtd.logrotate: libvirtd.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@

libvirtd.qemu.logrotate: libvirtd.qemu.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@

libvirtd.lxc.logrotate: libvirtd.lxc.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@

libvirtd.libxl.logrotate: libvirtd.libxl.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@

libvirtd.uml.logrotate: libvirtd.uml.logrotate.in
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
< $< > $@-t && \
mv $@-t $@

install-logrotate: $(LOGROTATE_CONFS)
@@ -415,20 +415,20 @@ uninstall-init-systemd:
endif ! LIBVIRT_INIT_SCRIPT_SYSTEMD

libvirtd.init: libvirtd.init.in $(top_builddir)/config.status
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
-e 's|[@]sbindir[@]|$(sbindir)|g' \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
< $< > $@-t && \
chmod a+x $@-t && \
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
-e 's|[@]sbindir[@]|$(sbindir)|g' \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
< $< > $@-t && \
chmod a+x $@-t && \
mv $@-t $@

libvirtd.service: libvirtd.service.in $(top_builddir)/config.status
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
-e 's|[@]sbindir[@]|$(sbindir)|g' \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
< $< > $@-t && \
$(AM_V_GEN)sed \
-e 's|[@]localstatedir[@]|$(localstatedir)|g' \
-e 's|[@]sbindir[@]|$(sbindir)|g' \
-e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
< $< > $@-t && \
mv $@-t $@




+ 75
- 75
daemon/Makefile.in View File

@@ -2016,16 +2016,16 @@ INCLUDES = \
CLEANFILES = $(am__append_1) $(BUILT_SOURCES) $(man8_MANS) *.cov \
*.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
DAEMON_GENERATED = \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
$(NULL)

DAEMON_SOURCES = \
libvirtd.c libvirtd.h \
remote.c remote.h \
stream.c stream.h \
libvirtd.c libvirtd.h \
remote.c remote.h \
stream.c stream.h \
$(DAEMON_GENERATED)

LIBVIRTD_CONF_SOURCES = libvirtd-config.c libvirtd-config.h
@@ -2039,32 +2039,32 @@ MANINFILES = \

DISTCLEANFILES =
EXTRA_DIST = \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
libvirtd.conf \
libvirtd.init.in \
libvirtd.upstart \
libvirtd.policy.in \
libvirt.rules \
libvirtd.sasl \
libvirtd.service.in \
virt-guest-shutdown.target \
libvirtd.sysconf \
libvirtd.sysctl \
libvirtd.aug \
libvirtd.logrotate.in \
libvirtd.qemu.logrotate.in \
libvirtd.lxc.logrotate.in \
libvirtd.libxl.logrotate.in \
libvirtd.uml.logrotate.in \
test_libvirtd.aug.in \
THREADS.txt \
$(PODFILES) \
$(MANINFILES) \
$(DAEMON_SOURCES) \
$(LIBVIRTD_CONF_SOURCES) \
remote_dispatch.h \
lxc_dispatch.h \
qemu_dispatch.h \
admin_dispatch.h \
libvirtd.conf \
libvirtd.init.in \
libvirtd.upstart \
libvirtd.policy.in \
libvirt.rules \
libvirtd.sasl \
libvirtd.service.in \
virt-guest-shutdown.target \
libvirtd.sysconf \
libvirtd.sysctl \
libvirtd.aug \
libvirtd.logrotate.in \
libvirtd.qemu.logrotate.in \
libvirtd.lxc.logrotate.in \
libvirtd.libxl.logrotate.in \
libvirtd.uml.logrotate.in \
test_libvirtd.aug.in \
THREADS.txt \
$(PODFILES) \
$(MANINFILES) \
$(DAEMON_SOURCES) \
$(LIBVIRTD_CONF_SOURCES) \
$(NULL)

BUILT_SOURCES = $(am__append_3) $(am__append_4) $(am__append_5)
@@ -2085,10 +2085,10 @@ ADMIN_PROTOCOL = $(top_srcdir)/src/admin/admin_protocol.x
@WITH_LIBVIRTD_TRUE@ $(NULL)

@WITH_LIBVIRTD_TRUE@libvirtd_conf_la_LDFLAGS = \
@WITH_LIBVIRTD_TRUE@ $(RELRO_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(PIE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(COVERAGE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NO_INDIRECT_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(RELRO_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(PIE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(COVERAGE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NO_INDIRECT_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NULL)

@WITH_LIBVIRTD_TRUE@libvirtd_conf_la_LIBADD = $(LIBXML_LIBS)
@@ -2096,19 +2096,19 @@ ADMIN_PROTOCOL = $(top_srcdir)/src/admin/admin_protocol.x
@WITH_LIBVIRTD_TRUE@ admin.c admin.h admin_server.c admin_server.h

@WITH_LIBVIRTD_TRUE@libvirtd_admin_la_CFLAGS = \
@WITH_LIBVIRTD_TRUE@ $(AM_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(XDR_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(PIE_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(WARN_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(LIBXML_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(COVERAGE_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(AM_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(XDR_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(PIE_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(WARN_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(LIBXML_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(COVERAGE_CFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NULL)

@WITH_LIBVIRTD_TRUE@libvirtd_admin_la_LDFLAGS = \
@WITH_LIBVIRTD_TRUE@ $(PIE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(RELRO_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(COVERAGE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NO_INDIRECT_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(PIE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(RELRO_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(COVERAGE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NO_INDIRECT_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NULL)

@WITH_LIBVIRTD_TRUE@libvirtd_admin_la_LIBADD = \
@@ -2132,10 +2132,10 @@ ADMIN_PROTOCOL = $(top_srcdir)/src/admin/admin_protocol.x
@WITH_LIBVIRTD_TRUE@ -DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\""

@WITH_LIBVIRTD_TRUE@libvirtd_LDFLAGS = \
@WITH_LIBVIRTD_TRUE@ $(RELRO_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(PIE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(COVERAGE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NO_INDIRECT_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(RELRO_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(PIE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(COVERAGE_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NO_INDIRECT_LDFLAGS) \
@WITH_LIBVIRTD_TRUE@ $(NULL)


@@ -2772,33 +2772,33 @@ admin_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
@WITH_LIBVIRTD_TRUE@admin.h: $(DAEMON_GENERATED)

@WITH_LIBVIRTD_TRUE@libvirtd.logrotate: libvirtd.logrotate.in
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ mv $@-t $@

@WITH_LIBVIRTD_TRUE@libvirtd.qemu.logrotate: libvirtd.qemu.logrotate.in
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ mv $@-t $@

@WITH_LIBVIRTD_TRUE@libvirtd.lxc.logrotate: libvirtd.lxc.logrotate.in
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ mv $@-t $@

@WITH_LIBVIRTD_TRUE@libvirtd.libxl.logrotate: libvirtd.libxl.logrotate.in
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ mv $@-t $@

@WITH_LIBVIRTD_TRUE@libvirtd.uml.logrotate: libvirtd.uml.logrotate.in
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ mv $@-t $@

@WITH_LIBVIRTD_TRUE@install-logrotate: $(LOGROTATE_CONFS)
@@ -2886,20 +2886,20 @@ admin_dispatch.h: $(top_srcdir)/src/rpc/gendispatch.pl \
@LIBVIRT_INIT_SCRIPT_SYSTEMD_FALSE@@WITH_LIBVIRTD_TRUE@uninstall-init-systemd:

@WITH_LIBVIRTD_TRUE@libvirtd.init: libvirtd.init.in $(top_builddir)/config.status
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]sbindir[@]|$(sbindir)|g' \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ chmod a+x $@-t && \
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]sbindir[@]|$(sbindir)|g' \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ chmod a+x $@-t && \
@WITH_LIBVIRTD_TRUE@ mv $@-t $@

@WITH_LIBVIRTD_TRUE@libvirtd.service: libvirtd.service.in $(top_builddir)/config.status
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]sbindir[@]|$(sbindir)|g' \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ $(AM_V_GEN)sed \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]localstatedir[@]|$(localstatedir)|g' \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]sbindir[@]|$(sbindir)|g' \
@WITH_LIBVIRTD_TRUE@ -e 's|[@]sysconfdir[@]|$(sysconfdir)|g' \
@WITH_LIBVIRTD_TRUE@ < $< > $@-t && \
@WITH_LIBVIRTD_TRUE@ mv $@-t $@

@WITH_LIBVIRTD_TRUE@check-local: check-augeas


+ 35
- 23
daemon/libvirtd.c View File

@@ -1258,6 +1258,12 @@ int main(int argc, char **argv) {
}
}

/* Try to claim the pidfile, exiting if we can't */
if ((pid_file_fd = virPidFileAcquirePath(pid_file, false, getpid())) < 0) {
ret = VIR_DAEMON_ERR_PIDFILE;
goto cleanup;
}

/* Ensure the rundir exists (on tmpfs on some systems) */
if (privileged) {
if (VIR_STRDUP_QUIET(run_dir, LOCALSTATEDIR "/run/libvirt") < 0) {
@@ -1286,13 +1292,12 @@ int main(int argc, char **argv) {
}
umask(old_umask);

/* Try to claim the pidfile, exiting if we can't */
if ((pid_file_fd = virPidFileAcquirePath(pid_file, false, getpid())) < 0) {
ret = VIR_DAEMON_ERR_PIDFILE;
if (virNetlinkStartup() < 0) {
ret = VIR_DAEMON_ERR_INIT;
goto cleanup;
}

if (virNetlinkStartup() < 0) {
if (!(dmn = virNetDaemonNew())) {
ret = VIR_DAEMON_ERR_INIT;
goto cleanup;
}
@@ -1314,8 +1319,7 @@ int main(int argc, char **argv) {
goto cleanup;
}

if (!(dmn = virNetDaemonNew()) ||
virNetDaemonAddServer(dmn, srv) < 0) {
if (virNetDaemonAddServer(dmn, srv) < 0) {
ret = VIR_DAEMON_ERR_INIT;
goto cleanup;
}
@@ -1499,15 +1503,33 @@ int main(int argc, char **argv) {
0, "shutdown", NULL, NULL);

cleanup:
/* Keep cleanup order in inverse order of startup */
virNetDaemonClose(dmn);

virNetlinkEventServiceStopAll();
virObjectUnref(remoteProgram);
virObjectUnref(lxcProgram);
virObjectUnref(qemuProgram);

if (driversInitialized) {
/* NB: Possible issue with timing window between driversInitialized
* setting if virNetlinkEventServerStart fails */
driversInitialized = false;
virStateCleanup();
}

virObjectUnref(adminProgram);
virNetDaemonClose(dmn);
virObjectUnref(srv);
virObjectUnref(srvAdm);
virObjectUnref(qemuProgram);
virObjectUnref(lxcProgram);
virObjectUnref(remoteProgram);
virObjectUnref(srv);
virObjectUnref(dmn);

virNetlinkShutdown();

if (pid_file_fd != -1)
virPidFileReleasePath(pid_file, pid_file_fd);

VIR_FREE(run_dir);

if (statuswrite != -1) {
if (ret != 0) {
/* Tell parent of daemon what failed */
@@ -1518,25 +1540,15 @@ int main(int argc, char **argv) {
}
VIR_FORCE_CLOSE(statuswrite);
}
if (pid_file_fd != -1)
virPidFileReleasePath(pid_file, pid_file_fd);

VIR_FREE(sock_file);
VIR_FREE(sock_file_ro);
VIR_FREE(sock_file_adm);

VIR_FREE(pid_file);
VIR_FREE(remote_config_file);
VIR_FREE(run_dir);

VIR_FREE(remote_config_file);
daemonConfigFree(config);

if (driversInitialized) {
driversInitialized = false;
virStateCleanup();
}
/* Now that the hypervisor shutdown inhibition functions that use
* 'dmn' as a parameter are done, we can finally unref 'dmn' */
virObjectUnref(dmn);

return ret;
}

+ 67
- 59
daemon/remote.c View File

@@ -58,15 +58,15 @@
VIR_LOG_INIT("daemon.remote");

#if SIZEOF_LONG < 8
# define HYPER_TO_TYPE(_type, _to, _from) \
do { \
if ((_from) != (_type)(_from)) { \
virReportError(VIR_ERR_OVERFLOW, \
# define HYPER_TO_TYPE(_type, _to, _from) \
do { \
if ((_from) != (_type)(_from)) { \
virReportError(VIR_ERR_OVERFLOW, \
_("conversion from hyper to %s overflowed"), \
#_type); \
goto cleanup; \
} \
(_to) = (_from); \
#_type); \
goto cleanup; \
} \
(_to) = (_from); \
} while (0)

# define HYPER_TO_LONG(_to, _from) HYPER_TO_TYPE(long, _to, _from)
@@ -1670,24 +1670,63 @@ void remoteRelayConnectionClosedEvent(virConnectPtr conn ATTRIBUTE_UNUSED, int r
&msg);
}

#define DEREG_CB(conn, eventCallbacks, neventCallbacks, deregFcn, name) \
do { \
size_t i; \
for (i = 0; i < neventCallbacks; i++) { \
int callbackID = eventCallbacks[i]->callbackID; \
if (callbackID < 0) { \
#define DEREG_CB(conn, eventCallbacks, neventCallbacks, deregFcn, name) \
do { \
size_t i; \
for (i = 0; i < neventCallbacks; i++) { \
int callbackID = eventCallbacks[i]->callbackID; \
if (callbackID < 0) { \
VIR_WARN("unexpected incomplete %s callback %zu", name, i); \
continue; \
} \
VIR_DEBUG("Deregistering remote %s event relay %d", \
name, callbackID); \
eventCallbacks[i]->callbackID = -1; \
if (deregFcn(conn, callbackID) < 0) \
VIR_WARN("unexpected %s event deregister failure", name); \
} \
VIR_FREE(eventCallbacks); \
continue; \
} \
VIR_DEBUG("Deregistering remote %s event relay %d", \
name, callbackID); \
eventCallbacks[i]->callbackID = -1; \
if (deregFcn(conn, callbackID) < 0) \
VIR_WARN("unexpected %s event deregister failure", name); \
} \
VIR_FREE(eventCallbacks); \
neventCallbacks = 0; \
} while (0);


static void
remoteClientFreePrivateCallbacks(struct daemonClientPrivate *priv)
{
virIdentityPtr sysident = virIdentityGetSystem();
virIdentitySetCurrent(sysident);

DEREG_CB(priv->conn, priv->domainEventCallbacks,
priv->ndomainEventCallbacks,
virConnectDomainEventDeregisterAny, "domain");
DEREG_CB(priv->conn, priv->networkEventCallbacks,
priv->nnetworkEventCallbacks,
virConnectNetworkEventDeregisterAny, "network");
DEREG_CB(priv->conn, priv->storageEventCallbacks,
priv->nstorageEventCallbacks,
virConnectStoragePoolEventDeregisterAny, "storage");
DEREG_CB(priv->conn, priv->nodeDeviceEventCallbacks,
priv->nnodeDeviceEventCallbacks,
virConnectNodeDeviceEventDeregisterAny, "node device");
DEREG_CB(priv->conn, priv->secretEventCallbacks,
priv->nsecretEventCallbacks,
virConnectSecretEventDeregisterAny, "secret");
DEREG_CB(priv->conn, priv->qemuEventCallbacks,
priv->nqemuEventCallbacks,
virConnectDomainQemuMonitorEventDeregister, "qemu monitor");

if (priv->closeRegistered) {
if (virConnectUnregisterCloseCallback(priv->conn,
remoteRelayConnectionClosedEvent) < 0)
VIR_WARN("unexpected close callback event deregister failure");
}

virIdentitySetCurrent(NULL);
virObjectUnref(sysident);
}
#undef DEREG_CB


/*
* You must hold lock for at least the client
* We don't free stuff here, merely disconnect the client's
@@ -1699,46 +1738,11 @@ void remoteClientFreeFunc(void *data)
{
struct daemonClientPrivate *priv = data;

/* Deregister event delivery callback */
if (priv->conn) {
virIdentityPtr sysident = virIdentityGetSystem();

virIdentitySetCurrent(sysident);

DEREG_CB(priv->conn, priv->domainEventCallbacks,
priv->ndomainEventCallbacks,
virConnectDomainEventDeregisterAny, "domain");
DEREG_CB(priv->conn, priv->networkEventCallbacks,
priv->nnetworkEventCallbacks,
virConnectNetworkEventDeregisterAny, "network");
DEREG_CB(priv->conn, priv->storageEventCallbacks,
priv->nstorageEventCallbacks,
virConnectStoragePoolEventDeregisterAny, "storage");
DEREG_CB(priv->conn, priv->nodeDeviceEventCallbacks,
priv->nnodeDeviceEventCallbacks,
virConnectNodeDeviceEventDeregisterAny, "node device");
DEREG_CB(priv->conn, priv->secretEventCallbacks,
priv->nsecretEventCallbacks,
virConnectSecretEventDeregisterAny, "secret");
DEREG_CB(priv->conn, priv->qemuEventCallbacks,
priv->nqemuEventCallbacks,
virConnectDomainQemuMonitorEventDeregister, "qemu monitor");

if (priv->closeRegistered) {
if (virConnectUnregisterCloseCallback(priv->conn,
remoteRelayConnectionClosedEvent) < 0)
VIR_WARN("unexpected close callback event deregister failure");
}

if (priv->conn)
virConnectClose(priv->conn);

virIdentitySetCurrent(NULL);
virObjectUnref(sysident);
}

VIR_FREE(priv);
}
#undef DEREG_CB


static void remoteClientCloseFunc(virNetServerClientPtr client)
@@ -1746,6 +1750,10 @@ static void remoteClientCloseFunc(virNetServerClientPtr client)
struct daemonClientPrivate *priv = virNetServerClientGetPrivateData(client);

daemonRemoveAllClientStreams(priv->streams);

/* Deregister event delivery callback */
if (priv->conn)
remoteClientFreePrivateCallbacks(priv);
}




+ 1
- 1
docs/404.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:37 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 28
- 28
docs/Makefile.am View File

@@ -18,38 +18,38 @@

DEVHELP_DIR=$(datadir)/gtk-doc/html/libvirt

apihtml = \
html/index.html \
apihtml = \
html/index.html \
$(apihtml_generated)

apihtml_generated = \
html/libvirt-libvirt-common.html \
html/libvirt-libvirt-domain.html \
html/libvirt-libvirt-domain-snapshot.html \
html/libvirt-libvirt-event.html \
html/libvirt-libvirt-host.html \
html/libvirt-libvirt-interface.html \
html/libvirt-libvirt-network.html \
html/libvirt-libvirt-nodedev.html \
html/libvirt-libvirt-nwfilter.html \
html/libvirt-libvirt-secret.html \
html/libvirt-libvirt-storage.html \
html/libvirt-libvirt-stream.html \
html/libvirt-libvirt-common.html \
html/libvirt-libvirt-domain.html \
html/libvirt-libvirt-domain-snapshot.html \
html/libvirt-libvirt-event.html \
html/libvirt-libvirt-host.html \
html/libvirt-libvirt-interface.html \
html/libvirt-libvirt-network.html \
html/libvirt-libvirt-nodedev.html \
html/libvirt-libvirt-nwfilter.html \
html/libvirt-libvirt-secret.html \
html/libvirt-libvirt-storage.html \
html/libvirt-libvirt-stream.html \
html/libvirt-virterror.html

apipng = \
html/left.png \
html/up.png \
html/home.png \
apipng = \
html/left.png \
html/up.png \
html/home.png \
html/right.png

devhelphtml = \
devhelp/libvirt.devhelp \
devhelp/index.html \
devhelp/general.html \
devhelphtml = \
devhelp/libvirt.devhelp \
devhelp/index.html \
devhelp/general.html \
devhelp/libvirt-virterror.html

css = \
css = \
generic.css \
libvirt.css \
mobile.css \
@@ -69,10 +69,10 @@ fonts = \
fonts/overpass-mono-semibold.woff \
fonts/overpass-regular.woff

devhelppng = \
devhelp/home.png \
devhelp/left.png \
devhelp/right.png \
devhelppng = \
devhelp/home.png \
devhelp/left.png \
devhelp/right.png \
devhelp/up.png

devhelpcss = devhelp/style.css
@@ -170,7 +170,7 @@ fig = \
schemadir = $(pkgdatadir)/schemas
schema_DATA = $(wildcard $(srcdir)/schemas/*.rng)

EXTRA_DIST= \
EXTRA_DIST= \
apibuild.py genaclperms.pl \
site.xsl subsite.xsl newapi.xsl page.xsl \
wrapstring.xsl \


+ 22
- 22
docs/Makefile.in View File

@@ -1891,34 +1891,34 @@ top_srcdir = @top_srcdir@
ws_plugindir = @ws_plugindir@
DEVHELP_DIR = $(datadir)/gtk-doc/html/libvirt
apihtml = \
html/index.html \
html/index.html \
$(apihtml_generated)

apihtml_generated = \
html/libvirt-libvirt-common.html \
html/libvirt-libvirt-domain.html \
html/libvirt-libvirt-domain-snapshot.html \
html/libvirt-libvirt-event.html \
html/libvirt-libvirt-host.html \
html/libvirt-libvirt-interface.html \
html/libvirt-libvirt-network.html \
html/libvirt-libvirt-nodedev.html \
html/libvirt-libvirt-nwfilter.html \
html/libvirt-libvirt-secret.html \
html/libvirt-libvirt-storage.html \
html/libvirt-libvirt-stream.html \
html/libvirt-libvirt-common.html \
html/libvirt-libvirt-domain.html \
html/libvirt-libvirt-domain-snapshot.html \
html/libvirt-libvirt-event.html \
html/libvirt-libvirt-host.html \
html/libvirt-libvirt-interface.html \
html/libvirt-libvirt-network.html \
html/libvirt-libvirt-nodedev.html \
html/libvirt-libvirt-nwfilter.html \
html/libvirt-libvirt-secret.html \
html/libvirt-libvirt-storage.html \
html/libvirt-libvirt-stream.html \
html/libvirt-virterror.html

apipng = \
html/left.png \
html/up.png \
html/home.png \
html/left.png \
html/up.png \
html/home.png \
html/right.png

devhelphtml = \
devhelp/libvirt.devhelp \
devhelp/index.html \
devhelp/general.html \
devhelp/libvirt.devhelp \
devhelp/index.html \
devhelp/general.html \
devhelp/libvirt-virterror.html

css = \
@@ -1942,9 +1942,9 @@ fonts = \
fonts/overpass-regular.woff

devhelppng = \
devhelp/home.png \
devhelp/left.png \
devhelp/right.png \
devhelp/home.png \
devhelp/left.png \
devhelp/right.png \
devhelp/up.png

devhelpcss = devhelp/style.css


+ 1
- 1
docs/acl.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:23 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/aclpolkit.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:36 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/api.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/api_extension.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:37 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/apps.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:36 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/architecture.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/auditlog.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/auth.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/bindings.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:37 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/bugs.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/cgroups.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:04 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/compiling.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/contact.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/contribute.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:04 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/csharp.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:37 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/devguide.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:37 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 5
- 1
docs/docs.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:36 UTC 2017.
This page was generated at Wed Nov 29 16:10:36 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>
@@ -181,6 +181,10 @@
<a href="drivers.html">Drivers</a>
</dt>
<dd>Hypervisor specific driver information</dd>
<dt>
<a href="support.html">Support guarantees</a>
</dt>
<dd>Details of support status for various interfaces</dd>
<dt>
<a href="hvsupport.html">Driver support</a>
</dt>


+ 3
- 0
docs/docs.html.in View File

@@ -110,6 +110,9 @@
<dt><a href="drivers.html">Drivers</a></dt>
<dd>Hypervisor specific driver information</dd>

<dt><a href="support.html">Support guarantees</a></dt>
<dd>Details of support status for various interfaces</dd>

<dt><a href="hvsupport.html">Driver support</a></dt>
<dd>matrix of API support per hypervisor per release</dd>



+ 1
- 1
docs/downloads.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:36 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drivers.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvbhyve.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvesx.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvhyperv.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:04 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 2
- 2
docs/drvlxc.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:37 UTC 2017.
This page was generated at Wed Nov 29 16:10:36 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>
@@ -717,7 +717,7 @@ rather than creating new network namespace for the container. In this case privn
ignored.
</p>
<pre>
&lt;domain type='lxc' xmlns:lxc='https://libvirt.org/schemas/domain/lxc/1.0'&gt;
&lt;domain type='lxc' xmlns:lxc='http://libvirt.org/schemas/domain/lxc/1.0'&gt;
...
&lt;lxc:namespace&gt;
&lt;lxc:sharenet type='netns' value='red'/&gt;


+ 1
- 1
docs/drvlxc.html.in View File

@@ -601,7 +601,7 @@ rather than creating new network namespace for the container. In this case privn
ignored.
</p>
<pre>
&lt;domain type='lxc' xmlns:lxc='https://libvirt.org/schemas/domain/lxc/1.0'&gt;
&lt;domain type='lxc' xmlns:lxc='http://libvirt.org/schemas/domain/lxc/1.0'&gt;
...
&lt;lxc:namespace&gt;
&lt;lxc:sharenet type='netns' value='red'/&gt;


+ 1
- 1
docs/drvnodedev.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvopenvz.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvphyp.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 3
- 3
docs/drvqemu.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Mon Oct 30 07:35:37 UTC 2017.
This page was generated at Wed Nov 29 16:10:36 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>
@@ -638,7 +638,7 @@ $ virsh domxml-to-native qemu-argv demo.xml
(<span class="since">Since 0.8.3</span>). In order to use the
XML additions, it is necessary to issue an XML namespace request
(the special <code>xmlns:<i>name</i></code> attribute) that
pulls in <code>https://libvirt.org/schemas/domain/qemu/1.0</code>;
pulls in <code>http://libvirt.org/schemas/domain/qemu/1.0</code>;
typically, the namespace is given the name
of <code>qemu</code>. With the namespace in place, it is then
possible to add an element <code>&lt;qemu:commandline&gt;</code>
@@ -663,7 +663,7 @@ $ virsh domxml-to-native qemu-argv demo.xml
</dl>
<p>Example:</p>
<pre>
&lt;domain type='qemu' xmlns:qemu='https://libvirt.org/schemas/domain/qemu/1.0'&gt;
&lt;domain type='qemu' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'&gt;
&lt;name&gt;QEmu-fedora-i686&lt;/name&gt;
&lt;memory&gt;219200&lt;/memory&gt;
&lt;os&gt;


+ 2
- 2
docs/drvqemu.html.in View File

@@ -546,7 +546,7 @@ $ virsh domxml-to-native qemu-argv demo.xml
(<span class="since">Since 0.8.3</span>). In order to use the
XML additions, it is necessary to issue an XML namespace request
(the special <code>xmlns:<i>name</i></code> attribute) that
pulls in <code>https://libvirt.org/schemas/domain/qemu/1.0</code>;
pulls in <code>http://libvirt.org/schemas/domain/qemu/1.0</code>;
typically, the namespace is given the name
of <code>qemu</code>. With the namespace in place, it is then
possible to add an element <code>&lt;qemu:commandline&gt;</code>
@@ -566,7 +566,7 @@ $ virsh domxml-to-native qemu-argv demo.xml
and optional <code>value</code>.</dd>
</dl>
<p>Example:</p><pre>
&lt;domain type='qemu' xmlns:qemu='https://libvirt.org/schemas/domain/qemu/1.0'&gt;
&lt;domain type='qemu' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'&gt;
&lt;name&gt;QEmu-fedora-i686&lt;/name&gt;
&lt;memory&gt;219200&lt;/memory&gt;
&lt;os&gt;


+ 1
- 1
docs/drvremote.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvtest.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvuml.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 29
- 2
docs/drvvbox.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:04 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>
@@ -58,7 +58,8 @@
<h1>VirtualBox hypervisor driver</h1>
<p>
The libvirt VirtualBox driver can manage any VirtualBox version
from version 2.2 onwards.
from version 4.0 onwards
(<span class="since">since libvirt 3.0.0</span>).
</p>
<h2>
<a id="project">Project Links</a>
@@ -119,6 +120,14 @@ vbox+ssh://user@example.com/session (remote access, SSH tunnelled)
&lt;/features&gt;

&lt;devices&gt;
&lt;!--Set IDE controller model to PIIX4 (default PIIX3)--&gt;
&lt;controller type='ide' model='piix4'/&gt;

&lt;controller type='scsi' index='0'/&gt;

&lt;!--VirtualBox SAS Controller--&gt;
&lt;controller type='scsi' index='1' model='lsisas1068'/&gt;

&lt;disk type='file' device='cdrom'&gt;
&lt;source file='/home/user/Downloads/slax-6.0.9.iso'/&gt;
&lt;target dev='hdc'/&gt;
@@ -130,6 +139,19 @@ vbox+ssh://user@example.com/session (remote access, SSH tunnelled)
&lt;target dev='hdd'/&gt;
&lt;/disk&gt;

&lt;!--Attach to the SCSI controller (index=0, default)--&gt;
&lt;disk type='file' device='disk'&gt;
&lt;source file='/home/user/tmp/vbox2.vdi'/&gt;
&lt;target dev='sda' bus='scsi'/&gt;
&lt;/disk&gt;

&lt;!--Attach to the SAS controller (index=1)--&gt;
&lt;disk type='file' device='disk'&gt;
&lt;source file='/home/user/tmp/vbox3.vdi'/&gt;
&lt;target dev='sda' bus='scsi'/&gt;
&lt;address type='drive' controller='1' bus='0' target='0' unit='0'/&gt;
&lt;/disk&gt;

&lt;disk type='file' device='floppy'&gt;
&lt;source file='/home/user/tmp/WIN98C.IMG'/&gt;
&lt;target dev='fda'/&gt;
@@ -153,6 +175,11 @@ vbox+ssh://user@example.com/session (remote access, SSH tunnelled)
&lt;model type='82540eM'/&gt;
&lt;/interface&gt;

&lt;graphics type='desktop'/&gt;

&lt;!--Activate the VRDE server with a port in 3389-3689 range--&gt;
&lt;graphics type='rdp' autoport='yes' multiUser='yes'/&gt;

&lt;sound model='sb16'/&gt;

&lt;parallel type='dev'&gt;


+ 28
- 1
docs/drvvbox.html.in View File

@@ -5,7 +5,8 @@
<h1>VirtualBox hypervisor driver</h1>
<p>
The libvirt VirtualBox driver can manage any VirtualBox version
from version 2.2 onwards.
from version 4.0 onwards
(<span class="since">since libvirt 3.0.0</span>).
</p>

<h2><a id="project">Project Links</a></h2>
@@ -68,6 +69,14 @@ vbox+ssh://user@example.com/session (remote access, SSH tunnelled)
&lt;/features&gt;

&lt;devices&gt;
&lt;!--Set IDE controller model to PIIX4 (default PIIX3)--&gt;
&lt;controller type='ide' model='piix4'/&gt;

&lt;controller type='scsi' index='0'/&gt;

&lt;!--VirtualBox SAS Controller--&gt;
&lt;controller type='scsi' index='1' model='lsisas1068'/&gt;

&lt;disk type='file' device='cdrom'&gt;
&lt;source file='/home/user/Downloads/slax-6.0.9.iso'/&gt;
&lt;target dev='hdc'/&gt;
@@ -79,6 +88,19 @@ vbox+ssh://user@example.com/session (remote access, SSH tunnelled)
&lt;target dev='hdd'/&gt;
&lt;/disk&gt;

&lt;!--Attach to the SCSI controller (index=0, default)--&gt;
&lt;disk type='file' device='disk'&gt;
&lt;source file='/home/user/tmp/vbox2.vdi'/&gt;
&lt;target dev='sda' bus='scsi'/&gt;
&lt;/disk&gt;

&lt;!--Attach to the SAS controller (index=1)--&gt;
&lt;disk type='file' device='disk'&gt;
&lt;source file='/home/user/tmp/vbox3.vdi'/&gt;
&lt;target dev='sda' bus='scsi'/&gt;
&lt;address type='drive' controller='1' bus='0' target='0' unit='0'/&gt;
&lt;/disk&gt;

&lt;disk type='file' device='floppy'&gt;
&lt;source file='/home/user/tmp/WIN98C.IMG'/&gt;
&lt;target dev='fda'/&gt;
@@ -102,6 +124,11 @@ vbox+ssh://user@example.com/session (remote access, SSH tunnelled)
&lt;model type='82540eM'/&gt;
&lt;/interface&gt;

&lt;graphics type='desktop'/&gt;

&lt;!--Activate the VRDE server with a port in 3389-3689 range--&gt;
&lt;graphics type='rdp' autoport='yes' multiUser='yes'/&gt;

&lt;sound model='sb16'/&gt;

&lt;parallel type='dev'&gt;


+ 1
- 1
docs/drvvirtuozzo.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:26 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvvmware.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/drvxen.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/errors.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:04 UTC 2017.
This page was generated at Mon Nov 13 21:46:24 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/firewall.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--
This page was generated at Fri Sep 29 07:33:05 UTC 2017.
This page was generated at Mon Nov 13 21:46:25 UTC 2017.
-->
<head>
<meta charset="UTF-8"/>


+ 1
- 1
docs/format.html View File

@@ -6,7 +6,7 @@
Do not edit this file. Changes will be lost.
-->
<!--