Commit 66937e39 authored by Joel Martin's avatar Joel Martin

wsproxy.py: python2.4 fixes.

parent c32e00c6
......@@ -23,7 +23,7 @@ except:
from urlparse import urlsplit
from cgi import parse_qsl
class WebSocketServer():
class WebSocketServer(object):
"""
WebSockets server class.
Must be sub-classed with new_client method definition.
......@@ -345,49 +345,51 @@ Connection: Upgrade\r
while True:
try:
csock = startsock = None
pid = err = 0
try:
self.poll()
ready = select.select([lsock], [], [], 1)[0];
if lsock in ready:
startsock, address = lsock.accept()
csock = startsock = None
pid = err = 0
try:
self.poll()
ready = select.select([lsock], [], [], 1)[0];
if lsock in ready:
startsock, address = lsock.accept()
else:
continue
except Exception, exc:
if hasattr(exc, 'errno'):
err = exc.errno
else:
err = exc[0]
if err == errno.EINTR:
self.vmsg("Ignoring interrupted syscall")
continue
else:
raise
self.vmsg('%s: forking handler' % address[0])
pid = os.fork()
if pid == 0:
# handler process
csock = self.do_handshake(startsock, address)
self.new_client(csock)
else:
continue
# parent process
self.handler_id += 1
except self.EClose, exc:
# Connection was not a WebSockets connection
if exc.args[0]:
self.msg("%s: %s" % (address[0], exc.args[0]))
except KeyboardInterrupt, exc:
pass
except Exception, exc:
if hasattr(exc, 'errno'):
err = exc.errno
elif type(exc) == select.error:
err = exc[0]
if err == errno.EINTR:
self.vmsg("Ignoring interrupted syscall()")
continue
else:
raise
self.msg("handler exception: %s" % str(exc))
if self.verbose:
self.msg(traceback.format_exc())
self.vmsg('%s: forking handler' % address[0])
pid = os.fork()
if pid == 0:
# handler process
csock = self.do_handshake(startsock, address)
self.new_client(csock)
else:
# parent process
self.handler_id += 1
except self.EClose, exc:
# Connection was not a WebSockets connection
if exc.args[0]:
self.msg("%s: %s" % (address[0], exc.args[0]))
except KeyboardInterrupt, exc:
pass
except Exception, exc:
self.msg("handler exception: %s" % str(exc))
if self.verbose:
self.msg(traceback.format_exc())
finally:
if csock and csock != startsock:
csock.close()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment