diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2016-09-24 14:17:21 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2016-09-24 14:17:21 +0300 |
commit | 58969fb854207637e8c3548c1b2a6a0c865dfe7e (patch) | |
tree | 4ac174a5806a1ef965e255392579405465a1193c /src/ejabberd_service.erl | |
parent | Add tests for s2s code (diff) |
Improve namespace handling
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 46d32e4f..b1a4b433 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 |