Merge 0.10->trunk
[prosody.git] / plugins / mod_s2s / mod_s2s.lua
index 5afb958c4462e0270c73041bbdafe5f794f75011..d27f50af33a88e243e2533f14a84cedccda5652b 100644 (file)
@@ -366,7 +366,7 @@ function stream_callbacks.streamopened(session, attr)
                        if to then
                                hosts[to].events.fire_event("s2s-stream-features", { origin = session, features = features });
                        else
-                               (session.log or log)("warn", "No 'to' on stream header from %s means we can't offer any features", from or "unknown host");
+                               (session.log or log)("warn", "No 'to' on stream header from %s means we can't offer any features", from or session.ip or "unknown host");
                        end
 
                        log("debug", "Sending stream features: %s", tostring(features));
@@ -467,7 +467,7 @@ local function session_close(session, reason, remote_reason)
                end
                if reason then -- nil == no err, initiated by us, false == initiated by remote
                        if type(reason) == "string" then -- assume stream error
-                               log("debug", "Disconnecting %s[%s], <stream:error> is: %s", session.host or "(unknown host)", session.type, reason);
+                               log("debug", "Disconnecting %s[%s], <stream:error> is: %s", session.host or session.ip or "(unknown host)", session.type, reason);
                                session.sends2s(st.stanza("stream:error"):tag(reason, {xmlns = 'urn:ietf:params:xml:ns:xmpp-streams' }));
                        elseif type(reason) == "table" then
                                if reason.condition then
@@ -478,7 +478,7 @@ local function session_close(session, reason, remote_reason)
                                        if reason.extra then
                                                stanza:add_child(reason.extra);
                                        end
-                                       log("debug", "Disconnecting %s[%s], <stream:error> is: %s", session.host or "(unknown host)", session.type, tostring(stanza));
+                                       log("debug", "Disconnecting %s[%s], <stream:error> is: %s", session.host or session.ip or "(unknown host)", session.type, tostring(stanza));
                                        session.sends2s(stanza);
                                elseif reason.name then -- a stanza
                                        log("debug", "Disconnecting %s->%s[%s], <stream:error> is: %s", session.from_host or "(unknown host)", session.to_host or "(unknown host)", session.type, tostring(reason));
@@ -510,24 +510,6 @@ local function session_close(session, reason, remote_reason)
        end
 end
 
-function session_open_stream(session, from, to)
-       local attr = {
-               ["xmlns:stream"] = 'http://etherx.jabber.org/streams',
-               xmlns = 'jabber:server',
-               version = session.version and (session.version > 0 and "1.0" or nil),
-               ["xml:lang"] = 'en',
-               id = session.streamid,
-               from = from, to = to,
-       }
-       if not from or (hosts[from] and hosts[from].modules.dialback) then
-               attr["xmlns:db"] = 'jabber:server:dialback';
-       end
-
-       session.sends2s("<?xml version='1.0'?>");
-       session.sends2s(st.stanza("stream:stream", attr):top_tag());
-       return true;
-end
-
 -- Session initialization logic shared by incoming and outgoing
 local function initialize_session(session)
        local stream = new_xmpp_stream(session, stream_callbacks);
@@ -540,8 +522,6 @@ local function initialize_session(session)
                session.stream:reset();
        end
 
-       session.open_stream = session_open_stream;
-
        local filter = session.filter;
        function session.data(data)
                data = filter("bytes/in", data);
@@ -660,7 +640,7 @@ function check_auth_policy(event)
        end
 
        if must_secure and (session.cert_chain_status ~= "valid" or session.cert_identity_status ~= "valid") then
-               module:log("warn", "Forbidding insecure connection to/from %s", host);
+               module:log("warn", "Forbidding insecure connection to/from %s", host or session.ip or "(unknown host)");
                if session.direction == "incoming" then
                        session:close({ condition = "not-authorized", text = "Your server's certificate is invalid, expired, or not trusted by "..session.to_host });
                else -- Close outgoing connections without warning