net.server_epoll: Use only fatal "write" timeout during TLS negotiation
authorKim Alvefur <zash@zash.se>
Fri, 16 Jul 2021 17:10:09 +0200
changeset 11703 1275dad71afd
parent 11702 9a2a98621c73
child 11704 79d30de13fdb
net.server_epoll: Use only fatal "write" timeout during TLS negotiation Only real difference between the read and write timeouts is that the former has a callback that allows the higher levels to keep the connection alive, while hitting the later is immediately fatal. We want the later behavior for TLS negotiation.
net/server_epoll.lua
--- a/net/server_epoll.lua	Fri Jul 16 15:40:08 2021 +0200
+++ b/net/server_epoll.lua	Fri Jul 16 17:10:09 2021 +0200
@@ -600,7 +600,7 @@
 		self.onwritable = interface.inittls;
 		self.onreadable = interface.inittls;
 		self:set(true, true);
-		self:setreadtimeout(cfg.ssl_handshake_timeout);
+		self:setreadtimeout(false);
 		self:setwritetimeout(cfg.ssl_handshake_timeout);
 		self:debug("Prepared to start TLS");
 	end
@@ -651,7 +651,7 @@
 	if now then
 		return self:tlshandshake()
 	end
-	self:setreadtimeout(cfg.ssl_handshake_timeout);
+	self:setreadtimeout(false);
 	self:setwritetimeout(cfg.ssl_handshake_timeout);
 	self:set(true, true);
 end
@@ -677,7 +677,7 @@
 	elseif err == "wantread" then
 		self:noise("TLS handshake to wait until readable");
 		self:set(true, false);
-		self:setreadtimeout(cfg.ssl_handshake_timeout);
+		self:setwritetimeout(cfg.ssl_handshake_timeout);
 	elseif err == "wantwrite" then
 		self:noise("TLS handshake to wait until writable");
 		self:set(false, true);