diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2016-07-18 22:31:08 +0200 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2016-07-18 22:31:08 +0200 |
commit | 8bc3dc9c495ddfea5b2a8c20c2b0ab1af2c09de5 (patch) | |
tree | b80557eb477f1e8e7a039a24263ec030ccebd272 /src/jlib.erl | |
parent | Omit [info] message with number of queued stanzas (diff) |
jlib: Don't try to keep just one <delay/> tag
It seems unclear whether XEP-0203 really mandates that stanzas may not
have multiple <delay/> 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.
Diffstat (limited to 'src/jlib.erl')
-rw-r--r-- | src/jlib.erl | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/src/jlib.erl b/src/jlib.erl index 532a7461..4bc9b005 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 = <<OldDesc/binary, ", ", NewDesc/binary>>, - 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. |