| 53 | |
| 54 | |
| 55 | def forward_data(self): |
| 56 | |
| 57 | log.info("Incoming connection accepted") |
| 58 | |
| 59 | self.socket.setblocking(0) |
| 60 | |
| 61 | while(1): |
| 62 | read_ready, write_ready, in_error = select.select( |
| 63 | [self.socket, sys.stdin], [], [self.socket, sys.stdin]) |
| 64 | |
| 65 | try: |
| 66 | buffer = self.socket.recv(100) |
| 67 | while(buffer != ''): |
| 68 | |
| 69 | self.socket_state = True |
| 70 | |
| 71 | sys.stdout.write(buffer) |
| 72 | sys.stdout.flush() |
| 73 | buffer = self.socket.recv(100) |
| 74 | if(buffer == ''): |
| 75 | return |
| 76 | except socket.error: |
| 77 | pass |
| 78 | while(1): |
| 79 | r, w, e = select.select([sys.stdin], [], [], 0) |
| 80 | if(len(r) == 0): |
| 81 | break |
| 82 | c = sys.stdin.read(1) |
| 83 | if(c == ''): |
| 84 | return |
| 85 | if(self.socket.sendall(c) != None): |
| 86 | return |