From 2d18b1e9a70fc44919fad7fb2e971e6ce24ece5a Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Fri, 22 Oct 2010 06:33:30 +0100 Subject: net.server_select: Restore real sendbuffer() before calling onconnect handler, in case onconnect sends data and the socket is still writeable (causing stack overflow into sendbuffer()/onconnect()) --- net/server_select.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'net') diff --git a/net/server_select.lua b/net/server_select.lua index c6e90d55..186ce227 100644 --- a/net/server_select.lua +++ b/net/server_select.lua @@ -853,8 +853,8 @@ local wrapclient = function( socket, ip, serverport, listeners, pattern, sslctx -- When socket is writeable, call onconnect local _sendbuffer = handler.sendbuffer; handler.sendbuffer = function () - listeners.onconnect(handler); handler.sendbuffer = _sendbuffer; + listeners.onconnect(handler); -- If there was data with the incoming packet, handle it now. if #handler:bufferqueue() > 0 then return _sendbuffer(); -- cgit v1.2.3