in resources/code/my-first-enclave/cryptographic-attestation/traffic_forwarder.py [0:0]
def server(local_ip, local_port, remote_cid, remote_port):
try:
dock_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
dock_socket.bind((local_ip, local_port))
dock_socket.listen(5)
while True:
client_socket = dock_socket.accept()[0]
server_socket = socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM)
server_socket.connect((remote_cid, remote_port))
outgoing_thread = threading.Thread(target=forward,
args=(client_socket,
server_socket))
incoming_thread = threading.Thread(target=forward,
args=(server_socket,
client_socket))
outgoing_thread.start()
incoming_thread.start()
finally:
new_thread = threading.Thread(target=server,
args=(local_ip, local_port, remote_cid,
remote_port))
new_thread.start()
return