aboutsummaryrefslogtreecommitdiff
path: root/src/net/util.c
diff options
context:
space:
mode:
authorame <[email protected]>2026-06-08 22:43:05 -0500
committerame <[email protected]>2026-06-08 22:43:05 -0500
commit66aedfd65cff3494b70e8072646094479e3bfed8 (patch)
tree0106935549143d542819da445e9a74740d617d94 /src/net/util.c
parent4cbf47f295fc65e4a470d93194259d80c942b32b (diff)
net util
Diffstat (limited to 'src/net/util.c')
-rw-r--r--src/net/util.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/net/util.c b/src/net/util.c
index d770f5e..ce4fc26 100644
--- a/src/net/util.c
+++ b/src/net/util.c
@@ -1,5 +1,6 @@
#include "common.h"
#include "util.h"
+#include "ssl.h"
#include <ctype.h>
int64_t recv_header(struct net_data* data, char** _buffer, char** header_eof){
@@ -467,7 +468,11 @@ void _parse_mimetypes(){
int net_error(struct net_data* ctx, int code){
char out[512] = {0};
- sprintf(out, "HTTP/1.1 %i %s\n\n", code, http_code(code));
+ str* s = str_init(http_code(code));
+ str_lowercase(s);
+
+ sprintf(out, "HTTP/1.1 %i %s\n\n%s", code, http_code(code), s->c);
+ free(s);
net_ctx_write(ctx, out, strlen(out));
return 0;
}
@@ -513,3 +518,18 @@ int net_ctx_write(struct net_data* data, void* buffer, size_t c){
}
return SSL_write(data->ssl, buffer, c);
}
+
+int net_ctx_close(struct net_data* data){
+ if(data->sock != -1){
+ if(data->ssl != NULL) SSL_shutdown(data->ssl);
+ else {
+ shutdown(data->sock, 2);
+ closesocket(data->sock);
+ }
+ }
+
+ data->sock = -1;
+ free(data);
+
+ return 0;
+}