summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--slixmpp/plugins/xep_0047/ibb.py4
-rw-r--r--slixmpp/plugins/xep_0047/stream.py24
2 files changed, 13 insertions, 15 deletions
diff --git a/slixmpp/plugins/xep_0047/ibb.py b/slixmpp/plugins/xep_0047/ibb.py
index d1c708ed..be452877 100644
--- a/slixmpp/plugins/xep_0047/ibb.py
+++ b/slixmpp/plugins/xep_0047/ibb.py
@@ -142,7 +142,7 @@ class XEP_0047(BasePlugin):
log.debug('IBB stream (%s) accepted by %s', stream.sid, iq['from'])
stream.self_jid = iq['to']
stream.peer_jid = iq['from']
- stream.stream_started.set()
+ stream.stream_started = True
self.api['set_stream'](stream.self_jid, stream.sid, stream.peer_jid, stream)
self.xmpp.event('ibb_stream_start', stream)
self.xmpp.event('stream:%s:%s' % (stream.sid, stream.peer_jid), stream)
@@ -167,7 +167,7 @@ class XEP_0047(BasePlugin):
stream = IBBytestream(self.xmpp, sid, size,
iq['to'], iq['from'])
- stream.stream_started.set()
+ stream.stream_started = True
self.api['set_stream'](stream.self_jid, stream.sid, stream.peer_jid, stream)
iq.reply().send()
diff --git a/slixmpp/plugins/xep_0047/stream.py b/slixmpp/plugins/xep_0047/stream.py
index 9c9d82a5..9b7426a9 100644
--- a/slixmpp/plugins/xep_0047/stream.py
+++ b/slixmpp/plugins/xep_0047/stream.py
@@ -1,5 +1,4 @@
import socket
-import threading
import logging
from queue import Queue
@@ -26,15 +25,14 @@ class IBBytestream(object):
self.send_seq = -1
self.recv_seq = -1
- self.stream_started = threading.Event()
- self.stream_in_closed = threading.Event()
- self.stream_out_closed = threading.Event()
+ self.stream_started = False
+ self.stream_in_closed = False
+ self.stream_out_closed = False
self.recv_queue = Queue()
def send(self, data):
- if not self.stream_started.is_set() or \
- self.stream_out_closed.is_set():
+ if not self.stream_started or self.stream_out_closed:
raise socket.error
data = data[0:self.block_size]
self.send_seq = (self.send_seq + 1) % 65535
@@ -90,8 +88,7 @@ class IBBytestream(object):
return self.read(block=True)
def read(self, block=True, timeout=None, **kwargs):
- if not self.stream_started.is_set() or \
- self.stream_in_closed.is_set():
+ if not self.stream_started or self.stream_in_closed:
raise socket.error
if timeout is not None:
block = True
@@ -106,14 +103,15 @@ class IBBytestream(object):
iq['to'] = self.peer_jid
iq['from'] = self.self_jid
iq['ibb_close']['sid'] = self.sid
- self.stream_out_closed.set()
- iq.send(block=False,
- callback=lambda x: self.stream_in_closed.set())
+ self.stream_out_closed = True
+ def _close_stream(_):
+ self.stream_in_closed = True
+ iq.send(block=False, callback=_close_stream)
self.xmpp.event('ibb_stream_end', self)
def _closed(self, iq):
- self.stream_in_closed.set()
- self.stream_out_closed.set()
+ self.stream_in_closed = True
+ self.stream_out_closed = True
iq.reply().send()
self.xmpp.event('ibb_stream_end', self)