From baeaea732dc537cd519c617e17d6e49d379fb582 Mon Sep 17 00:00:00 2001
From: "romain.gabet.etu" <romain.gabet.etu@univ-lille.fr>
Date: Mon, 8 Feb 2021 17:30:42 +0100
Subject: [PATCH] 5.2.2.2 ok

---
 webserver/client.c        |  16 +++++++--
 webserver/client.o        | Bin 2280 -> 2792 bytes
 webserver/pawnee          | Bin 17992 -> 18080 bytes
 webserver/socket.c        |   4 +--
 webserver/socket.c.save.3 |  71 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 87 insertions(+), 4 deletions(-)
 create mode 100644 webserver/socket.c.save.3

diff --git a/webserver/client.c b/webserver/client.c
index 9af3250..1712a32 100644
--- a/webserver/client.c
+++ b/webserver/client.c
@@ -7,6 +7,17 @@
 #include <stdlib.h>
 #include "client.h"
 
+int testCorrect(char* str){
+	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";
+	if(strstr(str,correctStr) == NULL){
+		str=incorrectStr;
+		//printf("---\n%s\n---",str);
+	}
+	printf("---\n%s\n---",str);
+	return 0;
+}
+
 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.";
@@ -23,11 +34,12 @@ int traitementClient(int socket_client){
 				exit(1);
 			}
 			//printf("test avant while\n");
-			while(!feof(fd) && fgets(str,8000,fd) != NULL){
-													/* writing content to stdout */
+			while(!feof(fd) && fgets(str,8000,fd) != NULL){									/* writing content to stdout */
+				testCorrect(str);
 				fprintf(fd,"<Notre Serveur> %s",str);
 				fflush(fd);
 			}
+			//fflush(fd);
 			fclose(fd);
     return 0;
 }
