On 06.04.2016 02:13, ste...@steven676.net wrote: > QEMU's user-mode networking does not currently pass received TCP RSTs to > guests, meaning that applications in guests hang if the remote server > rejects their network connections. This is particularly noticeable when > IPv6 is enabled, the guest is configured to prefer IPv6 and the remote > server rejects IPv6 connections (segment-data.zqtk.net is one example), > but the bug appears to be longstanding and affects TCP over IPv4 as > well. > > There are three short patches in this series. The first fixes a crash > which would be exposed by the last patch in the series. The second, > which fixes delivery of an RST interrupting an already-established TCP > connection, was submitted by Edgar Iglesias in 2008 and appears to have > been missed then. The last patch fixes the case where the remote end > sends RST in reply to our SYN (rejects our incoming connection attempt). > > Lightly tested on a Linux host with Linux and Windows 7 guests. > > Edgar E. Iglesias (1): > slirp: Propagate host TCP RST to the guest. > > Steven Luo (2): > slirp: don't crash when tcp_sockclosed() is called with a NULL tp > slirp: handle deferred ECONNREFUSED on non-blocking TCP sockets > > slirp/socket.c | 17 ++++++++++++++++- > slirp/tcp_input.c | 6 ++++++ > slirp/tcp_subr.c | 7 +++++-- > 3 files changed, 27 insertions(+), 3 deletions(-)
FWIW, please make sure to CC: Samuel Thibault when posting slirp patches - he's the new (co-)maintainer of the slirp code now. Thanks, Thomas