summaryrefslogtreecommitdiff
path: root/src/net/net.h
diff options
context:
space:
mode:
authorSoikk2025-12-06 20:16:37 +0100
committerSoikk2025-12-06 20:19:18 +0100
commita55c8ef63bb4941fdee5ddf00ed564e246c8a939 (patch)
treeeed8f07ee9c2deb5d82d9dac130ef228a0b7b705 /src/net/net.h
parent534303b80b5304a2b29d456d6b5c7a6ac1daaf1c (diff)
downloadsoikk-server-a55c8ef63bb4941fdee5ddf00ed564e246c8a939.tar.xz
soikk-server-a55c8ef63bb4941fdee5ddf00ed564e246c8a939.tar.zst
Reworked worker architecture
- replaced the central socket-multiple accepts architecture thanks to SO_REUSEPORT - removed master/worker distinctions for server and config - fixed bug with rewrites not being read properly by multiple workers because of null characters
Diffstat (limited to 'src/net/net.h')
-rwxr-xr-xsrc/net/net.h27
1 files changed, 7 insertions, 20 deletions
diff --git a/src/net/net.h b/src/net/net.h
index 297e417..d23c970 100755
--- a/src/net/net.h
+++ b/src/net/net.h
@@ -66,36 +66,23 @@ typedef struct http_server {
str port;
int backlog;
int ssocket;
-} http_server;
-
-typedef struct http_worker {
- int ssocket;
int csocket;
int secure;
SSL_CTX *ssl_ctx;
SSL *ssl;
-} http_worker;
-
-#define MAX_RESPONSE_SIZE 0x0FFFFFFF
-#define MAX_BODY_SIZE (MAX_RESPONSE_SIZE - 0x0FFF)
-
-#define insert_header(hm, h) \
- (hm).headers[(hm).hlen++] = (h)
+} http_server;
http_server *setup_http_server(str port, int backlog);
void destroy_http_server(http_server **hs);
-http_worker *setup_http_worker(int ssocket, int secure, str certfile, str keyfile);
-void destroy_http_worker(http_worker **hw);
-
-int setup_https(http_worker *hw, str certfile, str keyfile);
-void reset_https(http_worker *hw);
-void terminate_https(http_worker *hw);
+int setup_https(http_server*hs, str certfile, str keyfile);
+void reset_https(http_server *hs);
+void terminate_https(http_server *hs);
-int accept_connection(http_worker *hw, char ip[INET_ADDRSTRLEN]);
+int accept_connection(http_server *hs, char ip[INET_ADDRSTRLEN]);
-int receive_request(http_worker *hw, str *request);
+int receive_request(http_server *hs, str *request);
str generate_resource(url resource, str rurl);
@@ -107,6 +94,6 @@ enum http_method get_http_method(str method);
url sanitize_url(str rurl);
-void send_file(http_worker *hw, str filename);
+void send_file(http_server *hs, str filename);
#endif \ No newline at end of file