aboutsummaryrefslogtreecommitdiff
path: root/src/net/util.c
diff options
context:
space:
mode:
authoramelia squires <[email protected]>2024-10-02 11:54:33 -0500
committeramelia squires <[email protected]>2024-10-02 11:54:33 -0500
commit94d76d9e7ed5cb9273169babfa27e60fb28c4104 (patch)
treee5b22e3a47d50125e9050052f608d62f29d32003 /src/net/util.c
parentdbc8475da4701923ea6f426fc12cb83960ef0fa9 (diff)
server errors
Diffstat (limited to 'src/net/util.c')
-rw-r--r--src/net/util.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/net/util.c b/src/net/util.c
index 44a525b..150b8f9 100644
--- a/src/net/util.c
+++ b/src/net/util.c
@@ -63,6 +63,7 @@ int64_t recv_full_buffer(int client_fd, char** _buffer, int* header_eof, int* st
return len;
}
+#define max_uri_len 2048
/**
* @brief converts the request buffer into a parray_t
*
@@ -85,6 +86,11 @@ int parse_header(char* buffer, int header_eof, parray_t** _table){
item++;
if(buffer[oi] == '\n') break;
} else {
+ if(oi >= max_uri_len){
+ *_table = table;
+ str_free(current);
+ return -2;
+ }
str_pushl(current, buffer + oi, 1);
}
}
@@ -418,3 +424,10 @@ void parse_mimetypes(){
//printf("done\n");
}
+
+int net_error(int fd, int code){
+ char out[512] = {0};
+ sprintf(out, "HTTP/1.1 %i %s\n\n", code, http_code(code));
+ send(fd, out, strlen(out), 0);
+ return 0;
+}