From 788ad4f86a3d5ff5be16398ce5dd7423a6a504cf Mon Sep 17 00:00:00 2001
From: "romain.gabet.etu" <romain.gabet.etu@univ-lille.fr>
Date: Sat, 27 Mar 2021 18:28:23 +0100
Subject: [PATCH] recherche fichier ok

---
 webserver/.client.c.swp     | Bin 1024 -> 1024 bytes
 webserver/.document.txt.swp | Bin 0 -> 1024 bytes
 webserver/.nano.swp         | Bin 0 -> 1024 bytes
 webserver/client.c          |  52 +++++++++++++++++++++++-------------
 webserver/client.o          | Bin 16096 -> 17056 bytes
 webserver/document.txt      |   3 +++
 webserver/pawnee            | Bin 32600 -> 32744 bytes
 webserver/test              |   1 -
 webserver/test/document.txt |   3 +++
 9 files changed, 39 insertions(+), 20 deletions(-)
 create mode 100644 webserver/.document.txt.swp
 create mode 100644 webserver/.nano.swp
 create mode 100644 webserver/document.txt
 delete mode 100644 webserver/test
 create mode 100644 webserver/test/document.txt

diff --git a/webserver/.client.c.swp b/webserver/.client.c.swp
index 85562012ec61da5cccdedab3ac697f1451f291d0..89bfb748a7ce25b0d9b9abd494ac610f6ec1825b 100644
GIT binary patch
delta 13
UcmZqRXyBM2!Ss}Sqtr8I038toUjP6A

delta 13
UcmZqRXyBM2!L*!hqtr8I02_n^8~^|S

