From: Mickaël Rémond Date: Mon, 30 Jul 2007 08:32:47 +0000 (+0000) Subject: * src/xml.erl: Do not crypt binary CData, but enclose the value in X-Git-Tag: v2.0.0~318 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b8cd5c3f0e5256f31a43221b7584c6582d4c3af9;p=ejabberd * src/xml.erl: Do not crypt binary CData, but enclose the value in XML CDATA "tag". * src/xml.erl: Code clean-up: removed old code in comments. SVN Revision: 836 --- diff --git a/ChangeLog b/ChangeLog index 2a67d0d4a..0bb42bff2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-07-30 Mickael Remond + + * src/xml.erl: Do not crypt binary CData, but enclose the value in + XML CDATA "tag". + + * src/xml.erl: Code clean-up: removed old code in comments. + 2007-07-28 Mickael Remond * src/mod_roster_odbc.erl: Better error management when bad JID in diff --git a/src/xml.erl b/src/xml.erl index 002239668..4fae4827d 100644 --- a/src/xml.erl +++ b/src/xml.erl @@ -20,50 +20,6 @@ get_path_s/2, replace_tag_attr/3]). -%element_to_string(El) -> -% case El of -% {xmlelement, Name, Attrs, Els} -> -% if length(Els) > 0 -> -% "<" ++ Name ++ attrs_to_string(Attrs) ++ ">" ++ -% lists:append( -% lists:map(fun(E) -> element_to_string(E) end, Els)) -% ++ ""; -% true -> -% "<" ++ Name ++ attrs_to_string(Attrs) ++ "/>" -% end; -% {xmlcdata, CData} -> crypt(CData) -% end. -% -% -%attrs_to_string(Attrs) -> -% lists:append(lists:map(fun(A) -> attr_to_string(A) end, Attrs)). -% -%attr_to_string({Name, Value}) -> -% " " ++ crypt(Name) ++ "='" ++ crypt(Value) ++ "'". - - -%element_to_string2(El) -> -% lists:flatten(element_to_string21(El)). -% -%element_to_string21(El) -> -% case El of -% {xmlelement, Name, Attrs, Els} -> -% if length(Els) > 0 -> -% [[$< | Name], attrs_to_list(Attrs), ">", -% lists:map(fun(E) -> element_to_string21(E) end, Els), -% ""]; -% true -> -% ["<", Name, attrs_to_list(Attrs), "/>"] -% end; -% {xmlcdata, CData} -> crypt(CData) -% end. -% -%attrs_to_list(Attrs) -> -% lists:map(fun(A) -> attr_to_list(A) end, Attrs). -% -%attr_to_list({Name, Value}) -> -% [" ", crypt(Name), "='", crypt(Value), "'"]. - element_to_string(El) -> case El of {xmlelement, Name, Attrs, Els} -> @@ -75,8 +31,13 @@ element_to_string(El) -> true -> [$<, Name, attrs_to_list(Attrs), $/, $>] end; - {xmlcdata, CData} -> - crypt(CData) + {xmlcdata, CData} when list(CData) -> + crypt(CData); + %% We do not crypt CDATA binary, but we enclose it in XML CDATA + {xmlcdata, CData} when binary(CData) -> + CDATA1 = <<">, + CDATA2 = <<"]]>">>, + concat_binary([CDATA1, CData, CDATA2]) end. attrs_to_list(Attrs) -> @@ -85,26 +46,6 @@ attrs_to_list(Attrs) -> attr_to_list({Name, Value}) -> [$\s, crypt(Name), $=, $', crypt(Value), $']. - - -%crypt(S) -> -% lists:reverse(crypt(S, "")). -% -%crypt([$& | S], R) -> -% crypt(S, [$;, $p, $m, $a, $& | R]); -%crypt([$< | S], R) -> -% crypt(S, [$;, $t, $l, $& | R]); -%crypt([$> | S], R) -> -% crypt(S, [$;, $t, $g, $& | R]); -%crypt([$" | S], R) -> -% crypt(S, [$;, $t, $o, $u, $q, $& | R]); -%crypt([$' | S], R) -> -% crypt(S, [$;, $s, $o, $p, $a, $& | R]); -%crypt([C | S], R) -> -% crypt(S, [C | R]); -%crypt([], R) -> -% R. - crypt(S) when is_list(S) -> [case C of $& -> "&";