From 766b77f0960b0026eca6fbf8b9d707a682a8e7c4 Mon Sep 17 00:00:00 2001 From: Ruthenic Date: Wed, 11 May 2022 23:05:01 -0400 Subject: [PATCH] probably a commit --- Makefile | 2 +- bin/httpsrv | Bin 23760 -> 22240 bytes lib/reqHeader.h | 16 +++++++++------- src/srv.c | 28 ++++++++++++++++++++++++---- 4 files changed, 34 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index e6b5f3e..b38f0c2 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 ${CC_FLAGS} +debug: CC_FLAGS:=-g -O0 -v -fsanitize=undefined -fsanitize=address ${CC_FLAGS} debug: all clean: diff --git a/bin/httpsrv b/bin/httpsrv index 0261de7d48bd7e5de7db5a0e0450456e373a3d31..12b1a95868d121c9de09d31f2cf2411b59996d61 100755 GIT binary patch literal 22240 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 C5x^b* literal 23760 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 JsBi(x{vYE$AHe_s diff --git a/lib/reqHeader.h b/lib/reqHeader.h index c9d0ead..b3a6573 100644 --- a/lib/reqHeader.h +++ b/lib/reqHeader.h @@ -2,6 +2,7 @@ #include #include #include +#include #ifdef NO_GC #include #define malloc(n) GC_malloc(n) @@ -19,13 +20,14 @@ ReqHeader readReqHeader(int client) { char* buf = malloc(1024); read(client, buf, 1024); ReqHeader header; - header.method = malloc(1024); - header.path = malloc(1024); - char* tBuf = malloc(1024); - /*strcpy(header.method, strtok(buf, " ")); - strcpy(header.path, strtok(NULL, " "));*/ - sprintf(header.method, "%s", strtok_r(buf, " ", &tBuf)); - sprintf(header.path, "%s", strtok_r(NULL, " ", &tBuf)); + if (buf == NULL || !strcmp(buf, "")) { + errno = -1; + return header; + } + //header.method = malloc(1024); + //header.path = malloc(1024); + header.method = strtok(buf, " "); + header.path = strtok(NULL, " "); if (header.path[1] == '\0') { //strcpy(header.path, "/index.html"); sprintf(header.path, "/index.html"); diff --git a/src/srv.c b/src/srv.c index a4f2fbe..fe9ea87 100644 --- a/src/srv.c +++ b/src/srv.c @@ -21,22 +21,42 @@ #include "log.h" #include "mime.h" +int srvSocket; + void safeExit(int sig) { info("Exiting...\n"); #ifdef NO_GC GC_gcollect(); #endif + close(srvSocket); _exit(0); } +void segfault(int sig) { + warn("may or may not have segfaulted\n"); +#ifdef NO_GC + GC_gcollect(); +#endif +} + void *handle(void* arg) { int client = *(int*)arg; ReqHeader request = readReqHeader(client); ResHeader rawHeader; - rawHeader.protocol = request.protocol; - rawHeader.status = 200; - rawHeader.notice = "OK"; + if (errno == -1) { + warn("somehow we got a NULL request????\n"); + rawHeader.status = 500; + rawHeader.notice = "Internal Server Error"; + char* tmpHeader = malloc(1024); + makeHeader(tmpHeader, &rawHeader); + send(client, tmpHeader, strlen(tmpHeader), 0); + close(client); + return 0; + } else { + rawHeader.status = 200; + rawHeader.notice = "OK"; + } int useBinary = getMime(&rawHeader.mime, request.path); if (errno == -1) { @@ -67,7 +87,6 @@ void *handle(void* arg) { } int srv(char* ADDR, int PORT) { - int srvSocket; struct sockaddr_in srvAddr; srvSocket = socket(AF_INET, SOCK_STREAM, 0); @@ -91,6 +110,7 @@ int srv(char* ADDR, int PORT) { } signal(SIGINT, safeExit); + //signal(SIGSEGV, segfault); info("Server (probably) listening on http://%s:%d\n", ADDR, PORT);