From c5d12866c058ff6308b61722d9079992d9f6f82a Mon Sep 17 00:00:00 2001 From: Hubert Kario Date: Mon, 13 Nov 2023 16:07:59 +0100 Subject: [PATCH] send the first server flight in single record It's much more efficient to send messages in a single TCP packet, so do try to do that. --- tlslite/tlsconnection.py | 4 ++++ tlslite/tlsrecordlayer.py | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) 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"""