aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorame <[email protected]>2024-02-16 14:10:41 -0600
committerame <[email protected]>2024-02-16 14:10:41 -0600
commitac261d7d54a99789ab13a6812563ff0518243d2b (patch)
tree6409731554f9ac2603b36d12ed3c9ba66c780ad6
parentd8651138d63cd021afa4f719ce5007ed289d0fb6 (diff)
i think i fixed it
-rw-r--r--sh.exe.stackdump37
-rw-r--r--src/net.c19
2 files changed, 49 insertions, 7 deletions
diff --git a/sh.exe.stackdump b/sh.exe.stackdump
new file mode 100644
index 0000000..d4d8e82
--- /dev/null
+++ b/sh.exe.stackdump
@@ -0,0 +1,37 @@
+Stack trace:
+Frame Function Args
+0000005FF160 00021006118E (0002102B5B12, 000210272B3E, 00000000005C, 0000005FACC0) msys-2.0.dll+0x2118E
+0000005FF160 0002100469BA (000000000000, 000000000000, 0000000000FC, 000000001000) msys-2.0.dll+0x69BA
+0000005FF160 0002100469F2 (000000000000, 00000000005C, 00000000005C, 000000000000) msys-2.0.dll+0x69F2
+0000005FF160 0002101791D8 (0002102B5892, 000800000000, 00080000DFB8, 000000000000) msys-2.0.dll+0x1391D8
+0000005FF160 000210183B57 (000000000000, 0002102280B8, 0002102280A0, 0000005FD320) msys-2.0.dll+0x143B57
+0000005FF160 000210046DF4 (00021031C800, 0000005FD320, 000000000000, 000000000000) msys-2.0.dll+0x6DF4
+0000005FF160 00021004850F (00007FFE0384, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x850F
+0000005FF160 00021007251C (000000000000, 0000007D7C34, 000000000000, 000000000000) msys-2.0.dll+0x3251C
+0000005FF400 7FFCDCAD869F (000210040000, 000000000001, 000000000000, 7FFCDCBE8A70) ntdll.dll+0x2869F
+0000005FF400 7FFCDCB1D04D (0000005FF300, 000000000000, 0000007D5118, 000000000001) ntdll.dll+0x6D04D
+0000005FF400 7FFCDCB1CDFE (0000007D2A30, 0000005FF400, 0000007D5210, 000000000000) ntdll.dll+0x6CDFE
+0000005FF400 7FFCDCB1CE70 (7FFCDCBEB7F0, 000000000000, 0000003E1000, 7FFC00000000) ntdll.dll+0x6CE70
+000000000000 7FFCDCB8EA75 (000000000000, 000000000000, 000000000001, 000000000000) ntdll.dll+0xDEA75
+000000000000 7FFCDCB7A184 (7FFCDCAB0000, 0000003E1050, 0000003E37EE, 000000000000) ntdll.dll+0xCA184
+000000000000 7FFCDCB23EB3 (000000000000, 0000005FFAD0, 000000000000, 000000000000) ntdll.dll+0x73EB3
+000000000000 7FFCDCB23DDE (000000000000, 0000005FFAD0, 000000000000, 000000000000) ntdll.dll+0x73DDE
+End of stack trace
+Loaded modules:
+000100400000 sh.exe
+7FFCDCAB0000 ntdll.dll
+7FFCDC5C0000 KERNEL32.DLL
+7FFCDA360000 KERNELBASE.dll
+7FFCDA800000 USER32.dll
+000210040000 msys-2.0.dll
+7FFCDA100000 win32u.dll
+7FFCDAF00000 GDI32.dll
+7FFCD9F40000 gdi32full.dll
+7FFCDA060000 msvcp_win.dll
+7FFCD9E20000 ucrtbase.dll
+7FFCDC9B0000 advapi32.dll
+7FFCDAAC0000 msvcrt.dll
+7FFCDC3C0000 sechost.dll
+7FFCDC690000 RPCRT4.dll
+7FFCD9590000 CRYPTBASE.DLL
+7FFCDA710000 bcryptPrimitives.dll
diff --git a/src/net.c b/src/net.c
index 758f6cc..144c6e7 100644
--- a/src/net.c
+++ b/src/net.c
@@ -54,6 +54,8 @@ size_t recv_full_buffer(int client_fd, char** _buffer, int* header_eof){
int n;
int content_len = -1;
//printf("before\n");
+ //fcntl(client_fd, F_SETFL, fcntl(client_fd, F_GETFL) | O_NONBLOCK)
+ printf("\n");
for(;;){
n = recv(client_fd, buffer + len, BUFFER_SIZE, 0);
if(*header_eof == -1 && (header = strstr(buffer, "\r\n\r\n")) != NULL){
@@ -66,21 +68,25 @@ size_t recv_full_buffer(int client_fd, char** _buffer, int* header_eof){
for(int i = 16; cont_len_raw[i] != '\r'; i++) str_pushl(cont_len_str, cont_len_raw + i, 1);
content_len = strtol(cont_len_str->c, NULL, 10);
str_free(cont_len_str);
- //printf("nut\n");
+ //printf("nut\n");*/
+
}
//check if the recv read the whole buffer length, sometimes it wont so i peek to see if there is more
//if(n != BUFFER_SIZE && recv(client_fd, NULL, 1, MSG_PEEK) != 1) break;
+ printf("%i %i\n", n, content_len);
len += n;
- if(n != 0){
+ //if(n != 0){
//printf("buffer %i\n", n);
- buffer = realloc(buffer, len + n);
+ buffer = realloc(buffer, len + BUFFER_SIZE);
//printf("realloc\n");
memset(buffer + len, 0, n);
+
+
//printf("%i\n", len - *header_eof - 4);
- }
+ //}
if(content_len != -1 && len - *header_eof - 4 >= content_len) break;
}
- //printf("%i\n",len - *header_eof - 4);
+ printf("%i\n",len - *header_eof - 4);
*_buffer = buffer;
return len + BUFFER_SIZE;
}
@@ -442,7 +448,6 @@ void* handle_client(void *_arg){
//read full request
size_t bytes_received = recv_full_buffer(client_fd, &buffer, &header_eof);
-
//if the buffer, yknow exists
if(bytes_received > 0){
str** table;
@@ -483,7 +488,7 @@ void* handle_client(void *_arg){
luaI_tsets(L, req_idx, "ip", inet_ntoa(args->cli.sin_addr));
//printf("%s\n",table[T]->c);
- file_parse(L, buffer + header_eof, table[T]);
+ //file_parse(L, buffer + header_eof, table[T]);
//functions
luaI_tsetcf(L, res_idx, "send", l_send);