diff options
author | Alexey Shchepin <alexey@process-one.net> | 2008-12-12 13:08:00 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2008-12-12 13:08:00 +0000 |
commit | 620cbc765c030f8270f6feb51b5d21b524ad74b7 (patch) | |
tree | e5902814a898b9b5e127627c0cb4d348bf51b47b /src | |
parent | fix typo bug injected in r1712 (diff) |
* src/ejabberd_c2s.erl: Bugfix in "from" attribute checking
SVN Revision: 1727
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_c2s.erl | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 24621899..7fcff5b4 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1983,26 +1983,20 @@ is_ip_blacklisted({IP,_Port}) -> check_from(El, FromJID) -> case xml:get_tag_attr("from", El) of false -> - jlib:replace_from(FromJID, El); - {value, JIDElString} -> - JIDEl = jlib:string_to_jid(JIDElString), - case JIDEl#jid.lresource of - "" -> - %% Matching JID: The stanza is ok - if JIDEl#jid.luser == FromJID#jid.luser andalso - JIDEl#jid.lserver == FromJID#jid.lserver -> + El; + {value, SJID} -> + JID = jlib:string_to_jid(SJID), + case JID of + error -> + 'invalid-from'; + #jid{} -> + if + (JID#jid.luser == FromJID#jid.luser) and + (JID#jid.lserver == FromJID#jid.lserver) and + (JID#jid.lresource == FromJID#jid.lresource) -> El; - true -> + true -> 'invalid-from' - end; - _ -> - %% Matching JID: The stanza is ok - if JIDEl#jid.luser == FromJID#jid.luser andalso - JIDEl#jid.lserver == FromJID#jid.lserver andalso - JIDEl#jid.lresource == FromJID#jid.lresource -> - El; - true -> - 'invalid-from' end end end. |