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)