mod_saslauth: Add sasl_backend config parameter
[prosody.git] / net / server_event.lua
index 6ef0f5b17dff901f9c4693a4359c501d27cc2674..53198a128d34c6acf4b0d6fb692c9da4c8b6bffa 100644 (file)
@@ -44,8 +44,8 @@ local tostring = use "tostring"
 local coroutine = use "coroutine"
 local setmetatable = use "setmetatable"
 
-local ssl = use "ssl"
-local socket = use "socket"
+local ssl = use "ssl" or require "ssl"
+local socket = use "socket" or require "socket"
 
 local log = require ("util.logger").init("socket")
 
@@ -352,6 +352,10 @@ do
                return self._port
        end
        
+       function interface_mt:serverport()
+               return self._serverport
+       end
+       
        function interface_mt:ip()
                return self._ip
        end
@@ -464,6 +468,7 @@ do
                        
                        -- Properties
                        _ip = ip, _port = port, _server = server, _pattern = pattern,
+                       _serverport = (server and server:port() or nil),
                        _sslctx = sslctx; -- parameters
                        _usingssl = false;  -- client is using ssl;
                }
@@ -618,6 +623,9 @@ do
                        readcallback = false; -- read event callback
                        fatalerror = false; -- error message
                        nointerface = true;  -- lock/unlock parameter
+                       
+                       _ip = addr, _port = port, _pattern = pattern,
+                       _sslctx = sslctx;
                }
                interface.id = tostring(interface):match("%x+$");
                interface.readcallback = function( event )  -- server handler, called on incoming connections
@@ -760,12 +768,24 @@ end )( )
 
 local closeallservers = function( arg )
        for _, item in ipairs( interfacelist( ) ) do
-               if item "type" == "server" then
-                       item( "close", arg )
+               if item.type == "server" then
+                       item:close( arg )
                end
        end
 end
 
+local function setquitting(yes)
+       if yes then
+                -- Quit now
+                closeallservers();
+                base:loopexit();
+       end
+end
+
+function get_backend()
+       return base:method();
+end
+
 return {
 
        cfg = cfg,
@@ -777,7 +797,9 @@ return {
        addserver = addserver,
        addclient = addclient,
        wrapclient = wrapclient,
-       closeallservers = closeallservers,
+       setquitting = setquitting,
+       closeall = closeallservers,
+       get_backend = get_backend,
 
        __NAME = SCRIPT_NAME,
        __DATE = LAST_MODIFIED,