socketserver.TCPServer provides the following defaults: allow_reuse_address = False request_queue_size = 5 Proposal is to: * have "allow_reuse_address = True" on POSIX in order to immediately reuse previous sockets which were bound on the same address and remained in TIME_WAIT state * have "request_queue_size = None" so that it's up to socket.listen() to choose a default reasonable value (usually 128)
Update: because "request_queue_size" is passed to server_activate() method which can be subclassed, a better default for not breaking backward compatibility is 0 (not None).
I'm not sure that changing the default value for "reuse address" justifies breaking backwards compatibility like this. Admittedly, I'm not an expert on networking, so perhaps there's a good reason that I'm unaware of. As for the queue size, passing 0 to socket.listen() does seem like a more reasonable default than the rather arbitrary value of 5. Again, it's arguable whether it's worth changing this given that it has been like this for a long time, but in this case at least the potential for harm seems negligible.