mod_admin_adhoc: Implement global module reloading
[prosody.git] / plugins / mod_s2s / mod_s2s.lua
index 788a64af606e3f20837d496a3635e1b1ee5aa303..15c89ceddface713754e7a0761e74301e2831b03 100644 (file)
@@ -429,6 +429,8 @@ local function initialize_session(session)
        add_task(connect_timeout, function ()
                if session.type == "s2sin" or session.type == "s2sout" then
                        return; -- Ok, we're connected
+               elseif session.type == "s2s_destroyed" then
+                       return; -- Session already destroyed
                end
                -- Not connected, need to close session and clean up
                (session.log or log)("debug", "Destroying incomplete session %s->%s due to inactivity",
@@ -506,6 +508,15 @@ end
 
 s2sout.set_listener(listener);
 
+module:hook("server-stopping", function(event)
+       local reason = event.reason;
+       for _, session in pairs(sessions) do
+               session:close{ condition = "system-shutdown", text = reason };
+       end
+end,500);
+
+
+
 module:provides("net", {
        name = "s2s";
        listener = listener;