diff --git a/webserver/.document.txt.swp b/webserver/.document.txt.swp
new file mode 100644
index 0000000000000000000000000000000000000000..54dd4c4c00b2fab3b7db91a173d9677d338c3341
GIT binary patch
literal 1024
zcmYc?$V<%2S1{HyVn6{=Tnr59iAkv?MJU2pImD_<$xklLP0cIOE2${KYS5_QXb6mk
I09``>0D40WEdT%j

literal 0
HcmV?d00001

diff --git a/webserver/.nano.swp b/webserver/.nano.swp
new file mode 100644
index 0000000000000000000000000000000000000000..9a0a707f9ff6e8d7a6a754ec740646d767a2cf9a
GIT binary patch
literal 1024
ycmYc?$V<%2S1{HyVn6}&IT;wz6O&R)ico~Ha)?z2vI(mJqk^L$Fd6~_5&{7CQVK8t

literal 0
HcmV?d00001

diff --git a/webserver/client.c b/webserver/client.c
index d4c1fcf..f0d43e8 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
GIT binary patch
delta 5503
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

delta 4423
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
bGUxmOYH~0zFz8KobTa4sU;#0F1IP;iA1Yus

diff --git a/webserver/document.txt b/webserver/document.txt
new file mode 100644
index 0000000..8eca45c
--- /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
GIT binary patch
delta 4320
zcmccdkMYHS#t9ls8s!tU?s0MQGk^gn|70OXJ<b=bU>?JZ$)1e+g*=oXJOn*iis_a}
zS<#N-oPNc}Vyo|T=>)XCi<_Rid@~1g7Qa9i4+DcoFE2BgvTftu+$5yH#FWW0d5MUg
zhl59R?E{7qOOI~X7apC*U;O(0|9_|JpVtZ=-JuV<UH^D=Uh6#m;>+*<|6wX_KvXo>
z{`p^e>owPYMg|6k7oR7Ki0aiZ;bdTF{_($5%%j)VfSZBgMf0Ek{~-!i{sEh?;N;;@
zkIttajc*(n85le|_n!Fo|G!7))&n4_*OmdKY2UB^|2>YkUikO_Kgg#Z$6If}n7vaU
z{QLiZ2S|9QG6Tqf>z_SVdvyNlWb$Y}q{!mYJr!(VFIcxn=QWU*<Uv+LL?+J^m9K{|
zJs2;f9cR#I@aUcju^d^;C6Ir6ZF9I77{HdjXau>bw-@9ln1=3FuvMMMJbG<|;0hza
z3L$3onkI39+<5#&(C`2MAwCcGsBeDb;n7*U!=u}E$3A<oCyu``0%_}XeE|t%kdaz&
zBiTT5&9yHWN>V|3Kwdih6BKI4Uvz_{I$a;Y#8?0P|G)Dv#E|1J=KlQuU-NM14UZWf
zovt@Lx?OL0^alK|2P^LNVD#vAec;h~4rHDP*gUW~4_^C%6?7hd5eF7M{z466%LSOY
z8%P{v<_WL}*r-qt`vTOsqd!2-a|LO*;L&`<BRUom>&<TrJUS;gh)FTU{hT~UOp+=1
z*W~SD%lP{^z`+Cw>U}>Z=ZIU%JpTUwf9D~OZr2|ky{2Bs3Nn98J}53$Z^gmD@WKY<
zl<rVa0D#nKBC9h1xdNoW^Z1LDAOHVPfW&}D<C_V}3=ExnYwrC2@6pTpiydS+$QoM?
zkdcz#|Nrl9g-DwIW@ljNJpLjSWK^f?2ao334-DYs{nVeGf#F5n4_NwM0#eZ(`oW{O
zb;5)H|Mxk_gG@dC;@e-4B~u%~c7dg!sd61714F0l8;@?+51<(Eo4iUwy1ozOmR`|z
zb_RxhQ^6VJ_=}nU{{MdsinI?Ny}S(&1+5?j6QBwzKnmhKdRxJkG#}vc=rt_>sp~xc
z;`_J%|631~DtdH>{(x9@(W6&11f=~0H0fD_w9A7f>w9@^K^l8S%|I%qKrN5}WlpF&
z*}sGQgRrXe_zM<L{(>aJ2Oi+;z{C#AHyYo-+5Uk?uPHmo<j&(S4na~AC_R4g=sdWK
zn}LC0AE*%V=&iT?z{bGvA_QbdbL|ZVkh@($-hRpkD#AqXu`w|0gSo2t@Bja=UBIcj
z^Z1K^Z~y;y9)BVG3sihv@c_jHD7`~UfcZcF|L+dH0`_CC>0*#!oyQ@m?Z;QJ1Ho}%
z!}xWwij*o>9z?;5vtK3$OBph8eVyDUrO9;v%jAtxUQEJYCjXVv;F`_~iQkW(C+kap
zv6{~U^Ks$l|Nmc$b-Vrnhr|rHc;x5*|93&WX?jwbfnopu|NsBLaQ-qmRz^jn_VfS$
z9-xww$D`Laf`x(Mh4z=pQ)T3tvOZ7VCL<@D_38hAm^3d)`sU}!&t)`%KQcpHas3lG
znuR@jZJ#kSFuY*@^#A`3Ed~aL*9tF8{)1x7_BKfT{m1|R_fL>#V0dxs3$z?Pc{ojv
zU%mxYq%!c!J1|U6kQEUJrQT4FUR@9!?4$YAqxlWTi{OuwyJZ8I8b58mE6dC{NujYG
ztcii4xFoTJAvq&8Ia?tyFGV50AT>{+B(=DN0Yv2I6+@L_D9J5Quu@Ph)>kc7;8G}o
z@)WojiWrJg%ZoBgQWZ)Pi_%j|6pB(yz$&>IJVHVO^bPe46;x9cR3}eU2w~)!{7ON0
zvVx+iVp?W$MrLY}f|UXngI|7$f?IxRUWySzaAs91NOua?<T%BGdPZqx>n#in45ADS
z3^(5X|Ifh4z`*h0|9=fe1_p@_|NmcLU|{(B;s1Y7{Z#Vl|NjI=28KJI{{L@aWMEMJ
z{Qv&~Mg|6pFaQ4^U}Ru0`uhL>6GjGx@~{8@voJ9*Z2J2DzX}rr11M3sFflObe*6DF
zg^7XT__zQ6TbLLan1BA)`@e#Tf#KP&|Nl=gF)%p({{R0469dDc-~az}Ff%Y%{Q3W1
zgPDP0#-IQH3z!)gR!pu{(q?p+yi!S@>B5`Ix0KYRZoK>dp92=63=9l13=9l03=9lg
z-%plOmQ&>U`2T+fNZOH4ppD6ymyIczhn)kWYz_khL&)SvWqG&SkN^J*gAyZ56*C_r
zNSOiy1H&B#28M!9|Ns9&HpR7>ndt*a1;iv!pt*gXyiZw<Df{!}d&+W5ZJ#IqQ<h^~
zGg($ep7G#hTNU|w>o5QR+b}UOFu*M_XMz|3G2{p%14Hn)|NkGOIOHDKAs}CYLRRd@
z|Nqg*4q*xd8v&9Bg?QkP|Nk3N<ZEE^Yz&~N*fjZ}iaZm?&&f=xZn6qL|NjSB2GRh+
z0t^fcOPClKB!2$?&%e1)^*8(E8@e7$4Dy?m^s1N{`zJG|3Quk@<P!P8&%gi)bZ=>p
zMh1q*jFTOi#H4f>7#NrsZVJPs^<*K^E@0`+B1Vr`nS{6||1g(l>Sx<5X(7*6pU>*f
zz`(#S2~h|RAO;2o#yNl37#Jj+LCkz9kP4QGZ+6s6TCg%OFcxyyF)}bPP0WxgE-7MQ
zEM^C(WuDmJD7l7>fq}7v-=CF%fo0-{9raRaDGZFI9M#Mq<q49?Al<cWAmf-O#z^wB
zF)-9K_Cieykj!UcU|^g8RqY}DMGE337YM~5c?2Xsl@Frbg@J)Dl7WGNmz{w@%#wkD
z!Csz0MjNCeg{@QqqGc9@Vqlz;!Op-S;RW(diWI~(84|VZ3=E9*DQXb&QX~Yynl1c5
zVK^~DViL%)DZvnK0E3J?NIIU)0cy4>-0UrIv*RUD%#K$<F*@E1Vpar$OgPA_5Vl|9
z43I+04Q|+HxM3lZAj6m^u5grO00nCpG?+IyGRVFF>Guc6+<tM0UTX-&z&J;hgMmQ~
z95eos5F0ZX#Mgp!xUhpFt_rHd6{G`XKjWNc4h9AZuq`e!ASFx_BP76~?V<tkLWmqF
zCS6QGPGXwqAyt%G!ocV%08yL4ARYt?EMu_o4Pqd385qDB78K%h)HoR!B%;77z@{@#
zTu~1(!Gxn8Vnl@eL8!J=h;D{&91ILnMX3c0jOLsWH33qY42%|By5RWnV31aW`okBh
z1ESgns@egh+ExOjnt9@mdIkpZd7vOrX9sy97gXFbFfa%+g8UD5WF_2@>PnzcW1hI9
zR-zuP1sre86F1aKmE;yMFlw@c)G|*zPzy<cU7XMqsLjYAz8j=N792AwP)j_a?qi&D
znv;P69FVf&pkQU5c&E-*syK;(QI0Q~m4ShI;)6N{g~uQh_`xRZ5rJq0m!M!*%4Oy;
zF!Bq4{J=CZLT>U@M-|loW(Ech#xN!Z2A(Nw3=BzZ3=D{30b&3b>tsa>>&=o*%*;&Q
z(v#&}Yg8*(;JOqz7#JQiF)$!X3y7{~Y?Bo&#5P}bUBkx2B{#X*$C0U1cJeVF9VR{5
z&0l<2nc27*1sR3dC;tqRpBxw{rZU}0l2Mp}L5`JynZt_Pn%k1wQ<zDDfk7Uk4kV{A
zIWSOib6UVf7A9rp&6c4v7zLlQvgot2a|p9?JYr=@VP!U({47j9jfta~m3=oW6O)-R
zM>CU&Fh>iAFe@jMrZ6ibM<lDV0W050RwfQ_Ru+y@R<Tl6{#~phyIGZXu`26<NG>l{
z&U9AkCRWZSRxS>GR<R6_3Z>nw61!M6(^<tqqUo%RK9e27Co}Gwd^Oxgu8ft5Bb}9-
zV>hc{DXS>Q7gk=5NLFSJLslk^1+2WAH6x@LnY^VpyGHUcf&3pD-OR<rAV2w5sve`q
zWW_X579j=(<;_ZIZA^?$Ca=uUXZj#F`Bp|8lZVn|t4ue`2Xc@=g%$Wlj0_Ay415eI
zxsic^0aVe0#Nj3K<ei!MobXIF*)Yo<6bnUJdPe9)5jzvaNc7@Q6e_MKJNZ(U8>l{!
z%I0Ha%$Tg1^Ir<R{8-KmF{D9mvQzFdBScPtIA4MVB8{HHKqW88*}udmOXazNl1oya
zn-qE$m;}<z#K-VKZu6nMGH#~%Jd>@e^tc%0A%-)^PcEu*V{&JjysJu&3u#2*Q<WJP
z1E_}$Qm4GxsJe}bF>~_HT64}?XzsV3{Ik}ab4M^p0RzLT$(D8IOi3}5i|Xtce@xz3
TXU~*TF!@uR9pnAUhV|+IRy#_z

delta 3813
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

diff --git a/webserver/test b/webserver/test
deleted file mode 100644
index 083bdf6..0000000
--- 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 0000000..8eca45c
--- /dev/null
+++ b/webserver/test/document.txt
@@ -0,0 +1,3 @@
+testons
+le
+fopen
-- 
GitLab