2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-30 13:37:55 +00:00

[trac710] make sure in xml_handler() the textual representation of XML

is a correct string (not bytes, not a string in the form of "b'XXX'")
regardless of whether xml.etree.ElementTree.tostring() returns bytes or
string by default.
This commit is contained in:
JINMEI Tatuya 2011-06-16 16:25:53 -07:00
parent 97131f9739
commit ed6ec070b2

9
src/bin/stats/stats_httpd.py.in Normal file → Executable file
View File

@ -437,8 +437,15 @@ class StatsHttpd:
(k, v) = (str(k), str(v))
elem = xml.etree.ElementTree.Element(k)
elem.text = v
# The coding conversion is tricky. xml..tostring() of Python 3.2
# returns bytes (not string) regardless of the coding, while
# tostring() of Python 3.1 returns a string. To support both
# cases transparently, we first make sure tostring() returns
# bytes by specifying utf-8 and then convert the result to a
# plain string (code below assume it).
xml_list.append(
str(xml.etree.ElementTree.tostring(elem)))
str(xml.etree.ElementTree.tostring(elem, encoding='utf-8'),
encoding='us-ascii'))
xml_string = "".join(xml_list)
self.xml_body = self.open_template(XML_TEMPLATE_LOCATION).substitute(
xml_string=xml_string,