fixed socket name collision in xmlstream.py and fixed python 3.x compatibility

This commit is contained in:
Nathan Fritz 2010-10-14 10:58:07 -07:00
parent a41a4369c6
commit 0d0b963fe5
6 changed files with 19 additions and 16 deletions

View file

@ -44,10 +44,14 @@ packages = [ 'sleekxmpp',
'sleekxmpp/xmlstream', 'sleekxmpp/xmlstream',
'sleekxmpp/xmlstream/matcher', 'sleekxmpp/xmlstream/matcher',
'sleekxmpp/xmlstream/handler', 'sleekxmpp/xmlstream/handler',
'sleekxmpp/xmlstream/tostring',
'sleekxmpp/thirdparty', 'sleekxmpp/thirdparty',
] ]
if sys.version_info < (3, 0):
py_modules = ['sleekxmpp.xmlstream.tostring.tostring26']
else:
py_modules = ['sleekxmpp.xmlstream.tostring.tostring']
setup( setup(
name = "sleekxmpp", name = "sleekxmpp",
version = VERSION, version = VERSION,

View file

@ -162,7 +162,8 @@ class ClientXMPP(BaseXMPP):
intmax += answer.priority intmax += answer.priority
addresses[intmax] = (answer.target.to_text()[:-1], addresses[intmax] = (answer.target.to_text()[:-1],
answer.port) answer.port)
priorities = addresses.keys() #python3 returns a generator for dictionary keys
priorities = [x for x in addresses.keys()]
priorities.sort() priorities.sort()
picked = random.randint(0, intmax) picked = random.randint(0, intmax)

View file

@ -290,7 +290,6 @@ class DefaultConfig(ElementBase):
def setConfig(self, value): def setConfig(self, value):
self['form'].setStanzaValues(value.getStanzaValues()) self['form'].setStanzaValues(value.getStanzaValues())
print self['form']['title']
return self return self
registerStanzaPlugin(PubsubOwner, DefaultConfig) registerStanzaPlugin(PubsubOwner, DefaultConfig)
@ -370,7 +369,6 @@ class OwnerDefault(OwnerConfigure):
def setConfig(self, value): def setConfig(self, value):
self['form'].setStanzaValues(value.getStanzaValues()) self['form'].setStanzaValues(value.getStanzaValues())
print self['from']['title']
return self return self
registerStanzaPlugin(PubsubOwner, OwnerDefault) registerStanzaPlugin(PubsubOwner, OwnerDefault)

View file

@ -53,7 +53,7 @@ class SleekTest(unittest.TestCase):
try: try:
xml = ET.fromstring(xml_string) xml = ET.fromstring(xml_string)
return xml return xml
except SyntaxError, e: except SyntaxError as e:
if 'unbound' in e.msg: if 'unbound' in e.msg:
known_prefixes = { known_prefixes = {
'stream': 'http://etherx.jabber.org/streams'} 'stream': 'http://etherx.jabber.org/streams'}

View file

@ -268,11 +268,11 @@ class _StateCtx:
if __name__ == '__main__': if __name__ == '__main__':
def callback(s, s2): def callback(s, s2):
print 1, s.transition('on', 'off', wait=0.0, func=callback, args=[s,s2]) print((1, s.transition('on', 'off', wait=0.0, func=callback, args=[s,s2])))
print 2, s2.transition('off', 'on', func=callback, args=[s,s2]) print((2, s2.transition('off', 'on', func=callback, args=[s,s2])))
return True return True
s = StateMachine(('off', 'on')) s = StateMachine(('off', 'on'))
s2 = StateMachine(('off', 'on')) s2 = StateMachine(('off', 'on'))
print 3, s.transition('off', 'on', wait=0.0, func=callback, args=[s,s2]), print((3, s.transition('off', 'on', wait=0.0, func=callback, args=[s,s2]),))
print s.current_state(), s2.current_state() print((s.current_state(), s2.current_state()))

View file

@ -10,7 +10,7 @@ from __future__ import with_statement, unicode_literals
import copy import copy
import logging import logging
import socket import socket as Socket
import ssl import ssl
import sys import sys
import threading import threading
@ -165,7 +165,7 @@ class XMLStream(object):
if sys.version_info < (3, 0): if sys.version_info < (3, 0):
self.socket_class = Socket26 self.socket_class = Socket26
else: else:
self.socket_class = socket.socket self.socket_class = Socket.socket
self.use_ssl = False self.use_ssl = False
self.use_tls = False self.use_tls = False
@ -247,7 +247,7 @@ class XMLStream(object):
def _connect(self): def _connect(self):
self.stop.clear() self.stop.clear()
self.socket = self.socket_class(socket.AF_INET, socket.SOCK_STREAM) self.socket = self.socket_class(Socket.AF_INET, Socket.SOCK_STREAM)
self.socket.settimeout(None) self.socket.settimeout(None)
if self.use_ssl and self.ssl_support: if self.use_ssl and self.ssl_support:
logging.debug("Socket Wrapped for SSL") logging.debug("Socket Wrapped for SSL")
@ -265,7 +265,7 @@ class XMLStream(object):
#this event is where you should set your application state #this event is where you should set your application state
self.event("connected", direct=True) self.event("connected", direct=True)
return True return True
except socket.error as serr: except Socket.error as serr:
error_msg = "Could not connect. Socket Error #%s: %s" error_msg = "Could not connect. Socket Error #%s: %s"
logging.error(error_msg % (serr.errno, serr.strerror)) logging.error(error_msg % (serr.errno, serr.strerror))
time.sleep(1) time.sleep(1)
@ -297,8 +297,8 @@ class XMLStream(object):
try: try:
self.socket.close() self.socket.close()
self.filesocket.close() self.filesocket.close()
self.socket.shutdown(socket.SHUT_RDWR) self.socket.shutdown(Socket.SHUT_RDWR)
except socket.error as serr: except Socket.error as serr:
pass pass
finally: finally:
#clear your application state #clear your application state
@ -670,7 +670,7 @@ class XMLStream(object):
except SystemExit: except SystemExit:
logging.debug("SystemExit in _process") logging.debug("SystemExit in _process")
self.stop.set() self.stop.set()
except socket.error: except Socket.error:
logging.exception('Socket Error') logging.exception('Socket Error')
except: except:
logging.exception('Connection error. Reconnecting.') logging.exception('Connection error. Reconnecting.')