diff --git a/webserver/client.o b/webserver/client.o
index de41bc6b84ba323962b63c2b255b4ce2dcc06c58..ac200b8981ca3855015d6c7822593514dd56ea2c 100644
GIT binary patch
delta 1008
zcmaDM_(F7oCL{YqE$Nu%Hwqq|wJ$t+Ss54@7(6;%e;}A2Ji0@FcyznI@aVke(Rus@
zSVilBQVx%9*AE_@t}h^R$2@v%K~g(F1XvN6b@K2;2Oq|OiM<jWts5Tv|L@UxeB!*A
z`k5Zxu0LR=K@~DExVwfZ=qq@Hgaqgt>KQUHz*q_<1_laFi75&}sfDGf#U;F4&iQ$H
zsmUdo`FU0f$vOGOsbHa!)Vva1pVYkck_;;aLvvm(UM`r<B8W}~U0q!+)nZmIU0q#<
z$$X4;Mu{NzI`Rp$F*)<HF~#t(b1*Q-FfcIKfW#RX818~-xcm(sc8<vlS*0fLV7$Ny
z*2=)ZAU1g-lQ^Reh@2e2EFo#kz`!8Hz{miT2OGh_z~D0ZBa=R35J(+kB$$i?lWAZw
z7fcp`$qEoTxq+G6BDJ{0IlrhVHMxW#-rdLF$<Zg?-_0%9H6%X7(aFa(o}sv;sJNtv
zp`<7=vm`Y)HLt`uCo?s#Wby`PTSorLADPALr9eJlU|?WkU|;~nFAtP&2&GvV7#O%2
z7#RNihX5a_I81#!lphAALFz$fz|>bm#bN5Rp!_BXJ-MAlP;wrG4R=E>l)rfLMiz0y
zjZhxUgnB4{8<YmwD1hX`1Ct-Jh<lz#lI28_eFznYnKlW^e+Q*OrU@ab|20{VRos@1
z5h4we6+x0!LJ}865;sN?7n>~0sx0ULF#zmGkll%sEm_Yq*)dM$Vl(6P0EIjQ1H*~Q
zo^0lfb(0&}>>2AOA7r!VY=9cHa`H)b`N<mW5=@#*lbzV@nB15qFJu&(JcC_>(*tB4
z0|P_E<df{?oC53+n+zs%a#(Oer8Jl(dvTa?o&dR@fq|iZawmrc2UKC=WKK4D0MQxl
A<NyEw

delta 595
zcmaDM`a*DmCL`-aE$NBN+!-AwzLS_N$`~rL!lT>uhezk}7Yqyx3_C!?$-|T1G1dv4
z1F;?X1lpLKdD)mw^00GEUdS#rc?Z)4POuaM1B3MBiOk}RhG5bHOxlA<x5*!w^%;Y~
z>?ja9`2e#7W9sCMEJ}PuiJ2v-xv6<2&N-Q>d6Vz3NKEEowW()dV2}b?$iTqB#K6G7
z%D}+z=RX7}Ld97a7#O&b#BHJCF!d1C|NlEd#X;(Mkkki2#bN3Nq5Mz=1_qG*3?L1>
zNE+gy3P9p~NaBT1ahO3WP<|bh2C3&qQs0FnE`TIH4Iw@`nvGX-6N1kmgrx59<c)0N
zlLgo%COfd7U^>SznTx}W^8+(PwZ&vl4s%An$&DQLjC_+1a@ce6F+yalK?>z2Yj8?1
zc`{CR;<RH-o7~8uK6wSF1ZM_Rjm6}XoaUSwpx|a;V33&1$z{O_m3qK9*^A4JvjJ*P
P&g4!m3r?uQM6l5SYB8A-

diff --git a/webserver/pawnee b/webserver/pawnee
index 0896d00451403591d6d571ca45211cfcaf657d69..14024973144badce5a1505c7741e58351be88716 100755
GIT binary patch
delta 2947
zcmX@n!?>WAae{=<0YL^ZZ~&7G3<~xWwU%)<a6z~Y6L0Es@v=iWyzG;O81*<8FhjTt
zCVMjKGcrteWE7t~fw4kyiXucDolb!WGo(z`WIC-oGg^4N%lG?=w>Z-MJY|<(ULoOO
z%*4RJAj`nOz{tSBzy?;`2qtAGD>AFI-ezE6P?+q<Bs@8RS%R^Caw4-hV=joCJb_ta
z@&RUv$q!g0823*8$gDs41GB_r3l<5+iIW3a+*!ZFb#7oWnC!qR!I%ir$JjYpkX3*3
z1y+{HF049}E0`r%*%)DVEMS$G{DVbe@(xxB#^sYQvKF!xmlPG36is$yJ2IJ#-E6WI
zyPV{Cu=5xgUf4ny91x0O!Q?`AamfTB2=@UrOkuJQCNE?!W|ZA5%3;jJdjTp53R{`Y
zj$GZWn*<gy)@$iAFl2}`FfhC<`1k++e^n<v28Of=5c3!q4BvWoUX1hTeB{ym<U>G+
zPcN$$D+7Z^FYjR%5M>+0!ocuf^qVdN!xw&e7qHMrJrKqE3Pf4{C=vDOW<96Nz~Iq(
zpoH`P1Ah4iklBZ!v<FwO?Lm;rUejHZrG;c%mO_<s{C|)JHW8+>!M0J4fq|h^Kh&ey
zwoR9Tfx)BmX$g-<w{4Oh1H%j5|NsBL$oT*N|1s9c$<;!x0w%l+3@_6E{r|ro6v;1Y
zCtna!*LVH<|9|t3|D|Fcy|#=X1uAd_R{#G0Pdo1VfQg~o^$!2`1D(fTm`_#{R;WLQ
zq~{V31H+4}e_@8c{`>!bx9gvMptRe0{6!6t$~_>JtKljSLR9Vo`F$UV=sf;n?%)6a
zJ6(S?*FqgMAEc!MuBGqq|Nk#m{;dZo`qEtc1>))^kfIQ{qAZY=wO<(O7k9h<=sf<S
z9273SwrL<$a)18+-w(3uh0EXn|3f`GpL#UEQSj)jec{o|8p#6+K-V80y{vH%<_C}N
z&>tS%t}i?~uX%JHe_{Xk|9_9x1Dd5A9^I}VJUU%pKqQZO^xD?*Ffi-@8_o6S|9>#+
z<l)IYB2paDJPZt-$6w@4))SGgw+1<5?VtbuJ(_EOFq8&(^x9g1gt9;`14l~(NV2ze
z!-N0-L3V;-(W7@NnA;6<oT)6>amT?{yx8>n|9=mVc<1pK*O1t|e*gd9dZ1Jm>;s5t
z`yAvM#2G+l`hgU-9w?m&)5$yef{3iu0dANVSbzWj|5~iu^-m|rYdhiMZ-4#&zYF9_
zk6u$>Z3c$@|3PW2{r6;bQ5E5bzd*kF@xPSEqt~{Qn}Oj){Ny-M1*UVqCO3%63CaC}
zBs7q$9!QpV@&-{&Yawn>s2_h}{R`}1VUJ#0c987upa1{w&|+X<c&+fl<p2Nw9=*1I
zxEL5-EdKfb|NaT`3=A*$CX0wEh#9CeFob&a>VoKCA5Bn%a=b9!>?LN#IZ2_h9uy-C
z3=HnBAqx5m9w8wC`i6Rj3=A-qf{B5Ff>UCOLQra9X=-r^FPC$EUS4W)NoIbYl|ph(
zesL;Ts3bM7MAs)ZFTEtgO2N>amy4GRrn3m5lR;NkmrJ#nOIKHyAyJ#bDKj;%EH!U(
zx5AVpMrmg21O^5MZUzR1o_GKMuVG+dkooZc{}l!X2AvQ8|JN`uFbID9|NjjG14GBB
z|NnUy85mxE`u|^tk%8gZ=l}nG7#SE8zx@B7!^ps}=*$2AJ&X(tJYWC+U&F}2kn{Eb
z|1XS_>lBrkR=l6QNKudV#@qk@CrrMos4VI5{{Meixd#dd83qQ17*H`kSx`ydvE<|b
z|A`=BM?QfzCTCtYrWhV}4h9C0syPe{3|l|`|9=-n{svrr4+8^3(d0lSY1TUo3=C^0
z7b;1!{$XHX;F~;ANt#uLk%1v%@<t_R&J;!lhJw%k|1)l8R1W6iTmUVU6DEJu)n{T6
zpRA-8rwFZWU=)J^v}yyDARy}%CNI>pXLOkSP)}aa0qPx4fen&tm@KGo&zLYdP+y)=
zVRNB=Jfq+;Xk7}D2H^*jZyM~Egqsc$f?{R{b_RvX8x6%76DDso6lLaQXqf!aP@K_W
z@=rr|#toAljl>xbOm;L9W#MOF5uaRSq{ldA@<JnV#vhXx8i`ImXH>;_W3r*KD6=HP
zi^++`?vfwStmb22U|?e4V^ElU&=^r8L2YL+2UoTry&sMB85c}eH0fuYGkK#)IpdVc
znx^WEPbLSN$}2K}>LIX7h(1+D1_mJpK89Km2><TniKg<Lrc4YB3JekqHzw~ib!Xf<
znbAz&Q3k349LEd{44a`kqeLM(qahT-QAP#^0R{<%7tqQOD$H<Z@<UVc$pvN{f-F!s
zz+@hPWEe9iFEkUE{0ud9DKu)!L8Sx8y&zde1rR9-YFmJ8xPfMa14x!J1Waat$yzWu
z4NR_>JkeZSayt_PgCLUx1FRm0x#7s<gXZFfmqD@&k_>O4CbK}LZ!tkaX@M9-AQnO~
zyaJp2Z?d9=yygd}9;g(9B~%ZrF{TZb5SqNvLflY|85ByA7@=gu46(@!YEuSOmpMom
zqbHb*1CvEyvJFhm0Fkn5m?3^c5BVL;(1sA>rOAbs;*9SmFSL|kVPRkp0=2+cMW8H^
z%{wiZGjgRCmpJDa6{RMZY>u<`XJQ4nls3<^?P6lQFj><<Ul5-5A<a4lg~^!?`hp73
zJOra{Ca-kRpDf`hF!_ap0cQhLwqdfOqd7d=!Lpyj<V?qUjtS7Ho;=Y}d@{R};N%D=
zfyo+92Jq%AEF>LSCuce7alw)ii}>V4PHv1-Cckvj7o39DU`?5<>8vmK11bumS8UF7
zwr6C#F?pqnJ|`?0-I)B)#heoscrPX^y4o|on4IWp&&gp3iG>%FSGt;Wez1h_G$y}v
RHRqDBgYeiHCu`Zu0RZchP-6f9

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

diff --git a/webserver/socket.c b/webserver/socket.c
index 14c431f..b91b084 100644
--- a/webserver/socket.c
+++ b/webserver/socket.c
@@ -62,9 +62,9 @@ int creer_serveur(int port){
             
 		}else{ // à déplacer ailleurs pour une meilleure lisibilité
 			 //traitement final
-            traitementClient(socket_client);
+        		traitementClient(socket_client);
+			
 			printf("fin du client\n");
-            //close(socket_client);
 			exit(0);
 		}
 	}
diff --git a/webserver/socket.c.save.3 b/webserver/socket.c.save.3
new file mode 100644
index 0000000..321ca83
--- /dev/null
+++ b/webserver/socket.c.save.3
@@ -0,0 +1,71 @@
+#include <string.h>
+#include <unistd.h>
+#include <stdio.h>
+#include "socket.h"
+#include <netinet/in.h>
+#include <sys/wait.h>
+#include <stdlib.h>
+#include "client.h"
+
+
+int creer_serveur(int port){
+//socket
+	int socket_serveur;
+	socket_serveur = socket(AF_INET, SOCK_STREAM, 0);
+	if (socket_serveur == -1) {
+		/* traitement de l'erreur */
+		perror("socket_serveur");
+		exit(1);
+	}
+
+	int optval = 1;
+	if (setsockopt(socket_serveur, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(int)) == -1) {
+		perror("Can not set SO_REUSEADDR option");
+		exit(1);
+	}
+
+	/*Utilisation de la socket serveur */
+//bind
+	struct sockaddr_in saddr;
+	saddr.sin_family = AF_INET; /* Socket ipv4 */
+	saddr.sin_port = htons(port); /* Port d'écoute */
+	saddr.sin_addr.s_addr = INADDR_ANY; /* écoute sur toutes les interfaces */
+	if (bind(socket_serveur, (struct sockaddr *)&saddr, sizeof(saddr)) == -1){
+		perror("bind socker_serveur");
+		/* traitement de l'erreur */
+		exit(1);
+	}
+
+//listen
+	if (listen(socket_serveur, 10) == -1) {
+		perror("listen socket_serveur");
+		/* traitement d'erreur */
+		exit(1);
+	}
+//decouper ici ---
+	int socket_client;
+	while(1){
+		socket_client = accept(socket_serveur, NULL, NULL);
+
+		if (socket_client == -1) {
+			perror("accept");
+			/* traitement d'erreur */
+			exit(1);
+		}
+
+		int pid = fork();
+		if(pid == -1){
+			perror("fork fail");
+			exit(1);
+		}else if(pid > 0) {
+			//close(socket_client);  fait une erreur si on le met
+            
+		}else{ // à déplacer ailleurs pour une meilleure lisibilité
+			 //traitement final
+        		traitementClient(socket_client);
+			printf("fin du client\n");
+			exit(0);
+		}
+	}
+	return 0;
+}
-- 
GitLab