summaryrefslogtreecommitdiffstats
path: root/Lib/asyncore.py
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2001-04-20 19:04:55 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2001-04-20 19:04:55 (GMT)
commit12e73bb2f08db45fb92bf2aa57992424351be03d (patch)
tree0a09ef4d8e21adfb0579595d1bebea3fc5ffd76f /Lib/asyncore.py
parent55ad67d74dea7e04c929319d3b92b4d9481c009c (diff)
downloadcpython-12e73bb2f08db45fb92bf2aa57992424351be03d.zip
cpython-12e73bb2f08db45fb92bf2aa57992424351be03d.tar.gz
cpython-12e73bb2f08db45fb92bf2aa57992424351be03d.tar.bz2
dispatcher.__repr__() was unprepared to handle the address for a Unix
domain socket. Fix that and make the error message for failures a little more helpful by including the class name.
Diffstat (limited to 'Lib/asyncore.py')
-rw-r--r--Lib/asyncore.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index 145da58..8c9ec63 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -50,6 +50,7 @@ import exceptions
import select
import socket
import sys
+import types
import os
if os.name == 'nt':
@@ -215,19 +216,22 @@ class dispatcher:
elif self.connected:
status.append ('connected')
if self.addr:
- status.append ('%s:%d' % self.addr)
- return '<%s %s at %x>' % (
- self.__class__.__name__,
- ' '.join (status),
- id(self)
- )
+ if self.addr == types.TupleType:
+ status.append ('%s:%d' % self.addr)
+ else:
+ status.append (self.addr)
+ return '<%s %s at %x>' % (self.__class__.__name__,
+ ' '.join (status), id (self))
except:
- try:
- ar = repr(self.addr)
- except:
- ar = 'no self.addr!'
+ pass
+
+ try:
+ ar = repr (self.addr)
+ except AttributeError:
+ ar = 'no self.addr!'
- return '<__repr__ (self) failed for object at %x (addr=%s)>' % (id(self),ar)
+ return '<__repr__() failed for %s instance at %x (addr=%s)>' % \
+ (self.__class__.__name__, id (self), ar)
def add_channel (self, map=None):
#self.log_info ('adding channel %s' % self)
@@ -299,6 +303,7 @@ class dispatcher:
def connect (self, address):
self.connected = 0
+ # XXX why not use connect_ex?
try:
self.socket.connect (address)
except socket.error, why: