diff options
| -rw-r--r-- | sh.exe.stackdump | 37 | ||||
| -rw-r--r-- | src/net.c | 19 |
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 @@ -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);
|
