plugin XEP-0047: fixed file reading and content encoding

This commit is contained in:
Goffi 2020-11-12 14:53:15 +01:00
commit d52d8af6cf

View file

@ -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)