[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 0/5] Do not set SO_REUSEADDR on Windows
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v5 0/5] Do not set SO_REUSEADDR on Windows |
Date: |
Wed, 18 Sep 2013 14:42:23 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, Sep 16, 2013 at 04:23:44PM +0200, Sebastian Ottlik wrote:
> This patchset disables most uses of SO_REUSEADDR on Windows and replaces it
> with
> calls to the new function socket_set_fast_reuse. On Windows systems the
> default
> behaviour is equivalent to SO_REUSEADDR on other operating systems.
> SO_REUSEADDR
> can still be set but results in undesired behaviour in most cases. It may even
> lead to situations were system behaviour is unspecified. More information on
> this can be found at:
> http://msdn.microsoft.com/en-us/library/windows/desktop/ms740621.aspx
>
> I originally encountered this issue when accidentally launching two QEMU
> instances with identical GDB ports at the same time. In which case QEMU won't
> fail as one might expect.
>
> Note that patch #4 fails checkpatch.pl. This is intentional (see v3 changes).
>
> v5 Changes:
> - Fixed inverted silent flag on all call sites of socket_set_fast_reuse
>
> v4 Changes:
> - Added the silent flag to socket_set_fast_reuse controlling error reporting
> One location where SO_REUSEADDR was set would report errors if setting the
> option failed. Keeping the reporting code there would be somewhat unclean,
> so
> I moved it to socket_set_fast_reuse. A side effect of this was that the
> error
> reporting was added for all locations that now use socket_set_fast_reuse.
> Here
> a new flag is added to control error reporting, which means this patchset
> won't change QEMU behaviour (except for not setting SO_REUSEADDR on
> Windows).
>
> - Fixed a commit message typo
>
> - Rebased to current master (2d1fe1873a984d1c2c89ffa3d12949cafc718551).
>
> v3 Changes:
> - Fixed coding style issues.
> According to checkpatch.pl patch #4 still introduces style errors as tabs
> are
> used instead of space for some indentation. I keept the tabs to stay
> consistent with the sourrounding code, as tabs seem to be used consitently
> in
> parts (all?) of the slirp code.
>
> - Changed patch #3 to keep SO_REUSEADDR for multicast sockets on windows and
> added an explainatory comment.
>
> - Rebased to current master (94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b).
>
> v2 Changes:
>
> - Introduce a function with os specific implementation instead of using #ifdef
> I named it socket_set_fast_reuse instead of the suggested qemu_set_reuseaddr
> so the name better reflects what the function actually does.
>
> gdbstub.c | 6 ++----
> include/qemu/sockets.h | 1 +
> net/socket.c | 18 ++++++++++--------
> slirp/misc.c | 3 +--
> slirp/socket.c | 4 +---
> slirp/tcp_subr.c | 6 ++----
> slirp/udp.c | 4 ++--
> util/oslib-posix.c | 14 ++++++++++++++
> util/oslib-win32.c | 10 ++++++++++
> util/qemu-sockets.c | 6 +++---
> 10 files changed, 46 insertions(+), 26 deletions(-)
>
> util: add socket_set_fast_reuse function which will
> gdbstub: call socket_set_fast_reuse instead of
> net: call socket_set_fast_reuse instead of setting
> slirp: call socket_set_fast_reuse instead of setting
> util: call socket_set_fast_reuse instead of setting
>
Reviewed-by: Stefan Hajnoczi <address@hidden>
- [Qemu-devel] [PATCH v5 0/5] Do not set SO_REUSEADDR on Windows, Sebastian Ottlik, 2013/09/16
- [Qemu-devel] [PATCH v5 3/5] net: call socket_set_fast_reuse instead of setting SO_REUSEADDR, Sebastian Ottlik, 2013/09/16
- [Qemu-devel] [PATCH v5 4/5] slirp: call socket_set_fast_reuse instead of setting SO_REUSEADDR, Sebastian Ottlik, 2013/09/16
- [Qemu-devel] [PATCH v5 2/5] gdbstub: call socket_set_fast_reuse instead of setting SO_REUSEADDR, Sebastian Ottlik, 2013/09/16
- [Qemu-devel] [PATCH v5 5/5] util: call socket_set_fast_reuse instead of setting SO_REUSEADDR, Sebastian Ottlik, 2013/09/16
- [Qemu-devel] [PATCH v5 1/5] util: add socket_set_fast_reuse function which will replace setting SO_REUSEADDR, Sebastian Ottlik, 2013/09/16
- Re: [Qemu-devel] [PATCH v5 0/5] Do not set SO_REUSEADDR on Windows, Paolo Bonzini, 2013/09/16
- Re: [Qemu-devel] [PATCH v5 0/5] Do not set SO_REUSEADDR on Windows,
Stefan Hajnoczi <=