docs: def listen(self, addr=None):
          """Wait for a connection/reconnection from a DCC peer.
  
          Returns the DCCConnection object.
  
          The local IP address and port are available as
          self.localaddress and self.localport.  After connection from a
          peer, the peer address and port are available as
          self.peeraddress and self.peerport.
          """
          self.buffer = buffer.LineBuffer()
          self.handlers = {}
          self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
          self.passive = True
          default_addr = socket.gethostbyname(socket.gethostname()), 0
          try:
              self.socket.bind(addr or default_addr)
              self.localaddress, self.localport = self.socket.getsockname()
              self.socket.listen(10)
          except socket.error as x:
              raise DCCConnectionError("Couldn't bind socket: %s" % x)
          return self