avoid resending <stream:error> stanzas on terminate (EJAB-1180)

SVN Revision: 2955
This commit is contained in:
Evgeniy Khramtsov 2010-02-03 11:25:03 +00:00
parent 35bcadde7a
commit 9d84caebdb
1 changed files with 10 additions and 5 deletions

View File

@ -426,11 +426,16 @@ resend_messages(Messages) ->
%% This function is used to resend messages that have been polled but not
%% delivered.
resend_message(Packet) ->
ParsedPacket = xml_stream:parse_element(Packet),
From = get_jid("from", ParsedPacket),
To = get_jid("to", ParsedPacket),
?DEBUG("Resend ~p ~p ~p~n",[From,To, ParsedPacket]),
ejabberd_router:route(From, To, ParsedPacket).
{xmlelement, Name, _, _} = ParsedPacket = xml_stream:parse_element(Packet),
%% Avoid sending <stream:error>
if Name == "iq"; Name == "message"; Name == "presence" ->
From = get_jid("from", ParsedPacket),
To = get_jid("to", ParsedPacket),
?DEBUG("Resend ~p ~p ~p~n",[From,To, ParsedPacket]),
ejabberd_router:route(From, To, ParsedPacket);
true ->
ok
end.
%% Type can be "from" or "to"
%% Parsed packet is a parsed Jabber packet.