diff options
-rw-r--r-- | sleekxmpp/basexmpp.py | 4 | ||||
-rw-r--r-- | sleekxmpp/clientxmpp.py | 7 | ||||
-rw-r--r-- | sleekxmpp/stanza/presence.py | 1 | ||||
-rw-r--r-- | sleekxmpp/xmlstream/scheduler.py | 6 | ||||
-rw-r--r-- | sleekxmpp/xmlstream/xmlstream.py | 72 |
5 files changed, 48 insertions, 42 deletions
diff --git a/sleekxmpp/basexmpp.py b/sleekxmpp/basexmpp.py index c022f838..78ecec33 100644 --- a/sleekxmpp/basexmpp.py +++ b/sleekxmpp/basexmpp.py @@ -460,7 +460,7 @@ class BaseXMPP(XMLStream): def fulljid(self, value): logging.warning("fulljid property deprecated. Use boundjid.full") self.boundjid.full = value - + @property def resource(self): """ @@ -473,7 +473,7 @@ class BaseXMPP(XMLStream): def resource(self, value): logging.warning("fulljid property deprecated. Use boundjid.full") self.boundjid.resource = value - + @property def username(self): """ diff --git a/sleekxmpp/clientxmpp.py b/sleekxmpp/clientxmpp.py index 2bbd138c..1734a13c 100644 --- a/sleekxmpp/clientxmpp.py +++ b/sleekxmpp/clientxmpp.py @@ -117,7 +117,7 @@ class ClientXMPP(BaseXMPP): self.register_feature( "<session xmlns='urn:ietf:params:xml:ns:xmpp-session' />", self._handle_start_session) - + def handle_connected(self, event=None): #TODO: Use stream state here self.authenticated = False @@ -125,7 +125,6 @@ class ClientXMPP(BaseXMPP): self.bound = False self.bindfail = False - def connect(self, address=tuple()): """ Connect to the XMPP server. @@ -319,7 +318,9 @@ class ClientXMPP(BaseXMPP): sasl_ns, auth)) elif 'sasl:ANONYMOUS' in self.features and not self.boundjid.user: - self.send("<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='ANONYMOUS' />") + self.send("<auth xmlns='%s' mechanism='%s' />" % ( + sasl_ns, + 'ANONYMOUS')) else: logging.error("No appropriate login method.") self.disconnect() diff --git a/sleekxmpp/stanza/presence.py b/sleekxmpp/stanza/presence.py index 37dfe33c..cb957221 100644 --- a/sleekxmpp/stanza/presence.py +++ b/sleekxmpp/stanza/presence.py @@ -108,7 +108,6 @@ class Presence(RootStanza): self._delAttr('type') self._delSub('show') - def setPriority(self, value): """ Set the entity's priority value. Some server use priority to diff --git a/sleekxmpp/xmlstream/scheduler.py b/sleekxmpp/xmlstream/scheduler.py index 0af1f508..b932b0a7 100644 --- a/sleekxmpp/xmlstream/scheduler.py +++ b/sleekxmpp/xmlstream/scheduler.py @@ -167,10 +167,12 @@ class Scheduler(object): key=lambda task: task.next) except KeyboardInterrupt: self.run = False - if self.parentstop is not None: self.parentstop.set() + if self.parentstop is not None: + self.parentstop.set() except SystemExit: self.run = False - if self.parentstop is not None: self.parentstop.set() + if self.parentstop is not None: + self.parentstop.set() logging.debug("Qutting Scheduler thread") if self.parentqueue is not None: self.parentqueue.put(('quit', None, None)) diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py index bc79e1e8..0388c5aa 100644 --- a/sleekxmpp/xmlstream/xmlstream.py +++ b/sleekxmpp/xmlstream/xmlstream.py @@ -239,37 +239,39 @@ class XMLStream(object): # Repeatedly attempt to connect until a successful connection # is established. - connected = self.state.transition('disconnected', 'connected', func=self._connect) + connected = self.state.transition('disconnected', 'connected', + func=self._connect) while reattempt and not connected: - connected = self.state.transition('disconnected', 'connected', func=self._connect) + connected = self.state.transition('disconnected', 'connected', + func=self._connect) return connected - def _connect(self): - self.stop.clear() - self.socket = self.socket_class(Socket.AF_INET, Socket.SOCK_STREAM) - self.socket.settimeout(None) - if self.use_ssl and self.ssl_support: - logging.debug("Socket Wrapped for SSL") - ssl_socket = ssl.wrap_socket(self.socket) - if hasattr(self.socket, 'socket'): - # We are using a testing socket, so preserve the top - # layer of wrapping. - self.socket.socket = ssl_socket - else: - self.socket = ssl_socket + self.stop.clear() + self.socket = self.socket_class(Socket.AF_INET, Socket.SOCK_STREAM) + self.socket.settimeout(None) + if self.use_ssl and self.ssl_support: + logging.debug("Socket Wrapped for SSL") + ssl_socket = ssl.wrap_socket(self.socket) + if hasattr(self.socket, 'socket'): + # We are using a testing socket, so preserve the top + # layer of wrapping. + self.socket.socket = ssl_socket + else: + self.socket = ssl_socket - try: - self.socket.connect(self.address) - self.set_socket(self.socket, ignore=True) - #this event is where you should set your application state - self.event("connected", direct=True) - return True - except Socket.error as serr: - error_msg = "Could not connect to %s:%s. Socket Error #%s: %s" - logging.error(error_msg % (self.address[0], self.address[1], serr.errno, serr.strerror)) - time.sleep(1) - return False + try: + self.socket.connect(self.address) + self.set_socket(self.socket, ignore=True) + #this event is where you should set your application state + self.event("connected", direct=True) + return True + except Socket.error as serr: + error_msg = "Could not connect to %s:%s. Socket Error #%s: %s" + logging.error(error_msg % (self.address[0], self.address[1], + serr.errno, serr.strerror)) + time.sleep(1) + return False def disconnect(self, reconnect=False): """ @@ -283,8 +285,9 @@ class XMLStream(object): and processing should be restarted. Defaults to False. """ - self.state.transition('connected', 'disconnected', wait=0.0, func=self._disconnect, args=(reconnect,)) - + self.state.transition('connected', 'disconnected', wait=0.0, + func=self._disconnect, args=(reconnect,)) + def _disconnect(self, reconnect=False): # Send the end of stream marker. self.send_raw(self.stream_footer) @@ -305,14 +308,15 @@ class XMLStream(object): self.event("disconnected", direct=True) return True - def reconnect(self): """ Reset the stream's state and reconnect to the server. """ logging.debug("reconnecting...") - self.state.transition('connected', 'disconnected', wait=0.0, func=self._disconnect, args=(True,)) - return self.state.transition('disconnected', 'connected', wait=0.0, func=self._connect) + self.state.transition('connected', 'disconnected', wait=0.0, + func=self._disconnect, args=(True,)) + return self.state.transition('disconnected', 'connected', + wait=0.0, func=self._connect) def set_socket(self, socket, ignore=False): """ @@ -517,8 +521,8 @@ class XMLStream(object): # processed in the queue. with self.__event_handlers_lock: try: - handler_index = self.__event_handlers[name].index(handler) - self.__event_handlers[name].pop(handler_index) + h_index = self.__event_handlers[name].index(handler) + self.__event_handlers[name].pop(h_index) except: pass @@ -754,7 +758,7 @@ class XMLStream(object): if handler.checkDelete(): self.__handlers.pop(self.__handlers.index(handler)) except: - pass #not thread safe + pass # not thread safe unhandled = False # Some stanzas require responses, such as Iq queries. A default |