diff options
Diffstat (limited to 'results/classifier/108/network/1569988')
| -rw-r--r-- | results/classifier/108/network/1569988 | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/results/classifier/108/network/1569988 b/results/classifier/108/network/1569988 new file mode 100644 index 000000000..199a9fcbb --- /dev/null +++ b/results/classifier/108/network/1569988 @@ -0,0 +1,73 @@ +network: 0.930 +device: 0.926 +PID: 0.887 +other: 0.884 +vnc: 0.884 +graphic: 0.883 +socket: 0.861 +semantic: 0.852 +debug: 0.842 +permissions: 0.827 +performance: 0.795 +files: 0.765 +boot: 0.743 +KVM: 0.647 + +[2.6] user network broken reaching foreign servers on Win64 + +Both on master and, starting with 2016-03-22 builds from http://qemu.weilnetz.de/w64/, user mode network can't reach foreign servers. For example, wget http://mifritscher resolves the DNS, but then the message "network target couldn't be reached" occures. 2016-03-03 works fine. I suspect the IPv6 changes. My connection is IPv4 only. + +I tested via knoppix 7.6. The command line is + +qemu-system-x86_64.exe -m 512 -k de --cdrom c:\Users\michaelfritscher\Downloads\linux\KNOPPIX_V7.4.2DVD-2014-09-28-DE.iso -netdev user,id=mynet0,restrict=n -device e1000,netdev=mynet0 + +Under Linux, it is working fine. + +Another thing: if I disable ipv6, ipv4 runs still in sort of a timeout before writing Network is unreachable (ENETUNREACH), while ipv6 says this without delay (which is ok/good) + + +It looks like this commit caused the regression: + +$ git bisect bad +c619644067f98098dcdbc951e2dda79e97560afa is the first bad commit +commit c619644067f98098dcdbc951e2dda79e97560afa +Author: Daniel P. Berrange <email address hidden> +Date: Mon Mar 7 11:19:18 2016 +0000 + + osdep: fix socket_error() to work with Mingw64 + + +Here is a patch which fixes the problem. + +diff --git a/slirp/tcp_input.c b/slirp/tcp_input.c +index 2027a75..696867f 100644 +--- a/slirp/tcp_input.c ++++ b/slirp/tcp_input.c +@@ -587,7 +587,7 @@ findso: + + if ((tcp_fconnect(so, so->so_ffamily) == -1) && + #if defined(_WIN32) +- socket_error() != WSAEWOULDBLOCK ++ socket_error() != EAGAIN + #else + (errno != EINPROGRESS) && (errno != EWOULDBLOCK) + #endif + + +Latest QEMU needs a slightly different patch: + +diff --git a/slirp/tcp_input.c b/slirp/tcp_input.c +index 5433e7f..3be2d2f 100644 +--- a/slirp/tcp_input.c ++++ b/slirp/tcp_input.c +@@ -659,6 +659,7 @@ findso: + } + + if ((tcp_fconnect(so, so->so_ffamily) == -1) && ++ socket_error() != EAGAIN && + (errno != EINPROGRESS) && (errno != EWOULDBLOCK) + ) { + uint8_t code; + +Fixed since v2.6.0-rc3 release. + |