diff --git a/tlslite/tlsconnection.py b/tlslite/tlsconnection.py index a6e01928..ff97c840 100644 --- a/tlslite/tlsconnection.py +++ b/tlslite/tlsconnection.py @@ -3009,6 +3009,7 @@ def _serverTLS13Handshake(self, settings, clientHello, cipherSuite, clientHello.session_id, cipherSuite, extensions=sh_extensions) + self.sock.buffer_writes = True msgs = [] msgs.append(serverHello) if not self._ccs_sent and clientHello.session_id: @@ -3195,6 +3196,9 @@ def _serverTLS13Handshake(self, settings, clientHello, cipherSuite, for result in self._queue_flush(): yield result + self.sock.flush() + self.sock.buffer_writes = False + self._changeReadState() # Master secret diff --git a/tlslite/tlsrecordlayer.py b/tlslite/tlsrecordlayer.py index aac1545a..04716a57 100644 --- a/tlslite/tlsrecordlayer.py +++ b/tlslite/tlsrecordlayer.py @@ -952,14 +952,11 @@ def _sendError(self, alertDescription, errorStr=None): def _sendMsgs(self, msgs): # send messages together in a single TCP write - self.sock.buffer_writes = True randomizeFirstBlock = True for msg in msgs: for result in self._sendMsg(msg, randomizeFirstBlock): yield result randomizeFirstBlock = True - self.sock.flush() - self.sock.buffer_writes = False def _sendMsg(self, msg, randomizeFirstBlock=True, update_hashes=True): """Fragment and send message through socket"""