summaryrefslogtreecommitdiff
path: root/mcserverproxy/server-proxy.h
diff options
context:
space:
mode:
authorDavid Härdeman <david@hardeman.nu>2020-06-23 16:25:36 +0200
committerDavid Härdeman <david@hardeman.nu>2020-06-23 16:25:36 +0200
commit8c27290245b7bcc7cd2f72f3b4a7562294b43bbe (patch)
tree54bae7909a94bfc598df7b88d9794742daf0bb31 /mcserverproxy/server-proxy.h
parent973ae757342b91e3e6aafd07e0c0a24af84aad98 (diff)
Split directories better
Diffstat (limited to 'mcserverproxy/server-proxy.h')
-rw-r--r--mcserverproxy/server-proxy.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/mcserverproxy/server-proxy.h b/mcserverproxy/server-proxy.h
new file mode 100644
index 0000000..ee3bda3
--- /dev/null
+++ b/mcserverproxy/server-proxy.h
@@ -0,0 +1,51 @@
+#ifndef fooserverproxyhfoo
+#define fooserverproxyhfoo
+
+struct server_proxy {
+ struct connection client_conn;
+ struct uring_task_buf clientbuf;
+ struct uring_task clienttask;
+ uint64_t client_bytes;
+ int cpipe[2];
+ int cfd;
+
+ struct connection server_conn;
+ struct uring_task_buf serverbuf;
+ struct uring_task servertask;
+ uint64_t server_bytes;
+ int spipe[2];
+ int sfd;
+
+ bool connecting;
+ time_t begin;
+ struct ptimer_task ptask;
+ 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