summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0047
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/plugins/xep_0047')
-rw-r--r--sleekxmpp/plugins/xep_0047/__init__.py10
-rw-r--r--sleekxmpp/plugins/xep_0047/ibb.py17
-rw-r--r--sleekxmpp/plugins/xep_0047/stanza.py3
-rw-r--r--sleekxmpp/plugins/xep_0047/stream.py6
4 files changed, 22 insertions, 14 deletions
diff --git a/sleekxmpp/plugins/xep_0047/__init__.py b/sleekxmpp/plugins/xep_0047/__init__.py
index 5a6487cc..5cd7df2e 100644
--- a/sleekxmpp/plugins/xep_0047/__init__.py
+++ b/sleekxmpp/plugins/xep_0047/__init__.py
@@ -6,8 +6,16 @@
See the file LICENSE for copying permission.
"""
+from sleekxmpp.plugins.base import register_plugin
+
from sleekxmpp.plugins.xep_0047 import stanza
from sleekxmpp.plugins.xep_0047.stanza import Open, Close, Data
from sleekxmpp.plugins.xep_0047.stream import IBBytestream
-from sleekxmpp.plugins.xep_0047.ibb import xep_0047
+from sleekxmpp.plugins.xep_0047.ibb import XEP_0047
+
+
+register_plugin(XEP_0047)
+
+# Retain some backwards compatibility
+xep_0047 = XEP_0047
diff --git a/sleekxmpp/plugins/xep_0047/ibb.py b/sleekxmpp/plugins/xep_0047/ibb.py
index 5b138daf..c8a4b5e7 100644
--- a/sleekxmpp/plugins/xep_0047/ibb.py
+++ b/sleekxmpp/plugins/xep_0047/ibb.py
@@ -3,24 +3,25 @@ import logging
import threading
from sleekxmpp import Message, Iq
-from sleekxmpp.exceptions import XMPPError, IqError, IqTimeout
+from sleekxmpp.exceptions import XMPPError
from sleekxmpp.xmlstream.handler import Callback
from sleekxmpp.xmlstream.matcher import StanzaPath
from sleekxmpp.xmlstream import register_stanza_plugin
-from sleekxmpp.plugins.base import base_plugin
+from sleekxmpp.plugins import BasePlugin
from sleekxmpp.plugins.xep_0047 import stanza, Open, Close, Data, IBBytestream
log = logging.getLogger(__name__)
-class xep_0047(base_plugin):
+class XEP_0047(BasePlugin):
- def plugin_init(self):
- self.xep = '0047'
- self.description = 'In-Band Bytestreams'
- self.stanza = stanza
+ name = 'xep_0047'
+ description = 'XEP-0047: In-band Bytestreams'
+ dependencies = set(['xep_0030'])
+ stanza = stanza
+ def plugin_init(self):
self.streams = {}
self.pending_streams = {3: 5}
self.pending_close_streams = {}
@@ -50,7 +51,6 @@ class xep_0047(base_plugin):
StanzaPath('iq@type=set/ibb_data'),
self._handle_data))
- def post_init(self):
self.xmpp['xep_0030'].add_feature('http://jabber.org/protocol/ibb')
def _accept_stream(self, iq):
@@ -97,7 +97,6 @@ class xep_0047(base_plugin):
cb = self._handle_opened_stream
return iq.send(block=block, timeout=timeout, callback=cb)
-
def _handle_opened_stream(self, iq):
if iq['type'] == 'result':
with self._stream_lock:
diff --git a/sleekxmpp/plugins/xep_0047/stanza.py b/sleekxmpp/plugins/xep_0047/stanza.py
index fb0d4309..afba07a8 100644
--- a/sleekxmpp/plugins/xep_0047/stanza.py
+++ b/sleekxmpp/plugins/xep_0047/stanza.py
@@ -2,7 +2,7 @@ import re
import base64
from sleekxmpp.exceptions import XMPPError
-from sleekxmpp.xmlstream import register_stanza_plugin, ET, ElementBase
+from sleekxmpp.xmlstream import ElementBase
from sleekxmpp.thirdparty.suelta.util import bytes
@@ -12,6 +12,7 @@ VALID_B64 = re.compile(r'[A-Za-z0-9\+\/]*=*')
def to_b64(data):
return bytes(base64.b64encode(bytes(data))).decode('utf-8')
+
def from_b64(data):
return bytes(base64.b64decode(bytes(data))).decode('utf-8')
diff --git a/sleekxmpp/plugins/xep_0047/stream.py b/sleekxmpp/plugins/xep_0047/stream.py
index 73c34425..49f56f36 100644
--- a/sleekxmpp/plugins/xep_0047/stream.py
+++ b/sleekxmpp/plugins/xep_0047/stream.py
@@ -28,7 +28,7 @@ class IBBytestream(object):
self._send_seq_lock = threading.Lock()
self._recv_seq_lock = threading.Lock()
-
+
self.stream_started = threading.Event()
self.stream_in_closed = threading.Event()
self.stream_out_closed = threading.Event()
@@ -55,7 +55,7 @@ class IBBytestream(object):
iq['from'] = self.sender
iq['ibb_data']['sid'] = self.sid
iq['ibb_data']['seq'] = seq
- iq['ibb_data']['data'] = data
+ iq['ibb_data']['data'] = data
self.window_empty.clear()
self.window_ids.add(iq['id'])
iq.send(block=False, callback=self._recv_ack)
@@ -113,7 +113,7 @@ class IBBytestream(object):
iq['from'] = self.sender
iq['ibb_close']['sid'] = self.sid
self.stream_out_closed.set()
- iq.send(block=False,
+ iq.send(block=False,
callback=lambda x: self.stream_in_closed.set())
self.xmpp.event('ibb_stream_end', self)