From 46714e112cfee338f5b40e936e6b4ef145465c53 Mon Sep 17 00:00:00 2001
From: "romain.gabet.etu" <romain.gabet.etu@univ-lille.fr>
Date: Mon, 1 Mar 2021 15:55:02 +0100
Subject: [PATCH] ok sauf Content-Length

---
 webserver/.client.c.swp | Bin 0 -> 1024 bytes
 webserver/client.c      |  61 ++++++++++++++++++++--------------------
 webserver/client.o      | Bin 3064 -> 3488 bytes
 webserver/pawnee        | Bin 18080 -> 18120 bytes
 4 files changed, 31 insertions(+), 30 deletions(-)
 create mode 100644 webserver/.client.c.swp

diff --git a/webserver/.client.c.swp b/webserver/.client.c.swp
new file mode 100644
index 0000000000000000000000000000000000000000..a8adeb964feb5960ac505a8183ebe78242a2d52f
GIT binary patch
literal 1024
zcmYc?$V<%2S1{HyVn6{)SQ!}76O&R)ico~Ha)?!zoRgWFSE84U)sRua(GVC70lJ3(
E0PV30l>h($

literal 0
HcmV?d00001

diff --git a/webserver/client.c b/webserver/client.c
index 19fffad..c1cd904 100644
--- a/webserver/client.c
+++ b/webserver/client.c
@@ -12,13 +12,16 @@
 char* testCorrect(char* str, int first){
 	char* strRet;
 	char *correctStr = "GET / HTTP/1.1";
-	char *incorrectStr = "HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-Length: 17\r\n\r\n400 Bad request";
- 	char *correctStr2 = "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 17\r\n\r\n200 OK";
+	char *correctStr2 = "GET /inexistant HTTP/1.1";
+	char *incorrectStrBR = "HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-Length:17\r\n\r\n400 Bad request";
+ 	char *correctStrOk = "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Length: 17\r\n\r\n200 OK";
+	char *incorrectStrNF = "HTTP/1.1 404 not found\r\nConnection close\r\nContent-Length:17\r\n\r\n404 Not Found";
 	if(strstr(str,correctStr) == NULL && first == 0) {
-		strRet=incorrectStr;
-		//printf("---\n%s\n---",str);
+		strRet=incorrectStrBR;
 	}else if(!strcmp(str,"\r\n")) {
-		strRet = correctStr2;
+		strRet = correctStrOk;
+	}else if(strcmp(str,correctStr2)){
+		strRet = incorrectStrNF;
 	}else{
 		strRet = NULL;
 	}
@@ -27,31 +30,29 @@ char* testCorrect(char* str, int first){
 }
 
 
-int traitementClient(int socket_client){
-			/* On peut maintenant dialoguer avec le client */
-			//const char *message_bienvenue = "Bonjour, bienvenue sur mon serveur\nExcogitatum est super his, ut homines quidam ignoti, vilitate ipsa parum cavendi ad colligendos rumores per Antiochiae latera cuncta destinarentur relaturi quae audirent. hi peragranter et dissimulanter honoratorum circulis adsistendo pervadendoque divites domus egentium habitu quicquid noscere poterant vel audire latenter intromissi per posticas in regiam nuntiabant, id observantes conspiratione concordi, ut fingerent quaedam et cognita duplicarent in peius, laudes vero supprimerent Caesaris, quas invitis conpluribus formido malorum inpendentium exprimebat.Sed fruatur sane hoc solacio atque hanc insignem ignominiam, quoniam uni praeter se inusta sit, putet esse leviorem, dum modo, cuius exemplo se consolatur, eius exitum expectet, praesertim cum in Albucio nec Pisonis libidines nec audacia Gabini fuerit ac tamen hac una plaga conciderit, ignominia senatus.Post emensos insuperabilis expeditionis eventus languentibus partium animis, quas periculorum varietas fregerat et laborum, nondum tubarum cessante clangore vel milite locato per stationes hibernas, fortunae saevientis procellae tempestates alias rebus infudere communibus per multa illa et dira facinora Caesaris Galli, qui ex squalore imo miseriarum in aetatis adultae primitiis ad principale culmen insperato saltu provectus ultra terminos potestatis delatae procurrens asperitate nimia cuncta foedabat. propinquitate enim regiae stirpis gentilitateque etiam tum Constantini nominis efferebatur in fastus, si plus valuisset, ausurus hostilia in auctorem suae felicitatis, ut videbatur.";
+char* fgets_or_exit(char * buffer, int size, FILE *fd){
+	int first = 0;
+	while(!feof(fd) && fgets(buffer,size,fd) != NULL){
+		char* resTest = testCorrect(buffer,first);
+		if(resTest!=NULL)fprintf(fd,"<Notre Serveur> %s\n",resTest);
+               	first=1;
+                fflush(fd);
+	}
+        first=0;
+	exit(1);
+}
 
-//	int status = 1;
-		//while(status>0){
-			char str[8000];
-			FILE *fd;
-			//status = write(socket_client, message_bienvenue, strlen(message_bienvenue));
-			fd = fdopen(socket_client, "a+");
-			fprintf(fd,"Bienvenue client\n");
-			if(fd == NULL) {
-   				perror("Error opening file");
-				exit(1);
-			}
-			//printf("test avant while\n");
-			int first = 0;
-			while(!feof(fd) && fgets(str,8000,fd) != NULL){
-				char* resTest = testCorrect(str,first);
-				if(resTest!=NULL)fprintf(fd,"<Notre Serveur> %s\n",resTest);
-				first=1;
-				fflush(fd);
-			}
-			first=0;
-			//fflush(fd);
-			fclose(fd);
+int traitementClient(int socket_client){
+	/* On peut maintenant dialoguer avec le client */
+	char str[8000];
+	FILE *fd;
+	fd = fdopen(socket_client, "a+");
+	fprintf(fd,"Bienvenue client\n");
+	if(fd == NULL) {
+		perror("Error opening file");
+		exit(1);
+	}
+	fgets_or_exit(str,8000,fd);
+	fclose(fd);
     return 0;
 }
diff --git a/webserver/client.o b/webserver/client.o
index 3c7aaca08ec00cfdfd7053bcff251547ae5502d8..1ed8fdae63b1dd7e3cc24efdf9ffa85921daf1b5 100644
GIT binary patch
literal 3488
zcmb<-^>JfjWMqH=Mg}_u1P><4z>vU&U^{@B4h*~uJPe^8oliZQ-#B=5)}H7rJ>t>J
z3X=5bbp3!}zCbV^Aec80%nKgfp&vZDT~By)Ui0WY{sL@7>w!{%=Gr3+rCc7}t`9sq
zU4Ojx0;}mY1<OO#wH^Q~xB*t6>Cqkf0;~vOQ0svbkO>#S3OGEDyZ!)c?{@v+(Rs|H
z*A~Rv0U{vQcDw#Kc^K*|1CP$y7oDX~JUT;f9C!T#QuNxpJM@o7x9bap1z^uM*M49q
zk%9W-h6mh@2$PSy{s9H7N4M(@xF3<&tp`e_Ji0?~bo)L58-EV2sP#Z;H`Mn1AQQmu
z1iP^DO@cfFL+9Q#5B~q}ZUvE0i=kly^0EimqX%~hGB7ag18IkP8ElG2bL|g?QZZy9
zgcTm$p+7u&TQ@xT|9_u@JOcyVL0}Uhu>|(s$-@i`?yeyU`U)N)Ap!b^dWH~gW?pJV
zW^qYkUI{`1rb5BQz(Bz%F-0LLwXig`xP+I>IX^EiHMt}+KhH`bIVZn36)aSenpdLh
zlbV-al3`_N&dbHi1=Cmr(FlqZ1_lPWxkd&C3jW?;y#$O?fS3o-05t|-j){SZLSBA}
zLRx-lUJ9~t1RQ6g;Fn*b;0Dsgz{|y;tE<bUTFj-ZtIJ^HmtRtpst}x7RF+y=WT&87
z%*BwX&ES-onpc*ZSDLDjoRgWFSHi{MT2z!@q>x{bnwOcEu8@|Qlghy0?(A%(py865
zl$n^PV4-KMXP|4Q31NVpE&?VQ7#OR97#J%A7^QjGIVLbNFvu`KFi83uh;ZZ+Xk&8b
zWn;R?!_L9LAi==EU;`3oU|?7TqG9q33=9ek3=9z<F$M;PJ`fF)W9kI!1qtE8pp?eK
z@bN!3d1kC73<Co*12Z<|49pBHIK;t)4Tc;u13QKoNPwAv14Ln9W(GD4F;H<Qgyc?e
z*fB6Lh%qoQ2w<pYV9>!KZj3|R6Nk7J0|NudUYLF0I02<^9O?sbh==14kHI1Cj6*yL
z>YfTvgu>DR0|P@b4)s+y#2aylci<3bfMf=}WQLN|;u7clqN3E~5{7tpAAcuDpLl;a
zw_w+h_z*`YAJ=$>;*z4`k|Ge5oLj(<mY!Nt9G_nlpIVVw!jM)_l$lqO#*mhlQ(BzC
zkd~UC22sIKQk0lklA4>ESK<uLcMNGMpe)CbR$i1@lFCq!3d)5HY2cy=6eo~KXJTMr
z0HwM={~<sYBFq32=Z5k%pfpTe1<D7d2M`k`UIXGVFfiCbX_)vCC_fZRgK_}KY?!^J
zP;r=gL1_HcLd8Mqc^DWNVCv`L5I+PJhnXV+HRlXe9ApkJk~y#p4HD->5|@PPgP9`_
z<*Pwyka~V3^_EEDp!@`Lrz?^;sLFzg$03OeA(>NxBrc33J_#xgbB{5UKNCuW+#`yl
zek)WQrrr$7-vy;X>OpxQ=AIK!ahQ4!DE};!2B{ZEGXFY~II=t6BZ>1NssD{64l1Kz
z_JYb}P}G3z1z`{ygduG*25>qAiNnedP<{u=gTz1>mX8_qiYs$V5|bG8ic5+hbOwx7
zl$w*MSCU#$!l0LuSdz$~msDKLpjVU+;Uwqhf-((*US57ls-C-FsBUpdVsbWv9#~sy
zMtoXPVs0wPPHJF~e?dWkUP8nC%Leikl0_i3NL&VK1_p5L0aFi?(|}eH9Z>zC@*boY
zRzrZo9Hdr_fdO0#pw~=pP<<dZ$QWb>G9OegfXpOUzai9qbn85z0`X`Tg6u-J-x8|d
z09lZMfnhn+L9p@*CJi$VMms_E!{lM~5vYC`A4bFU!T6wh2qXq|E=-u=1XO<oTm-^E
zcYhF$_}c&~e4zCrNGB-%KzczK#D~QnHoHOc4xkJQYTrN|1}a-YMxyHni9wwT(gw#f
jpb4@cE&^eI?1Qi%B&ZC-rvC@XU<L+;M2IptiLM_25-vNi

