(self, sock=None, map=None)
| 477 | minTx = 1500 |
| 478 | |
| 479 | def __init__(self, sock=None, map=None): |
| 480 | if map is None: |
| 481 | self._map = socket_map |
| 482 | else: |
| 483 | self._map = map |
| 484 | |
| 485 | self._fileno = None |
| 486 | |
| 487 | if sock: |
| 488 | # Set to nonblocking just to make sure for cases where we |
| 489 | # get a socket from a blocking source. |
| 490 | sock.setblocking(0) |
| 491 | self.set_socket(sock, map) |
| 492 | self.connected = True |
| 493 | # The constructor no longer requires that the socket |
| 494 | # passed be connected. |
| 495 | try: |
| 496 | self.addr = sock.getpeername() |
| 497 | except socket.error as err: |
| 498 | if err.args[0] in (ENOTCONN, EINVAL): |
| 499 | # To handle the case where we got an unconnected |
| 500 | # socket. |
| 501 | self.connected = False |
| 502 | else: |
| 503 | # The socket is broken in some unknown way, alert |
| 504 | # the user and remove it from the map (to prevent |
| 505 | # polling of broken sockets). |
| 506 | self.del_channel(map) |
| 507 | raise |
| 508 | else: |
| 509 | self.socket = None |
| 510 | |
| 511 | def __repr__(self): |
| 512 | status = [self.__class__.__module__+"."+self.__class__.__name__] |
no test coverage detected