diff options
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2015-04-14 17:46:50 +0200 |
---|---|---|
committer | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2015-04-14 19:14:56 +0200 |
commit | eb4e09b0ca2f699405c448ae7e4b818ff72ea301 (patch) | |
tree | 223634e5326a40ac963ee35fd159fafe09dbf771 /slixmpp/plugins/xep_0047/stream.py | |
parent | ce085bf4f4714d6073e297b599d39b42fcfe218f (diff) | |
download | slixmpp-eb4e09b0ca2f699405c448ae7e4b818ff72ea301.tar.gz slixmpp-eb4e09b0ca2f699405c448ae7e4b818ff72ea301.tar.bz2 slixmpp-eb4e09b0ca2f699405c448ae7e4b818ff72ea301.tar.xz slixmpp-eb4e09b0ca2f699405c448ae7e4b818ff72ea301.zip |
XEP-0047: allow only one window over the stream.
Diffstat (limited to 'slixmpp/plugins/xep_0047/stream.py')
-rw-r--r-- | slixmpp/plugins/xep_0047/stream.py | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/slixmpp/plugins/xep_0047/stream.py b/slixmpp/plugins/xep_0047/stream.py index e15a66be..9c9d82a5 100644 --- a/slixmpp/plugins/xep_0047/stream.py +++ b/slixmpp/plugins/xep_0047/stream.py @@ -12,11 +12,10 @@ log = logging.getLogger(__name__) class IBBytestream(object): - def __init__(self, xmpp, sid, block_size, jid, peer, window_size=1, use_messages=False): + def __init__(self, xmpp, sid, block_size, jid, peer, use_messages=False): self.xmpp = xmpp self.sid = sid self.block_size = block_size - self.window_size = window_size self.use_messages = use_messages if jid is None: @@ -33,17 +32,11 @@ class IBBytestream(object): self.recv_queue = Queue() - self.send_window = threading.BoundedSemaphore(value=self.window_size) - self.window_ids = set() - self.window_empty = threading.Event() - self.window_empty.set() - def send(self, data): if not self.stream_started.is_set() or \ self.stream_out_closed.is_set(): raise socket.error data = data[0:self.block_size] - self.send_window.acquire() self.send_seq = (self.send_seq + 1) % 65535 seq = self.send_seq if self.use_messages: @@ -55,7 +48,6 @@ class IBBytestream(object): msg['ibb_data']['seq'] = seq msg['ibb_data']['data'] = data msg.send() - self.send_window.release() else: iq = self.xmpp.Iq() iq['type'] = 'set' @@ -64,8 +56,6 @@ class IBBytestream(object): iq['ibb_data']['sid'] = self.sid iq['ibb_data']['seq'] = seq iq['ibb_data']['data'] = data - self.window_empty.clear() - self.window_ids.add(iq['id']) iq.send(callback=self._recv_ack) return len(data) @@ -75,10 +65,6 @@ class IBBytestream(object): sent_len += self.send(data[sent_len:]) def _recv_ack(self, iq): - self.window_ids.remove(iq['id']) - if not self.window_ids: - self.window_empty.set() - self.send_window.release() if iq['type'] == 'error': self.close() |