core/stanza_router.lua

changeset 1367
e4d660e58dfc
parent 1358
71fbf8a52dcf
child 1368
0cb70958b8fb
equal deleted inserted replaced
1366:54b5121b6c83 1367:e4d660e58dfc
46 origin.send(st.error_reply(stanza, "modify", "bad-request")); 46 origin.send(st.error_reply(stanza, "modify", "bad-request"));
47 return; 47 return;
48 end 48 end
49 end 49 end
50 50
51 if origin.type == "c2s" and not origin.full_jid
52 and not(stanza.name == "iq" and stanza.attr.type == "set" and stanza.tags[1] and stanza.tags[1].name == "bind"
53 and stanza.tags[1].attr.xmlns == "urn:ietf:params:xml:ns:xmpp-bind") then
54 -- authenticated client isn't bound and current stanza is not a bind request
55 origin.send(st.error_reply(stanza, "auth", "not-authorized")); -- FIXME maybe allow stanzas to account or server
56 end
57
58 -- TODO also, stanzas should be returned to their original state before the function ends
59 if origin.type == "c2s" then 51 if origin.type == "c2s" then
52 if not origin.full_jid
53 and not(stanza.name == "iq" and stanza.attr.type == "set" and stanza.tags[1] and stanza.tags[1].name == "bind"
54 and stanza.tags[1].attr.xmlns == "urn:ietf:params:xml:ns:xmpp-bind") then
55 -- authenticated client isn't bound and current stanza is not a bind request
56 origin.send(st.error_reply(stanza, "auth", "not-authorized")); -- FIXME maybe allow stanzas to account or server
57 end
58
59 -- TODO also, stanzas should be returned to their original state before the function ends
60 stanza.attr.from = origin.full_jid; 60 stanza.attr.from = origin.full_jid;
61 end 61 end
62 local to, xmlns = stanza.attr.to, stanza.attr.xmlns; 62 local to, xmlns = stanza.attr.to, stanza.attr.xmlns;
63 local from = stanza.attr.from; 63 local from = stanza.attr.from;
64 local node, host, resource; 64 local node, host, resource;

mercurial