From: Stefan Weil <sw@weilnetz.de>
To: Sebastian Ottlik <ottlik@fzi.de>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Anthony Liguori <aliguori@us.ibm.com>,
Jan Kiszka <jan.kiszka@siemens.com>,
QEMU Developers <qemu-devel@nongnu.org>,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH RFC] Do not set SO_REUSEADDR on Windows
Date: Wed, 04 Sep 2013 19:31:05 +0200 [thread overview]
Message-ID: <52276E59.8090909@weilnetz.de> (raw)
In-Reply-To: <CAFEAcA_9_X_V7uzMGtuHMBLpsDwHvrA+zWS5VJvDbEm3oAtB=g@mail.gmail.com>
Am 04.09.2013 16:41, schrieb Peter Maydell:
> On 4 September 2013 15:27, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Il 04/09/2013 16:22, Sebastian Ottlik ha scritto:
>>> This patchset disabels all use of SO_REUSEADDR on Windows. On
>>> Windows systems the default behavior is equivalent to SO_REUSEADDR
>>> on other operating systems. SO_REUSEADDR can still be set but
>>> results in undesired bahvior instead. It may even lead to situations
>>> were system behavior is unspecified. More information on this can be
>>> found at:
>>> http://msdn.microsoft.com/en-us/library/windows/desktop/ms740621.aspx
> Yep. The issue's come up before:
> https://lists.nongnu.org/archive/html/qemu-devel/2011-03/msg01794.html
> but I guess nobody ever got round to writing the patch.
>> Can you make a different patch that introduces a new function
>> qemu_set_reuseaddr is include/qemu/sockets.h & util/oslib-*, and
>> makes it a stub for Windows?
> Yes please, and include a comment in the Windows stub explaining why
> it does nothing (with the links to MSDN docs) because otherwise it's
> pretty unobvious and an invitation for somebody to incorrectly
> reinstate the brokenness. -- PMM
May I suggest a slightly different approach? Instead of a new function
qemu_set_reuseaddr I'd prefer extending the existing qemu_setsockopt.
These steps / patches are required:
1. Move *sock* lines from include/qemu-common.h to include/qemu/sockets.h
and addqemu/sockets.h to the include statements in bt-host.c and
linux-user/syscall.c (I hope this list is complete).
This step is needed because we don't want to add socket includes to
qemu-common.h (which would be needed when we add a function prototype
for qemu_setsockopt).
2. Replace the Win32 defines for qemu_getsockopt, qemu_setsockopt by
function
prototypes (see Linux getsockopt, setsockopt for reference) and
implement both functions in util/oslib-win32.c. Ignore SO_REUSEADDR in
qemu_setsockopt.
Using these two functions allows easy implementation of OS specific hacks
(we might need more in the future).
3. Revert commit efcb7e45290ecc8633f7c5bdf02ac86f6289fa7d. It is no longer
needed after patch 2.
Regards,
Stefan
next prev parent reply other threads:[~2013-09-04 17:31 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-04 14:22 [Qemu-devel] [PATCH RFC] Do not set SO_REUSEADDR on Windows Sebastian Ottlik
2013-09-04 14:22 ` [Qemu-devel] [PATCH RFC 1/4] gdbstub: do " Sebastian Ottlik
2013-09-04 14:22 ` [Qemu-devel] [PATCH RFC 2/4] net: " Sebastian Ottlik
2013-09-04 14:22 ` [Qemu-devel] [PATCH RFC 3/4] slirp: " Sebastian Ottlik
2013-09-04 14:22 ` [Qemu-devel] [PATCH RFC 4/4] util: " Sebastian Ottlik
2013-09-04 14:27 ` [Qemu-devel] [PATCH RFC] Do " Paolo Bonzini
2013-09-04 14:34 ` Jan Kiszka
2013-09-05 7:36 ` Michael Tokarev
2013-09-04 14:35 ` Sebastian Ottlik
2013-09-04 14:41 ` Peter Maydell
2013-09-04 17:31 ` Stefan Weil [this message]
2013-09-04 17:40 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52276E59.8090909@weilnetz.de \
--to=sw@weilnetz.de \
--cc=aliguori@us.ibm.com \
--cc=jan.kiszka@siemens.com \
--cc=ottlik@fzi.de \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).