]> granicus.if.org Git - ejabberd/commitdiff
* src/ejabberd_s2s_out.erl: Bugfix
authorAlexey Shchepin <alexey@process-one.net>
Sun, 25 Nov 2007 16:14:32 +0000 (16:14 +0000)
committerAlexey Shchepin <alexey@process-one.net>
Sun, 25 Nov 2007 16:14:32 +0000 (16:14 +0000)
SVN Revision: 976

ChangeLog
src/ejabberd_s2s_out.erl

index 105faa43a550473264ca5e88c38cc89de8f5c1b7..cdca2d83fc671a4ac1645fae42963d1a23b37a8a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2007-11-25  Alexey Shchepin  <alexey@process-one.net>
 
+       * src/ejabberd_s2s_out.erl: Bugfix
+
        * src/ejabberd_sm.erl: Optimized check_max_sessions (thanks to
        Christophe Romain)
 
index 8e47e53128e2618ab04008e633d8de13996b949f..04cff48050b7fc5a3a7f888c5c461600285b459f 100644 (file)
@@ -101,7 +101,7 @@ start(From, Host, Type) ->
 
 start_link(From, Host, Type) ->
     p1_fsm:start_link(ejabberd_s2s_out, [From, Host, Type],
-                       ?FSMLIMITS ++ ?FSMOPTS).
+                     ?FSMLIMITS ++ ?FSMOPTS).
 
 start_connection(Pid) ->
     p1_fsm:send_event(Pid, init).
@@ -165,9 +165,9 @@ open_socket(init, StateData) ->
                StateData#state.myname,
                StateData#state.server),
     ?DEBUG("open_socket: ~p", [{StateData#state.myname,
-                                   StateData#state.server,
-                                  StateData#state.new,
-                                  StateData#state.verify}]),
+                               StateData#state.server,
+                               StateData#state.new,
+                               StateData#state.verify}]),
     AddrList = case idna:domain_utf8_to_ascii(StateData#state.server) of
                   false -> [];
                   ASCIIAddr ->
@@ -789,10 +789,16 @@ send_queue(StateData, Q) ->
 
 %% Bounce a single message (xmlelement)
 bounce_element(El, Error) ->
-    Err = jlib:make_error_reply(El, Error),
-    From = jlib:string_to_jid(xml:get_tag_attr_s("from", El)),
-    To = jlib:string_to_jid(xml:get_tag_attr_s("to", El)),
-    ejabberd_router:route(To, From, Err).
+    {xmlelement, _Name, Attrs, _SubTags} = El,
+    case xml:get_attr_s("type", Attrs) of
+       "error" -> ok;
+       "result" -> ok;
+       _ ->
+           Err = jlib:make_error_reply(El, Error),
+           From = jlib:string_to_jid(xml:get_tag_attr_s("from", El)),
+           To = jlib:string_to_jid(xml:get_tag_attr_s("to", El)),
+           ejabberd_router:route(To, From, Err)
+    end.
 
 bounce_queue(Q, Error) ->
     case queue:out(Q) of
@@ -818,13 +824,7 @@ cancel_timer(Timer) ->
 bounce_messages(Error) ->
     receive
        {send_element, El} ->
-           {xmlelement, _Name, Attrs, _SubTags} = El,
-           case xml:get_attr_s("type", Attrs) of
-               "error" ->
-                   ok;
-               _ ->
-                   bounce_element(El, Error)
-           end,
+           bounce_element(El, Error),
            bounce_messages(Error)
     after 0 ->
            ok