diff options
| author | Soikk | 2025-12-06 20:16:37 +0100 |
|---|---|---|
| committer | Soikk | 2025-12-06 20:19:18 +0100 |
| commit | a55c8ef63bb4941fdee5ddf00ed564e246c8a939 (patch) | |
| tree | eed8f07ee9c2deb5d82d9dac130ef228a0b7b705 /src/net/net.h | |
| parent | 534303b80b5304a2b29d456d6b5c7a6ac1daaf1c (diff) | |
| download | soikk-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-x | src/net/net.h | 27 |
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 |
