(a: socket.socket, b: socket.socket)
| 51 | |
| 52 | @staticmethod |
| 53 | def _pump(a: socket.socket, b: socket.socket) -> None: |
| 54 | a.setblocking(False) |
| 55 | b.setblocking(False) |
| 56 | try: |
| 57 | while True: |
| 58 | r, _, _ = select.select([a, b], [], [], 60) |
| 59 | if not r: |
| 60 | return |
| 61 | for src in r: |
| 62 | dst = b if src is a else a |
| 63 | data = src.recv(65536) |
| 64 | if not data: |
| 65 | return |
| 66 | dst.sendall(data) |
| 67 | except OSError: |
| 68 | pass |
| 69 | finally: |
| 70 | for s in (a, b): |
| 71 | try: |
| 72 | s.close() |
| 73 | except OSError: |
| 74 | pass |
| 75 | |
| 76 | def log_message(self, format, *args): # noqa: A002 — base sig |
| 77 | pass |