ejabberdsql2prosody: Allow for multiple INSERTs to the same table
[prosody.git] / net / server.lua
index 12502412f29a31ce7df2fe493d89de9ab2b50901..6fe72712ae26e5f7700ff1275ade476132886f4d 100644 (file)
@@ -1,19 +1,9 @@
--- Prosody IM
--- Copyright (C) 2008-2009 Matthew Wild
--- Copyright (C) 2008-2009 Waqas Hussain
--- 
--- This project is MIT/X11 licensed. Please see the
--- COPYING file in the source package for more information.
---
-
---[[\r
-\r
-        server.lua by blastbeat\r
-\r
-        - this script contains the server loop of the program\r
-        - other scripts can reg a server here\r
-\r
-]]--\r
+-- \r
+-- server.lua by blastbeat of the luadch project\r
+-- Re-used here under the MIT/X Consortium License\r
+-- \r
+-- Modifications (C) 2008-2009 Matthew Wild, Waqas Hussain\r
+--\r
 \r
 -- // wrapping luadch stuff // --\r
 \r
@@ -182,22 +172,30 @@ wrapserver = function( listeners, socket, ip, serverport, pattern, sslctx, maxco
     local ssl = false\r
 \r
     if sslctx then\r
+        ssl = true\r
         if not ssl_newcontext then\r
-            return nil, "luasec not found"\r
+            out_error "luasec not found"\r
+            ssl = false\r
         end\r
         if type( sslctx ) ~= "table" then\r
             out_error "server.lua: wrong server sslctx"\r
-            return nil, "wrong server sslctx"\r
+            ssl = false\r
         end\r
         sslctx, err = ssl_newcontext( sslctx )\r
         if not sslctx then\r
             err = err or "wrong sslctx parameters"\r
             out_error( "server.lua: ", err )\r
-            return nil, err\r
+            ssl = false\r
         end\r
-        ssl = true\r
-    else\r
-       out_put("server.lua: ", "ssl not enabled on ", serverport);\r
+    end\r
+    if not ssl then\r
+      sslctx = false;\r
+      if startssl then\r
+         out_error( "server.lua: Cannot start ssl on port: ", serverport )\r
+         return nil, "Cannot start ssl,  see log for details"\r
+       else\r
+         out_put("server.lua: ", "ssl not enabled on ", serverport);\r
+       end\r
     end\r
 \r
     local accept = socket.accept\r
@@ -546,7 +544,8 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
             socket:settimeout( 0 )\r
             handler.readbuffer = handshake\r
             handler.sendbuffer = handshake\r
-            if not socket then   -- do handshake\r
+            handshake( socket ) -- do handshake\r
+            if not socket then\r
                 return nil, nil, "ssl handshake failed";\r
             end\r
         else\r
@@ -696,6 +695,7 @@ removeserver = function( port )
         return nil, "no server found on port '" .. tostring( port ) "'"\r
     end\r
     handler.close( )\r
+    _server[ port ] = nil\r
     return true\r
 end\r
 \r