diff --git a/tlslite/tlsconnection.py b/tlslite/tlsconnection.py index 582097a7..d8cd7033 100644 --- a/tlslite/tlsconnection.py +++ b/tlslite/tlsconnection.py @@ -2746,6 +2746,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: @@ -2896,6 +2897,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 0cd31f28..20d8951e 100644 --- a/tlslite/tlsrecordlayer.py +++ b/tlslite/tlsrecordlayer.py @@ -902,14 +902,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"""