configmanager: Add parsers() method to return an array of supported config formats
[prosody.git] / core / stanza_router.lua
index ef4f369575776e0b6a0303c936290e3d229a3232..ad312b850ef16d4dbe2ae7e70c5ba2b92fd9c6b2 100644 (file)
@@ -29,13 +29,10 @@ function core_process_stanza(origin, stanza)
        -- TODO verify validity of stanza (as well as JID validity)
        if stanza.attr.type == "error" and #stanza.tags == 0 then return; end -- TODO invalid stanza, log
        if stanza.name == "iq" then
-               local can_reply = stanza.attr.type == "set" or stanza.attr.type == "get"
-               local missing_id = not stanza.attr.id;
-               if can_reply and (#stanza.tags ~= 1 or missing_id) then
+               if not stanza.attr.id then stanza.attr.id = ""; end -- COMPAT Jabiru doesn't send the id attribute on roster requests
+               if (stanza.attr.type == "set" or stanza.attr.type == "get") and (#stanza.tags ~= 1) then
                        origin.send(st.error_reply(stanza, "modify", "bad-request"));
                        return;
-               elseif missing_id then
-                       return;
                end
        end
 
@@ -183,7 +180,7 @@ function core_route_stanza(origin, stanza)
                        local xmlns = stanza.attr.xmlns;
                        --stanza.attr.xmlns = "jabber:server";
                        stanza.attr.xmlns = nil;
-                       log("debug", "sending s2s stanza: %s", tostring(stanza));
+                       log("debug", "sending s2s stanza: %s", tostring(stanza.top_tag and stanza:top_tag()) or stanza);
                        send_s2s(origin.host, host, stanza); -- TODO handle remote routing errors
                        stanza.attr.xmlns = xmlns; -- reset
                else