39 if origin.type == "c2s" and stanza.attr.xmlns == "jabber:client" then |
39 if origin.type == "c2s" and stanza.attr.xmlns == "jabber:client" then |
40 if not origin.full_jid |
40 if not origin.full_jid |
41 and not(stanza.name == "iq" and stanza.attr.type == "set" and stanza.tags[1] and stanza.tags[1].name == "bind" |
41 and not(stanza.name == "iq" and stanza.attr.type == "set" and stanza.tags[1] and stanza.tags[1].name == "bind" |
42 and stanza.tags[1].attr.xmlns == "urn:ietf:params:xml:ns:xmpp-bind") then |
42 and stanza.tags[1].attr.xmlns == "urn:ietf:params:xml:ns:xmpp-bind") then |
43 -- authenticated client isn't bound and current stanza is not a bind request |
43 -- authenticated client isn't bound and current stanza is not a bind request |
44 origin.send(st.error_reply(stanza, "auth", "not-authorized")); -- FIXME maybe allow stanzas to account or server |
44 if stanza.attr.type ~= "result" and stanza.attr.type ~= "error" then |
|
45 origin.send(st.error_reply(stanza, "auth", "not-authorized")); -- FIXME maybe allow stanzas to account or server |
|
46 end |
45 return; |
47 return; |
46 end |
48 end |
47 |
49 |
48 -- TODO also, stanzas should be returned to their original state before the function ends |
50 -- TODO also, stanzas should be returned to their original state before the function ends |
49 stanza.attr.from = origin.full_jid; |
51 stanza.attr.from = origin.full_jid; |