• Jeremy Hylton's avatar
    Partial fix for problem in SF buf #487458 · 2a05bc72
    Jeremy Hylton yazdı
    Rev 1.20 introduced a call to getpeername() in the dispatcher
    constructor.  This only works for a connected socket.  Apparently
    earlier versions of the code worked with un-connected sockets, e.g. a
    listening socket.
    
    It's not clear that the code is supposed to accept these sockets,
    because it sets self.connected = 1 when passed a socket.  But it's
    also not clear that it should be a fatal error to pass a listening
    socket.
    
    The solution, for now, is to put a try/except around the getpeername()
    call and continue if it fails.  The self.addr attribute is used
    primarily (only?) to produce a nice repr for the object, so it hardly
    matters.  If there is a real error on a connected socket, it's likely
    that subsequent calls will fail too.
    2a05bc72
asyncore.py 16.5 KB