From 8bc3dc9c495ddfea5b2a8c20c2b0ab1af2c09de5 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Mon, 18 Jul 2016 22:31:08 +0200 Subject: [PATCH] jlib: Don't try to keep just one tag It seems unclear whether XEP-0203 really mandates that stanzas may not have multiple tags. Editing/removing existing tags doesn't seem worth the effort, especially as we'd have to take more care which tag to keep if the stanza already has more than one. --- src/jlib.erl | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/src/jlib.erl b/src/jlib.erl index 532a74610..4bc9b0055 100644 --- a/src/jlib.erl +++ b/src/jlib.erl @@ -577,33 +577,8 @@ add_delay_info(El, From, Time) -> binary()) -> xmlel(). add_delay_info(El, From, Time, Desc) -> - case fxml:get_subtag_with_xmlns(El, <<"delay">>, ?NS_DELAY) of - false -> - %% Add new tag - DelayTag = create_delay_tag(Time, From, Desc), - fxml:append_subtags(El, [DelayTag]); - DelayTag -> - %% Update existing tag - NewDelayTag = - case {fxml:get_tag_cdata(DelayTag), Desc} of - {<<"">>, <<"">>} -> - DelayTag; - {OldDesc, <<"">>} -> - DelayTag#xmlel{children = [{xmlcdata, OldDesc}]}; - {<<"">>, NewDesc} -> - DelayTag#xmlel{children = [{xmlcdata, NewDesc}]}; - {OldDesc, NewDesc} -> - case binary:match(OldDesc, NewDesc) of - nomatch -> - FinalDesc = <>, - DelayTag#xmlel{children = [{xmlcdata, FinalDesc}]}; - _ -> - DelayTag#xmlel{children = [{xmlcdata, OldDesc}]} - end - end, - NewEl = fxml:remove_subtags(El, <<"delay">>, {<<"xmlns">>, ?NS_DELAY}), - fxml:append_subtags(NewEl, [NewDelayTag]) - end. + DelayTag = create_delay_tag(Time, From, Desc), + fxml:append_subtags(El, [DelayTag]). -spec create_delay_tag(erlang:timestamp(), jid() | ljid() | binary(), binary()) -> xmlel() | error.