On 2013-08-15 21:25, Taimoor wrote: > 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> > --- > Changes in v3: > - Removed extra commit > > Changes in v2: > - Changed #ifdef to #ifndef as SO_REUSEADDR should not be set in case of > Windows. > > slirp/socket.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/slirp/socket.c b/slirp/socket.c > index 8e8819c..25d60e7 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) || > +#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 */ >
Stefan, can you ack this? Then I would pick it up for the slirp queue. Thanks, Jan -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux