diff -r bc88690df059 Lib/socketserver.py --- a/Lib/socketserver.py Tue Jan 29 13:35:00 2013 +0100 +++ b/Lib/socketserver.py Tue Jan 29 14:02:15 2013 +0100 @@ -424,8 +424,12 @@ class TCPServer(BaseServer): def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True): """Constructor. May be extended, do not override.""" BaseServer.__init__(self, server_address, RequestHandlerClass) + + # [Bug #1222790] set close-on-exec flag; if a method spawns a + # subprocess, the subprocess shouldn't have the listening socket open. self.socket = socket.socket(self.address_family, - self.socket_type) + self.socket_type, + cloexec=True) if bind_and_activate: self.server_bind() self.server_activate() diff -r bc88690df059 Lib/xmlrpc/server.py --- a/Lib/xmlrpc/server.py Tue Jan 29 13:35:00 2013 +0100 +++ b/Lib/xmlrpc/server.py Tue Jan 29 14:02:15 2013 +0100 @@ -584,12 +584,6 @@ class SimpleXMLRPCServer(socketserver.TC SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding, use_builtin_types) socketserver.TCPServer.__init__(self, addr, requestHandler, bind_and_activate) - # [Bug #1222790] If possible, set close-on-exec flag; if a - # method spawns a subprocess, the subprocess shouldn't have - # the listening socket open. - if hasattr(os, 'set_cloexec'): - os.set_cloexec(self.fileno()) - class MultiPathXMLRPCServer(SimpleXMLRPCServer): """Multipath XML-RPC Server This specialization of SimpleXMLRPCServer allows the user to create