diff --git a/webserver/.client.c.swp b/webserver/.client.c.swp index bfa669678568879eec95db0d19c2152d2695122b..85562012ec61da5cccdedab3ac697f1451f291d0 100644 Binary files a/webserver/.client.c.swp and b/webserver/.client.c.swp differ diff --git a/webserver/.test.swp b/webserver/.test.swp new file mode 100644 index 0000000000000000000000000000000000000000..c5d593cd0bd14f5f57bd4022477ae4ae6a0cdb52 Binary files /dev/null and b/webserver/.test.swp differ diff --git a/webserver/client.c b/webserver/client.c index aeb4efc0ccc564f09aee59316be2fb4b5e523b38..d4c1fcf09749695aa5f01cd275908053c4265553 100644 --- a/webserver/client.c +++ b/webserver/client.c @@ -12,10 +12,10 @@ #include <unistd.h> -/*int copy(FILE* in, FILE* out){ - char* ch; +int copy(FILE* in, FILE* out){ + int ch; if(in && out){ - while((ch = fgetc(in))!= EOF ){ + while((ch =( fgetc(in))!= EOF) ){ fputc(ch,out); } }else{ @@ -35,8 +35,12 @@ int get_file_size(int fd){ } FILE* check_and_open(const char* target, const char *document_root){ - return fopen(target +"/"+document_root,"r"); -}*/ + char*tmp=""; + strcat(tmp,target); + strcat(tmp,"/"); + strcat(tmp,document_root); + return fopen(tmp,"r"); +} char* rewrite_target(char *target){ char* ret = strrchr(target, '?'); @@ -117,22 +121,23 @@ int traitementClient(int socket_client){ }else if (strcmp(request.target, "/test?aled") == 0){ send_response(fd, 200, "OK", motd); //--- - -/* FILE* fichier = check_and_open(absolute_path, "document.txt"); - if(fichier == NULL){ - send_response(fd, 404, "Not Found", "Not Found"); - } - int size = get_file_size(fileno(fichier)); - if(copy(fichier,fd))==-1){ - //error - }*/ }else{ send_response(fd, 404, "Not Found", "Not Found"); } - fflush(fd); + fflush(fd); //partie 7 - char* absolute_path = rewrite_target(request.target); + char* absolute_path = rewrite_target(request.target); printf("test - - - - - - - - %s\n",absolute_path); + FILE* fichier = check_and_open(absolute_path, "document.txt"); + if(fichier == NULL){ + send_response(fd, 404, "Not Found", "Not Found"); + } + int size = get_file_size(fileno(fichier)); + if(copy(fichier,fd)==-1){ + //error + } + fprintf(fd,"Size : %d",size); + fclose(fd); return 0; } diff --git a/webserver/client.o b/webserver/client.o index 231792ee3b185c0270bda04d5b4f9f5bbe0b2fca..16d98872480019bf02398d079acc861bda362bc9 100644 Binary files a/webserver/client.o and b/webserver/client.o differ diff --git a/webserver/pawnee b/webserver/pawnee index 1bec3235ec9bd1a52495f0b3d87b4a45080e03b7..877257081730a5dd19685f0d9fa8d586c83b0b75 100755 Binary files a/webserver/pawnee and b/webserver/pawnee differ diff --git a/webserver/test b/webserver/test new file mode 100644 index 0000000000000000000000000000000000000000..083bdf622d749041247f2af32833dec6eb2649e7 --- /dev/null +++ b/webserver/test @@ -0,0 +1 @@ +testons