diff --git a/webserver/.client.c.swp b/webserver/.client.c.swp index 85562012ec61da5cccdedab3ac697f1451f291d0..89bfb748a7ce25b0d9b9abd494ac610f6ec1825b 100644 Binary files a/webserver/.client.c.swp and b/webserver/.client.c.swp differ diff --git a/webserver/.document.txt.swp b/webserver/.document.txt.swp new file mode 100644 index 0000000000000000000000000000000000000000..54dd4c4c00b2fab3b7db91a173d9677d338c3341 Binary files /dev/null and b/webserver/.document.txt.swp differ diff --git a/webserver/.nano.swp b/webserver/.nano.swp new file mode 100644 index 0000000000000000000000000000000000000000..9a0a707f9ff6e8d7a6a754ec740646d767a2cf9a Binary files /dev/null and b/webserver/.nano.swp differ diff --git a/webserver/client.c b/webserver/client.c index d4c1fcf09749695aa5f01cd275908053c4265553..f0d43e8205a9b52376b1074cff277a47e8a0924e 100644 --- a/webserver/client.c +++ b/webserver/client.c @@ -15,8 +15,10 @@ int copy(FILE* in, FILE* out){ int ch; if(in && out){ - while((ch =( fgetc(in))!= EOF) ){ + ch = fgetc(in); + while(ch != EOF ){ fputc(ch,out); + ch=fgetc(in); } }else{ //error reading @@ -35,21 +37,31 @@ int get_file_size(int fd){ } FILE* check_and_open(const char* target, const char *document_root){ - char*tmp=""; + printf("check and open test\n"); + char tmp[300]=""; strcat(tmp,target); strcat(tmp,"/"); strcat(tmp,document_root); + + printf("testons"); + printf("check and open tmp : %s/%s \n tmp : %s \n",target,document_root,tmp); return fopen(tmp,"r"); } char* rewrite_target(char *target){ char* ret = strrchr(target, '?'); - char* rep = malloc(strlen(target)*sizeof(char)); - if (ret!= NULL){ - size_t i = (int)(strlen(target)-strlen(ret)); - rep = strncpy(rep,target,i); - } - return rep; + printf("rewrite target ret : %s\n",ret); + if(ret != NULL){ + char* rep = malloc(strlen(target)*sizeof(char)); + size_t i = (int)(strlen(target)-strlen(ret)); + rep = strncpy(rep,target+1,i-1); + return rep; + }else{ + char* rep = malloc(strlen(target)*sizeof(char)); + size_t i = (int)(strlen(target)); + rep = strncpy(rep,target+1,i); + return rep; + } } @@ -99,13 +111,13 @@ void send_response(FILE *client, int code, const char *reason_phrase, const char int traitementClient(int socket_client){ /* On peut maintenant dialoguer avec le client */ char *motd="Votre requète est bonne"; - printf("test"); + printf("test\n"); char str[8000]; http_request request; FILE *fd; fd = fdopen(socket_client, "a+"); if(fd == NULL) { - perror("Error opening file"); + perror("Error opening file\n"); exit(1); } //fprintf(fd,"pas d'erreurs d'ouverture\n"); @@ -118,7 +130,7 @@ int traitementClient(int socket_client){ }else{ send_response(fd, 400, "Bad Request", "Bad request"); } - }else if (strcmp(request.target, "/test?aled") == 0){ + }else if (strcmp(request.target, "/") == 0){ send_response(fd, 200, "OK", motd); //--- }else{ @@ -128,16 +140,18 @@ int traitementClient(int socket_client){ //partie 7 char* absolute_path = rewrite_target(request.target); printf("test - - - - - - - - %s\n",absolute_path); + FILE* fichier = check_and_open(absolute_path, "document.txt"); + fprintf(fd,"fichier : \n"); if(fichier == NULL){ - send_response(fd, 404, "Not Found", "Not Found"); - } - int size = get_file_size(fileno(fichier)); - if(copy(fichier,fd)==-1){ + send_response(fd, 404, "Not Found2", "Not Found2"); + }else{ + int size = get_file_size(fileno(fichier)); + if(copy(fichier,fd)==-1){ //error - } - fprintf(fd,"Size : %d",size); - + } + fprintf(fd,"Size : %d\n",size); + } fclose(fd); - return 0; + return 0; } diff --git a/webserver/client.o b/webserver/client.o index 16d98872480019bf02398d079acc861bda362bc9..7c8cbca5fa3bfa1170d9f816730c56282f35a0f3 100644 Binary files a/webserver/client.o and b/webserver/client.o differ diff --git a/webserver/document.txt b/webserver/document.txt new file mode 100644 index 0000000000000000000000000000000000000000..8eca45cd5ac9af096831abc25a50e6c38755d142 --- /dev/null +++ b/webserver/document.txt @@ -0,0 +1,3 @@ +testons +le +fopen diff --git a/webserver/pawnee b/webserver/pawnee index 877257081730a5dd19685f0d9fa8d586c83b0b75..64b0a4f448da27deb176f20f2ac22a8016a27c44 100755 Binary files a/webserver/pawnee and b/webserver/pawnee differ diff --git a/webserver/test b/webserver/test deleted file mode 100644 index 083bdf622d749041247f2af32833dec6eb2649e7..0000000000000000000000000000000000000000 --- a/webserver/test +++ /dev/null @@ -1 +0,0 @@ -testons diff --git a/webserver/test/document.txt b/webserver/test/document.txt new file mode 100644 index 0000000000000000000000000000000000000000..8eca45cd5ac9af096831abc25a50e6c38755d142 --- /dev/null +++ b/webserver/test/document.txt @@ -0,0 +1,3 @@ +testons +le +fopen