delta 1108
zcmZ1={X=|$2Gb6XiCVH81|FTYH#$qNO!QZB>JI(j(d~M}qw|_a=kXT|3=9k&tp`d4
znrp8xlyZ4=yT0(~bp7#K6Rf7!6f6%_*Lnb~;K9UKhV_ka3gj6WI`__b@c(~zD~R-f
zD2A%_=yU~H^TDI@;4VQ128Ml%Ad7l!LFPd$ZLa;mP%7quB(xu-1}u5p^$$qlYrpQ$
zKOViU3m*LckL27=*BAUA&9yHWN@P5`Ltl7wyMCA)#wZv60q&u0S2(-%K&h+;$j=aC
z_BqHiFu>Kd9w=>v+66KNCcXn?`N_lXt|1Eg3LYUL0s4k|h76PQnQR#qCa+<Vo_vDI
zk(ZZ?L04CoOSPCwS66p(9kZsejbDCAQK~|4YEfBgX_1|RYBAU3Wz2GuPcW+(%?BCj
z$S2Uo<jl*)G>eCwgMmSYfq}sWB+kIVzzFg?T>cLaJICZiE~&`@+$@u0Sk5rcpRCF1
z&zLsZkX3y01Xd0~uyHVL3=9n3V3`FxER#)GMHnMNJjMhtnF=Oz!DI=TtOS$wlN;Fr
zC;wton|zy1o;@u&C%-tAVX_*#79-E(Kz4D?6sW`OCog0dmyCz<m>3usSQ!`?mO}aI
zlP|K1*LOpCFxeGQ{!}Q<!oa}5%fP_!=RXAOgo?w|Z-(*@KxvSAekApGpyDv~+o1f1
z5W1cLq(J~l!+VGX15CpSDE|wT2B`<7N|=NGA&CninIjE~6$S>d`J71NrciN+`P>W)
zx1k0&O+LsWE*T1y23aG5q%CpsM-Fku+R2KX;*3)#2Xcx}-oUBBG@oJeC(d)c3!s|7
zCQVl45uW^jOM+8?4a{c{n9Rs+&h&tBvLlPw<N$6B7;^%*2Im8)&d-w@dE_TQ;Fe&z
z%ryBIw;j_5CWvw#4bBfBr!p`wL`-hvG3Qj^fS779`5=!urw22H=P;R(*POEh6u%4%
U3~iGgdCfTkpehq5J95hd0Mue8=l}o!

diff --git a/webserver/pawnee b/webserver/pawnee
index 65c1d490681a32cb8646f454ae999aff9c33b416..65b9b5d470dca57b1fea5814215e05ba239dc6fa 100755
GIT binary patch
delta 2076
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

delta 1820
zcmX@n%ebJIae@Y;!bHvcoVn}_V30dmkWruO12dSz@PT=<7vny~2Z|6bI-LR$W=NT=
z$#h!eq9FG_?YDo|o_xIF<rc|R`o%wH*l*@wKE)@{#md0o(aWn0rfj#cY<?uDz*N7L
z0VHah#>2qyLhjH1|NB9vy>R*a|9_}Q=Tnd7HwGS^wKqCTuXyybhVd{kcyzjc@aScY
zhA>}v^s=siFdukyhko$rcD>=zdCjBq_zT0o|Nncm9w-%PuD!xg%H`4R`og2r^~Y;X
zu$o@eO<-;H$6rYP`TxK509eHXunG>3<E}qI&hY4V{o&Dh%%j(~lZSy}2T16}>EHkV
zgTzlB2D`8EO@TZEL+9Q(5B~q}ZUvDZy`~_~bRK_U@aO-3uyeazKX`N=+$G4sz_5=I
z;$JtAfAjzRumA7ST>F8cRLrB-))geC0}2C>q8Cno{{KJj`Uhm|YrpQ$KOViU3m*Lc
z5Aof@e_*p;cr@3(U?`FC=nj410kWpoR0!;^;}F-z{RW!>G7l`>dHh8+!~-8dVHE${
z80>dhaM(f2-{&9?3gzQ3KL3IQU@O!SFauUkmJpM*TEPtqk;T9M|9>sk?fM5CQVZeY
z-M{|--vze0*Yvd(1H=CR|NsAgq56ArzL<(|J;?CpAOA~vJbG;txfvK<{GGf^Oo1_H
z@^LYFp*=tU|A$G6fh1Q?{voF6`il$VvYS7_t`_#_wSCXU!0;mS=l}mZv=|r|UMsvX
z`TzgFN3ZP@khtT||Nr+-kY`|cvF7*x|KJcgd3bVxxQN&VH3o)Ik6v969qgkCN@pA|
zE^nSCp2jhG0$0H#h3S*mE7&qBOn##vJ()w%k(ZZ?L04CoOSPCwS66rPK1EGo8^8RL
zqEv<8)S|M~(jq$r)ncy6&lIzgK-qztfq}u{-T(g^7#J8Xy#N3I1_J}bgZKacH!v_T
z9R2YB{|5#J2Afa+{|hiOFx>w1|Gxnv1H+xq|NjRtGBB8b`TxIwk%3{ym;e7KFfuSG
zeEt7_10w@N!`J`+e}ICMVe&R5C8mh?lW!^MF?LMmR90vFFxgO9obl{rPi1*Wm5=}b
z&j%$MM?QfzCTCtYrdd4f91ILH3=9l&7#J89fBgTS5o8Wr{tsM!4+8^3%jA>F(yVtF
z7#Q|XeyJ?Y21<YmpC@yvNU_Q=GB9LJ)>Lt3O#wM*bD>H(=i~`o6DGgVwO~xytf&{x
z!k99-(nwztRz`r_0mIA;LJS_84;p=EWO}1Kd6!8U(*woHMy6_vPbNp2%4;QvLllCX
z24bl)GB5}+@G<Nb0r40Zz;0$>U@&8x+;1ex#9%u4qNzAz&}2q4amEx7DOnBGAua~d
z(Fma!`a!au%b~I|Q1ifH#K6F?87jU<6rwyDLNOd=WMB|rkYIS>02P2zXC_ZHlNU^Z
zx)v(P@Bm~7W9DQ<b8*SfP!pF5L1fFJUSb5vGAe*bNn<96={L|!cL2#UhJeWoFj)&G
zr-4YO6-*GnZ=d|oTwL-969a=Fg8&1A0>mB`2*q%DvY>^y<Siyh_%T3T8Vi+u1u}{8
zABdb>U?CxC2~~FhR6H>-Fla;72~A#TA#SL~405L=Mkp9DLrk9m4eJc3E_0ABMo%yq
z2PTWaWE+^A0U{;WFf%X+GGT`7j>!`(#aS*fGcZg(Xe7+U@D8M!kzw*jOL0b#%^xjo
z7&lv6d$VlruuouSTF5&2m6IMPEFMxOD>}O~-D8}b<*X+NOMNgpW%5dAeL)W;h#O(_
iip?*b?U|Tfa7@;6GvoYV36a&9oatuHC^31Vn>qkKUpd?W

-- 
GitLab