core.s2smanager: Don't recurse CNAMEs infinitely :)
[prosody.git] / net / server.lua
index 65567d158df5666e47752ed79ca41fdb5a97cff3..971ea5530695f191cfeff18dcc1c9b3c93eae3fe 100644 (file)
@@ -246,7 +246,7 @@ wrapserver = function( listeners, socket, ip, serverport, pattern, sslctx, maxco
         _socketlist[ socket ] = nil\r
         handler = nil\r
         socket = nil\r
-        --mem_free( )\r
+        mem_free( )\r
         out_put "server.lua: closed server handler and removed sockets from list"\r
     end\r
     handler.ip = function( )\r
@@ -363,6 +363,7 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
                 send( socket, table_concat( bufferqueue, "", 1, bufferqueuelen ), 1, bufferlen )    -- forced send\r
             end\r
         end\r
+        if not handler then return true; end\r
         _ = shutdown and shutdown( socket )\r
         socket:close( )\r
         _sendlistlen = removesocket( _sendlist, socket, _sendlistlen )\r
@@ -373,7 +374,7 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
             handler = nil\r
         end\r
         socket = nil\r
-        --mem_free( )\r
+        mem_free( )\r
        if server then\r
                server.remove( )\r
        end\r
@@ -565,7 +566,7 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
             socket, err = ssl_wrap( socket, sslctx )    -- wrap socket\r
             if err then\r
                 out_put( "server.lua: ssl error: ", tostring(err) )\r
-                --mem_free( )\r
+                mem_free( )\r
                 return nil, nil, err    -- fatal error\r
             end\r
             socket:settimeout( 0 )\r
@@ -670,7 +671,7 @@ closesocket = function( socket )
     _readlistlen = removesocket( _readlist, socket, _readlistlen )\r
     _socketlist[ socket ] = nil\r
     socket:close( )\r
-    --mem_free( )\r
+    mem_free( )\r
 end\r
 \r
 ----------------------------------// PUBLIC //--\r
@@ -739,7 +740,7 @@ closeall = function( )
     _sendlist = { }\r
     _timerlist = { }\r
     _socketlist = { }\r
-    --mem_free( )\r
+    mem_free( )\r
 end\r
 \r
 getsettings = function( )\r