Merge 0.9->0.10
authorMatthew Wild <mwild1@gmail.com>
Sun, 12 Jan 2014 11:19:37 +0000 (06:19 -0500)
committerMatthew Wild <mwild1@gmail.com>
Sun, 12 Jan 2014 11:19:37 +0000 (06:19 -0500)
plugins/mod_s2s/mod_s2s.lua
tools/migration/migrator/prosody_files.lua

index 5afb958c4462e0270c73041bbdafe5f794f75011..5531ca3e1b4b90f4c71e70ffe16588b3314048e4 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));
@@ -660,7 +660,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
index 4462fb3e91747f253000e2118ac5f53c626757a6..c9367d9c6754707cd6a96ec1fe3d2755b8850ebd 100644 (file)
@@ -13,6 +13,7 @@ local next = next;
 local pairs = pairs;
 local json = require "util.json";
 local os_getenv = os.getenv;
+local error = error;
 
 prosody = {};
 local dm = require "util.datamanager"
@@ -95,15 +96,18 @@ function reader(input)
        local iter = mtools.sorted {
                reader = function()
                        local x = iter();
-                       if x then
+                       while x do
                                dm.set_data_path(path);
                                local err;
                                x.data, err = dm.load(x.user, x.host, x.store);
                                if x.data == nil and err then
-                                       error(("Error loading data at path %s for %s@%s (%s store)")
-                                               :format(path, x.user or "<nil>", x.host or "<nil>", x.store or "<nil>"), 0);
+                                       local p = dm.getpath(x.user, x.host, x.store);
+                                       print(("Error loading data at path %s for %s@%s (%s store): %s")
+                                               :format(p, x.user or "<nil>", x.host or "<nil>", x.store or "<nil>", err or "<nil>"));
+                               else
+                                       return x;
                                end
-                               return x;
+                               x = iter();
                        end
                end;
                sorter = function(a, b)