Add error handling to send_stanza
This commit is contained in:
parent
5e4ed4266d
commit
2ddbd032ee
|
@ -1332,16 +1332,28 @@ build_packet(Type, Subject, Body) ->
|
||||||
[{xmlel, <<"body">>, [], [{xmlcdata, Body}]} | Tail]
|
[{xmlel, <<"body">>, [], [{xmlcdata, Body}]} | Tail]
|
||||||
}.
|
}.
|
||||||
|
|
||||||
send_stanza(FromString, ToString, Data) ->
|
send_stanza(FromString, ToString, Stanza) ->
|
||||||
Stanza = {xmlel, _, _, _} = xml_stream:parse_element(Data),
|
case xml_stream:parse_element(Stanza) of
|
||||||
From = jid:from_string(FromString),
|
{error, Error} ->
|
||||||
To = jid:from_string(ToString),
|
{error, Error};
|
||||||
ejabberd_router:route(From, To, Stanza).
|
XmlEl ->
|
||||||
|
#xmlel{attrs = Attrs} = XmlEl,
|
||||||
|
From = jid:from_string(proplists:get_value(<<"from">>, Attrs, FromString)),
|
||||||
|
To = jid:from_string(proplists:get_value(<<"to">>, Attrs, ToString)),
|
||||||
|
ejabberd_router:route(From, To, XmlEl)
|
||||||
|
end.
|
||||||
|
|
||||||
send_stanza_c2s(Username, Host, Resource, Stanza) ->
|
send_stanza_c2s(Username, Host, Resource, Stanza) ->
|
||||||
C2sPid = ejabberd_sm:get_session_pid(Username, Host, Resource),
|
case {xml_stream:parse_element(Stanza),
|
||||||
XmlEl = xml_stream:parse_element(Stanza),
|
ejabberd_sm:get_session_pid(Username, Host, Resource)}
|
||||||
p1_fsm:send_event(C2sPid, {xmlstreamelement, XmlEl}).
|
of
|
||||||
|
{{error, Error}, _} ->
|
||||||
|
{error, Error};
|
||||||
|
{_, none} ->
|
||||||
|
{error, no_session};
|
||||||
|
{XmlEl, C2sPid} ->
|
||||||
|
p1_fsm:send_event(C2sPid, {xmlstreamelement, XmlEl})
|
||||||
|
end.
|
||||||
|
|
||||||
privacy_set(Username, Host, QueryS) ->
|
privacy_set(Username, Host, QueryS) ->
|
||||||
From = jid:make(Username, Host, <<"">>),
|
From = jid:make(Username, Host, <<"">>),
|
||||||
|
|
Loading…
Reference in New Issue