]> granicus.if.org Git - ejabberd/commitdiff
* src/ejabberd_c2s.erl: Remove useless comment and port Alexey fix to 2.0.x branch.
authorMickaël Rémond <mickael.remond@process-one.net>
Mon, 29 Dec 2008 12:06:34 +0000 (12:06 +0000)
committerMickaël Rémond <mickael.remond@process-one.net>
Mon, 29 Dec 2008 12:06:34 +0000 (12:06 +0000)
SVN Revision: 1764

ChangeLog
src/ejabberd_c2s.erl

index b7e5aa176215f501776b693aaf9464acd4b2849e..b23da4198482a2bd1b4dae96f8c3458292c36896 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-29  Alexey Shchepin  <alexey@process-one.net>
+
+       * src/ejabberd_c2s.erl: Bugfix in "from" attribute checking
+
 2008-12-28  Mickael Remond  <mremond@process-one.net>
 
        * src/ejabberd_c2s.erl: Add resource to the from packet attribute
index 44b05f51e34c944decda03d95598fc77802de84d..3c5ea534f69f6a6879cb0a1ab61b19e7e4fc0004 100644 (file)
@@ -1972,33 +1972,24 @@ 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 ->
-                           %% We force the resource on the from attribute in the packet.
-                           %% This is strictly needed only for IQ (to
-                           %% reply to the client), but I do not see
-                           %% any good reason for now not to do it on
-                           %% all packets.
-                           %% Need to be changed to support multiple
-                           %% resource binding per connection.
-                           jlib:replace_from(FromJID, El);
-                      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;
+       {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;
+                       (JID#jid.luser == FromJID#jid.luser) and
+                       (JID#jid.lserver == FromJID#jid.lserver) and
+                       (JID#jid.lresource == "") ->
                            El;
-                      true ->
-                          'invalid-from'
+                       true ->
+                           'invalid-from'
                    end
            end
     end.