def get_remote_port_fwd_cb(remote_addr, local_addr):
def func(rsocket):
logging.debug("forwarding remote addr %s to local %s "%(remote_addr, local_addr))
lsocket=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
lsocket.settimeout(5)
try:
lsocket.connect(local_addr)
except Exception as e:
logging.debug("error: %s"%e)
if e[0]==10060:
logging.debug("unreachable !")
rsocket.shutdown(socket.SHUT_RDWR)
rsocket.close()
return
logging.debug("connection succeeded !")
sp1=SocketPiper(lsocket, rsocket)
sp2=SocketPiper(rsocket, lsocket)
sp1.start()
sp2.start()
sp1.join()
sp2.join()
logging.debug("conn to %s from %s closed"%(local_addr, remote_addr))
return func
评论列表
文章目录