Summary Files Commits Branches @commit @diff @stats
path: root / src / sockets / socket_server.h
diff options
context:
space:
mode:
1 files changed, 31 insertions, 0 deletions
-rw-r--r--src/sockets/socket_server.h31
diff --git a/src/sockets/socket_server.h b/src/sockets/socket_server.h
new file mode 100644
index 0000000..c74c4fd
--- /dev/null
+++ b/src/sockets/socket_server.h
@@ -0,0 +1,31 @@
+#ifndef __TERGIV_SOCKET_SERVER
+#define __TERGIV_SOCKET_SERVER
+
+#include <arpa/inet.h>
+
+typedef struct callback_args {
+ void* input;
+ size_t input_size;
+
+ void* output;
+ size_t output_size;
+ int free_output;
+
+ void* extra;
+ size_t extra_size;
+} callback_args;
+
+typedef struct socket_server {
+ int socket;
+
+ int (*start)(struct socket_server* self);
+ void (*destroy)(struct socket_server* self);
+
+ void (*callback)(callback_args* args);
+ void* callback_args;
+ size_t callback_argc;
+} socket_server;
+
+socket_server* new_socket_server_single_req(uint16_t port, uint32_t incoming_ip);
+
+#endif /* __TERGIV_SOCKET_SERVER */