Summary Files Commits Branches @commit @diff @stats
path: root / src / sockets / socket_server.h
diff options
context:
space:
mode:
Commit74630b4bfe1aa887ef57ee57b22241d030b38d76 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-11-15 21:37:37 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-11-15 21:37:37 +0200
Files3d39c585df1551d69fdb83980c010ec4b579f211 /src/sockets/socket_server.h
tergiv-74630b4bfe1aa887ef57ee57b22241d030b38d76.tar
tergiv-74630b4bfe1aa887ef57ee57b22241d030b38d76.tar.gz
tergiv-74630b4bfe1aa887ef57ee57b22241d030b38d76.zip
Parent3bca23eaaa49fa01f60ecbc5e0a329d29f088506 (diff)
feat!: Initial web server base implementation
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 */