Am 13.08.2013 22:00, schrieb Taimoor: > From: Taimoor Mirza <tmi...@codesourcery.com> > > port redirection code uses SO_REUSEADDR socket option before binding to > host port. Behavior of SO_REUSEADDR is different on Windows and Linux. > Relaunching QEMU with same host and guest port redirection values on Linux > throws error but on Windows it does not throw any error. > Problem is discussed in > http://lists.gnu.org/archive/html/qemu-devel/2013-04/msg03089.html > > Signed-off-by: Taimoor Mirza <tmi...@codesourcery.com> > --- > slirp/socket.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/slirp/socket.c b/slirp/socket.c > index 8e8819c..23780b3 100644 > --- a/slirp/socket.c > +++ b/slirp/socket.c > @@ -627,7 +627,9 @@ tcp_listen(Slirp *slirp, uint32_t haddr, u_int hport, > uint32_t laddr, > addr.sin_port = hport; > > if (((s = qemu_socket(AF_INET,SOCK_STREAM,0)) < 0) || > +#ifdef _WIN32
Shouldn't this be replaced by #ifndef _WIN32? > (qemu_setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)) < > 0) || > +#endif > (bind(s,(struct sockaddr *)&addr, sizeof(addr)) < 0) || > (listen(s,1) < 0)) { > int tmperrno = errno; /* Don't clobber the real reason we > failed */