From efacb0ad66312eefeef6e46ba76fd2b8311655e2 Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Wed, 25 Jan 2006 00:35:12 +0000 Subject: * src/ejabberd_c2s.erl: Remove top-level xmlns from incoming stanzas * src/ejabberd_s2s_in.erl: Likewise * src/ejabberd_service.erl: Likewise SVN Revision: 492 --- src/ejabberd_c2s.erl | 7 ++++--- src/ejabberd_s2s_in.erl | 9 ++++++--- src/ejabberd_service.erl | 7 ++++--- 3 files changed, 14 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index f1db47da..44524547 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -751,15 +751,16 @@ session_established({xmlstreamelement, El}, StateData) -> _ -> jlib:string_to_jid(To) end, + NewEl1 = jlib:remove_attr("xmlns", El), NewEl = case xml:get_attr_s("xml:lang", Attrs) of "" -> case StateData#state.lang of - "" -> El; + "" -> NewEl1; Lang -> - xml:replace_tag_attr("xml:lang", Lang, El) + xml:replace_tag_attr("xml:lang", Lang, NewEl1) end; _ -> - El + NewEl1 end, NewState = case ToJID of diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl index ed4a7af0..1de51fdf 100644 --- a/src/ejabberd_s2s_in.erl +++ b/src/ejabberd_s2s_in.erl @@ -346,7 +346,8 @@ stream_established({xmlstreamelement, El}, StateData) -> []}), {next_state, stream_established, StateData#state{timer = Timer}}; _ -> - {xmlelement, Name, Attrs, _Els} = El, + NewEl = jlib:remove_attr("xmlns", El), + {xmlelement, Name, Attrs, _Els} = NewEl, From_s = xml:get_attr_s("from", Attrs), From = jlib:string_to_jid(From_s), To_s = xml:get_attr_s("to", Attrs), @@ -366,7 +367,8 @@ stream_established({xmlstreamelement, El}, StateData) -> if ((Name == "iq") or (Name == "message") or (Name == "presence")) -> - ejabberd_router:route(From, To, El); + ejabberd_router:route( + From, To, NewEl); true -> error end; @@ -380,7 +382,8 @@ stream_established({xmlstreamelement, El}, StateData) -> if ((Name == "iq") or (Name == "message") or (Name == "presence")) -> - ejabberd_router:route(From, To, El); + ejabberd_router:route( + From, To, NewEl); true -> error end; diff --git a/src/ejabberd_service.erl b/src/ejabberd_service.erl index 2a207b12..0d3b0217 100644 --- a/src/ejabberd_service.erl +++ b/src/ejabberd_service.erl @@ -198,7 +198,8 @@ wait_for_handshake(closed, StateData) -> stream_established({xmlstreamelement, El}, StateData) -> - {xmlelement, Name, Attrs, _Els} = El, + NewEl = jlib:remove_attr("xmlns", El), + {xmlelement, Name, Attrs, _Els} = NewEl, From = xml:get_attr_s("from", Attrs), FromJID1 = jlib:string_to_jid(From), FromJID = case FromJID1 of @@ -218,9 +219,9 @@ stream_established({xmlstreamelement, El}, StateData) -> (Name == "message") or (Name == "presence")) and (ToJID /= error) and (FromJID /= error) -> - ejabberd_router:route(FromJID, ToJID, El); + ejabberd_router:route(FromJID, ToJID, NewEl); true -> - Err = jlib:make_error_reply(El, ?ERR_BAD_REQUEST), + Err = jlib:make_error_reply(NewEl, ?ERR_BAD_REQUEST), send_element(StateData, Err), error end, -- cgit v1.2.3