Author neologix
Recipients BreamoreBoy, gearb0x, jnoller, neologix, news1234, pitrou, python-dev
Date 2012-02-05.16:55:01
SpamBayes Score 2.61271e-06
Marked as misclassified No
Message-id <CAH_1eM3eq87=BtaLTr02xh8JnOGt-WThMvd9tRfFt_K8yMPq7A@mail.gmail.com>
In-reply-to <1325610269.85.0.498899743552.issue8184@psf.upfronthosting.co.za>
Content
> However, let me point out the following sentence:
> “Ports without SO_EXCLUSIVEADDRUSE set may be reused as soon as the socket on which bind was previously called is closed.”
>
> ...which seems to suggest we shouldn't use SO_REUSEADDR under Windows, since Windows sockets appear to have the Unix SO_REUSEADDR semantics by default.

Actually, it seems that even though the documentation doesn't mention
sockets in TIME_WAIT state, SO_REUSEADDR is actually required on
Windows:
http://twistedmatrix.com/trac/ticket/1151#comment:18

So the proper solution is the one adopted by support.bind_port(),
SO_REUSEADDR + SO_EXCLUSIVEADDRUSE.

Since Windows semantics is different (I'd rather say broken) and
SO_REUSEADDR is currently mis-used throughout the stdlib, what do you
think of adding a set_reuse() method to socket that would do the right
thing?
History
Date User Action Args
2012-02-05 16:55:02neologixsetrecipients: + neologix, pitrou, jnoller, news1234, BreamoreBoy, python-dev, gearb0x
2012-02-05 16:55:02neologixlinkissue8184 messages
2012-02-05 16:55:01neologixcreate