From b1c059a6e936197f5a07eb9e8681807d70081c76 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 16 Jun 2015 10:06:56 +0530 Subject: [PATCH] Oops, forgot to make the actual connection sockets non-blocking --- src/calibre/srv/loop.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/calibre/srv/loop.py b/src/calibre/srv/loop.py index 8368308701..742b4c7f68 100644 --- a/src/calibre/srv/loop.py +++ b/src/calibre/srv/loop.py @@ -137,10 +137,10 @@ class Connection(object): # {{{ self.socket = self.ssl_context.wrap_socket(socket, server_side=True, do_handshake_on_connect=False) self.set_state(RDWR, self.do_ssl_handshake) else: - self.ready = True self.socket = socket self.connection_ready() self.last_activity = monotonic() + self.ready = True def optimize_for_sending_packet(self): start_cork(self.socket) @@ -173,8 +173,8 @@ class Connection(object): # {{{ self.set_state(READ, self.do_ssl_handshake) except ssl.SSLWantWriteError: self.set_state(WRITE, self.do_ssl_handshake) - self.ready = True - self.connection_ready() + else: + self.connection_ready() def send(self, data): try: @@ -561,7 +561,9 @@ class ServerLoop(object): def accept(self): try: - return self.socket.accept() + sock, addr = self.socket.accept() + set_socket_inherit(sock, False), sock.setblocking(False) + return sock, addr except socket.error: return None, None