#pragma once #include #include #include #include "algo_skel.h" #include "tor_os.h" #include "socks5.h" #include "donar_init.h" #define CLIENT_PORT_SIZE 10 struct donar_client_ctx { struct tor_os_str tos; struct evt_core_ctx evts; uint16_t ports[CLIENT_PORT_SIZE]; struct { int fd; enum socks5_state state; } client_sock[CLIENT_PORT_SIZE]; }; void donar_client(struct donar_client_ctx* ctx, char* algoname, char* onion_file, GPtrArray* exposed_ports, GPtrArray* remote_ports);