From bfa82d9c31d48f35f89c7f913a5bbf6544992817 Mon Sep 17 00:00:00 2001 From: Ruthenic Date: Wed, 22 Jun 2022 19:18:44 -0400 Subject: [PATCH] whatever but it works now i hate sockets --- Makefile | 2 +- bin/httpsrv | Bin 141024 -> 145696 bytes lib/reqHeader.h | 4 +++- src/srv.c | 11 +++++++---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index b38f0c2..e6b5f3e 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ all: main main: @${CC} -o bin/httpsrv src/main.c ${CC_FLAGS} -debug: CC_FLAGS:=-g -O0 -v -fsanitize=undefined -fsanitize=address ${CC_FLAGS} +debug: CC_FLAGS:=-g -O0 -v ${CC_FLAGS} debug: all clean: diff --git a/bin/httpsrv b/bin/httpsrv index 859eb5e0e737fd56f32b6a6d2546e86aa472db0b..686c11f1b60a48eee50ce3fed9d7744e8fc6ba72 100755 GIT binary patch literal 145696 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 C#R262 diff --git a/lib/reqHeader.h b/lib/reqHeader.h index b3a6573..2f10253 100644 --- a/lib/reqHeader.h +++ b/lib/reqHeader.h @@ -3,6 +3,7 @@ #include #include #include +#include #ifdef NO_GC #include #define malloc(n) GC_malloc(n) @@ -18,7 +19,8 @@ typedef struct { ReqHeader readReqHeader(int client) { char* buf = malloc(1024); - read(client, buf, 1024); + //read(client, buf, 1024); + recv(client, buf, 1024, 0); ReqHeader header; if (buf == NULL || !strcmp(buf, "")) { errno = -1; diff --git a/src/srv.c b/src/srv.c index fe9ea87..f822f54 100644 --- a/src/srv.c +++ b/src/srv.c @@ -39,9 +39,7 @@ void segfault(int sig) { #endif } -void *handle(void* arg) { - int client = *(int*)arg; - +int handle(int client) { ReqHeader request = readReqHeader(client); ResHeader rawHeader; if (errno == -1) { @@ -95,6 +93,11 @@ int srv(char* ADDR, int PORT) { srvAddr.sin_port = htons(PORT); srvAddr.sin_addr.s_addr = inet_addr(ADDR); + int opt = 1; + setsockopt(srvSocket, SOL_SOCKET, SO_REUSEADDR, (void *)opt, sizeof(int)); + opt = 0; + setsockopt(srvSocket, SOL_SOCKET, SO_LINGER, (void *)opt, sizeof(int)); + if (bind( srvSocket, (struct sockaddr*) &srvAddr, @@ -116,6 +119,6 @@ int srv(char* ADDR, int PORT) { while(1) { int client = accept(srvSocket, NULL, NULL); - handle(&client); + handle(client); } }