def _create_socket(self, host, port): addr = socket.getaddrinfo(host, port, socket.AF_INET, socket.SOCK_STREAM) if not addr: raise Exception("Could not translate address '%s:%s'" % (self._host, str(self._port))) server_socket = socket.socket(addr[0][0], addr[0][1], addr[0][2]) utils.closeOnExec(server_socket.fileno()) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind(addr[0][4]) server_socket.listen(5) if self._sslctx: server_socket = SSLServerSocket(raw=server_socket, certfile=self._sslctx.cert_file, keyfile=self._sslctx.key_file, ca_certs=self._sslctx.ca_cert) server_socket.setblocking(0) return server_socket