hermes

HTTP GET/HEAD-only web server for static content.
git clone git://git.francescosaccone.com/hermes
Log | Files | Refs | README | LICENSE

commit a793af32722b22c2e3bde52f87b4117d40ff13de
parent df22b273574ae14e3e636050a44dd274750aa747
Author: Francesco Saccone <francesco@francescosaccone.com>
Date:   Mon, 31 Mar 2025 14:11:44 +0200

fix: move main while loop inside child process

Signed-off-by: Francesco Saccone <francesco@francescosaccone.com>

Diffstat:
Mhermes.c | 17+++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/hermes.c b/hermes.c @@ -117,6 +117,15 @@ main(int argc, char *argv[]) { break; case 0: /* child process */ + + while (1) { + int client_socket_fd = accept_client(server_socket_fd), + buffer_size = 104857600 * sizeof(char); /* i.e. 100 MiB */ + char *buffer = malloc(buffer_size); + + read_client_request(client_socket_fd, buffer, buffer_size); + } + break; default: /* parent process */ @@ -131,13 +140,5 @@ main(int argc, char *argv[]) { break; } - while (1) { - int client_socket_fd = accept_client(server_socket_fd), - buffer_size = 104857600 * sizeof(char); /* i.e. 100 MiB */ - char *buffer = malloc(buffer_size); - - read_client_request(client_socket_fd, buffer, buffer_size); - } - return 0; }