From d52d8af6cf2a260f84bdf005c8b01584268854e9 Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 12 Nov 2020 14:53:15 +0100 Subject: [PATCH] plugin XEP-0047: fixed file reading and content encoding --- sat/plugins/plugin_xep_0047.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sat/plugins/plugin_xep_0047.py b/sat/plugins/plugin_xep_0047.py index 5cea0b2c..1ef5699f 100644 --- a/sat/plugins/plugin_xep_0047.py +++ b/sat/plugins/plugin_xep_0047.py @@ -327,7 +327,8 @@ class XEP_0047(object): """ session_data["timer"].reset(TIMEOUT) - buffer_ = session_data["stream_object"].read(session_data["block_size"]) + # FIXME: producer/consumer mechanism is not used properly here + buffer_ = session_data["stream_object"].file_obj.read(session_data["block_size"]) if buffer_: next_iq_elt = client.IQ() next_iq_elt["from"] = session_data["local_jid"].full() @@ -336,7 +337,7 @@ class XEP_0047(object): seq = session_data["seq"] = (session_data["seq"] + 1) % 65535 data_elt["seq"] = str(seq) data_elt["sid"] = session_data["id"] - data_elt.addContent(base64.b64encode(buffer_)) + data_elt.addContent(base64.b64encode(buffer_).decode()) args = [session_data, client] d = next_iq_elt.send() d.addCallbacks(self._IQDataStreamCb, self._IQDataStreamEb, args, None, args)