diff options
Diffstat (limited to 'src/ejabberd_service.erl')
-rw-r--r-- | src/ejabberd_service.erl | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/src/ejabberd_service.erl b/src/ejabberd_service.erl index 46d32e4fd..b1a4b433e 100644 --- a/src/ejabberd_service.erl +++ b/src/ejabberd_service.erl @@ -308,7 +308,7 @@ send_text(StateData, Text) -> -spec send_element(state(), xmpp_element()) -> ok. send_element(StateData, El) -> - El1 = fix_ns(xmpp:encode(El)), + El1 = xmpp:encode(El, ?NS_COMPONENT), send_text(StateData, fxml:element_to_binary(El1)). -spec send_error(state(), xmlel() | stanza(), stanza_error()) -> ok. @@ -334,21 +334,9 @@ send_header(StateData, Host) -> send_trailer(StateData) -> send_text(StateData, <<"</stream:stream>">>). --spec fix_ns(xmlel()) -> xmlel(). -fix_ns(#xmlel{name = Name} = El) when Name == <<"message">>; - Name == <<"iq">>; - Name == <<"presence">> -> - Attrs = lists:filter( - fun({<<"xmlns">>, _}) -> false; - (_) -> true - end, El#xmlel.attrs), - El#xmlel{attrs = Attrs}; -fix_ns(El) -> - El. - -spec decode_element(xmlel(), state_name(), state()) -> fsm_transition(). decode_element(#xmlel{} = El, StateName, StateData) -> - try xmpp:decode(El, [ignore_els]) of + try xmpp:decode(El, ?NS_COMPONENT, [ignore_els]) of Pkt -> ?MODULE:StateName(Pkt, StateData) catch error:{xmpp_codec, Why} -> case xmpp:is_stanza(El) of |