about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/scadere/listen.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/scadere/listen.py b/src/scadere/listen.py
index 085664d..8d115ae 100644
--- a/src/scadere/listen.py
+++ b/src/scadere/listen.py
@@ -67,12 +67,13 @@ async def describe_status(writer, status):
 
 
 async def write_xml(writer, document):
-    content = strings_from_xml(xml(document), 'unicode',
-                               xml_declaration=True, default_namespace=None)
-    length = len(''.join(content))
-    writer.write(f'Content-Length: {length}\r\n\r\n'.encode())
+    content = tuple(map(str.encode,
+                        strings_from_xml(xml(document), 'unicode',
+                                         xml_declaration=True,
+                                         default_namespace=None)))
+    writer.write(f'Content-Length: {sum(map(len, content))}\r\n\r\n'.encode())
     for part in content:
-        writer.write(part.encode())
+        writer.write(part)
         await writer.drain()