#ifndef fooproxyhfoo #define fooproxyhfoo struct server_proxy { struct connection client_conn; struct uring_task_buf clientbuf; struct uring_task clienttask; uint64_t client_bytes; int cfd; struct connection server_conn; struct uring_task_buf serverbuf; struct uring_task servertask; uint64_t server_bytes; int sfd; time_t begin; unsigned next_remote; struct uring_task task; struct server *server; struct list_head list; }; void proxy_refdump(struct server_proxy *proxy); void proxy_delete(struct server_proxy *proxy); struct server_proxy *proxy_new(struct server *server, struct saddr *client, int fd); struct server_local { struct saddr local; struct saddr client; struct uring_task task; struct server *server; struct list_head list; }; bool local_open(struct server_local *local); void local_refdump(struct server_local *local); void local_delete(struct server_local *local); struct server_local *local_new(struct server *server, struct saddr *saddr); #endif