From patchwork Tue Aug 13 20:00:27 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mirza, Taimoor" X-Patchwork-Id: 266914 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (unknown [IPv6:2001:4830:134:3::12]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id D6F702C014A for ; Wed, 14 Aug 2013 06:03:01 +1000 (EST) Received: from localhost ([::1]:60292 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9Kny-0003jL-QP for incoming@patchwork.ozlabs.org; Tue, 13 Aug 2013 16:02:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56283) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9Knf-0003j5-Sb for qemu-devel@nongnu.org; Tue, 13 Aug 2013 16:02:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V9Kna-0000PG-G6 for qemu-devel@nongnu.org; Tue, 13 Aug 2013 16:02:39 -0400 Received: from mail-wi0-x22d.google.com ([2a00:1450:400c:c05::22d]:51023) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V9Kna-0000Oq-9y; Tue, 13 Aug 2013 16:02:34 -0400 Received: by mail-wi0-f173.google.com with SMTP id en1so1112847wid.12 for ; Tue, 13 Aug 2013 13:02:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=9Ax4Qp6DdXIF8wHJzGaaGvvyr+h0Yz+fyzBzAZY4dj4=; b=ejUheIL5H6Kys+9R+CfhuIgzQEck3kVeY4OhV472KOj9u8eDY9J2X1HtJ1tyC+TLYZ QKqXLXQcaOMgLw9oHtWDiaMxWNP3qgL0Kn5ZLjq4a17/Q4oPEaQbqbz8gDquPUIAH+BE TcgoYoiBHpeGVXTYACZwb2FIytZMU3w8c3U4jdmuhobBZqMmdnkA7t2YCgL6AZhwxIUh 5XpKQDVf/D8qxPRBEkN2SYzbPvxQuioMFGfDb8TZ6uNd9w6Sbwa3cC/NpDPuBgnCUwtl Ietcqql9qamwVDq3VVPNzua5UENyYb6NQPsHuK7Vlec4TgtS7EJA3DujROUO8DuWMaBt 1EJg== X-Received: by 10.180.211.206 with SMTP id ne14mr3834256wic.30.1376424153016; Tue, 13 Aug 2013 13:02:33 -0700 (PDT) Received: from Config226VM0.mgc.mentorg.com ([110.93.212.98]) by mx.google.com with ESMTPSA id o10sm5434128wiz.5.2013.08.13.13.02.31 for (version=TLSv1 cipher=DES-CBC3-SHA bits=168/168); Tue, 13 Aug 2013 13:02:32 -0700 (PDT) From: Taimoor To: qemu-devel@nongnu.org Date: Wed, 14 Aug 2013 01:00:27 +0500 Message-Id: <1376424027-26208-1-git-send-email-tmirza@codesourcery.com> X-Mailer: git-send-email 1.7.9.5 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::22d Cc: qemu-trivial@nongnu.org, Taimoor Mirza Subject: [Qemu-devel] [PATCH] slirp: Port redirection option behave differently on Linux and Windows X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Taimoor Mirza 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 --- 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 (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 */