[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-trivial] [PULL 21/21] util/qemu-sockets: improve ai_flag hints for
From: |
Michael Tokarev |
Subject: |
[Qemu-trivial] [PULL 21/21] util/qemu-sockets: improve ai_flag hints for ipv6 hosts |
Date: |
Mon, 22 Jun 2015 14:16:28 +0300 |
From: Wolfgang Bumiller <address@hidden>
*) Do not use AI_ADDRCONFIG on listening sockets, because this flag
makes it impossible to explicitly listen on '127.0.0.1' if no global
ipv4 address is configured additionally, making this a very
uncomfortable option.
*) Add AI_V4MAPPED hint for connecting sockets.
If your system is globally only connected via ipv6 you often still want
to be able to use '127.0.0.1' and 'localhost' (even if localhost doesn't
also have an ipv6 entry).
For example, PVE - unless explicitly asking for insecure mode - uses
ipv4 loopback addresses with QEMU for live migrations tunneled over SSH.
These fail to start because AI_ADDRCONFIG makes getaddrinfo refuse to
work with '127.0.0.1'.
As for the AI_V4MAPPED flag: glibc uses it by default, and providing
non-0 flags removes it. I think it makes sense to use it.
I also want to point out that glibc explicitly sidesteps POSIX standards
when passing 0 as hints by then assuming both AI_V4MAPPED and
AI_ADDRCONFIG (the latter being a rather weird choice IMO), while
according to POSIX.1-2001 it should be assumed 0. (glibc considers its
choice an improvement.)
Since either AI_CANONNAME or AI_PASSIVE are passed in our cases, glibc's
default flags in turn are disabled again unless explicitly added, which
I do with this patch.
Signed-off-by: Wolfgang Bumiller <address@hidden>
Signed-off-by: Michael Tokarev <address@hidden>
---
util/qemu-sockets.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 4026314..64b6a06 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -118,7 +118,7 @@ int inet_listen_opts(QemuOpts *opts, int port_offset, Error
**errp)
int slisten, rc, to, port_min, port_max, p;
memset(&ai,0, sizeof(ai));
- ai.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
+ ai.ai_flags = AI_PASSIVE;
ai.ai_family = PF_UNSPEC;
ai.ai_socktype = SOCK_STREAM;
@@ -335,7 +335,7 @@ static struct addrinfo *inet_parse_connect_opts(QemuOpts
*opts, Error **errp)
memset(&ai, 0, sizeof(ai));
- ai.ai_flags = AI_CANONNAME | AI_ADDRCONFIG;
+ ai.ai_flags = AI_CANONNAME | AI_V4MAPPED | AI_ADDRCONFIG;
ai.ai_family = PF_UNSPEC;
ai.ai_socktype = SOCK_STREAM;
@@ -435,7 +435,7 @@ int inet_dgram_opts(QemuOpts *opts, Error **errp)
/* lookup peer addr */
memset(&ai,0, sizeof(ai));
- ai.ai_flags = AI_CANONNAME | AI_ADDRCONFIG;
+ ai.ai_flags = AI_CANONNAME | AI_V4MAPPED | AI_ADDRCONFIG;
ai.ai_family = PF_UNSPEC;
ai.ai_socktype = SOCK_DGRAM;
--
2.1.4
- [Qemu-trivial] [PULL 14/21] throttle: Fix typo in the documentation of block_set_io_throttle, (continued)
- [Qemu-trivial] [PULL 14/21] throttle: Fix typo in the documentation of block_set_io_throttle, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 08/21] wdt_i6300esb: QOMify, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 17/21] Makefile: Fix "make cscope TAGS", Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 18/21] Makefile: Add "make ctags", Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 10/21] vt82c686: QOMify, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 07/21] piix4: QOMify, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 04/21] Print error when failing to load PCI config data, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 20/21] hw/display/tcx.c: Fix memory leak, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 15/21] qemu-options: Improve -global documentation, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 09/21] xen_pt: QOMify, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 21/21] util/qemu-sockets: improve ai_flag hints for ipv6 hosts,
Michael Tokarev <=
- [Qemu-trivial] [PULL 05/21] pci-assign: QOMify, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 06/21] piix: piix3 QOMify, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 11/21] libcacard: pkgconfig: tidy dependent libs, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 13/21] hw/display/qxl-logger.c: Constify some variable, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 03/21] Grammar: 'as to'->'as for', Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 12/21] configure: rearrange --help and consolidate enable/disable together, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 16/21] qemu-options: Use @itemx where appropriate, Michael Tokarev, 2015/06/22
- [Qemu-trivial] [PULL 02/21] remove libdecnumber/dpd/decimal128Local.h, Michael Tokarev, 2015/06/22
- Re: [Qemu-trivial] [Qemu-devel] [PULL 00/21] Trivial patches for 2015-06-22, Peter Maydell, 2015/06/22