From 1072a4763be69b406d88388deea86dd626da88b1 Mon Sep 17 00:00:00 2001
From: "romain.gabet.etu" <romain.gabet.etu@univ-lille.fr>
Date: Mon, 8 Feb 2021 15:55:44 +0100
Subject: [PATCH] bzzz bzzz

---
 webserver/.main.c.swp     | Bin 1024 -> 0 bytes
 webserver/.socket.c.swp   | Bin 1024 -> 0 bytes
 webserver/client.c        |  26 ++++++++++---
 webserver/client.c.save   |   0
 webserver/client.c.save.1 |  34 +++++++++++++++++
 webserver/client.o        | Bin 3304 -> 2280 bytes
 webserver/main.c.save     |  43 +++++++++++++++++++++
 webserver/pawnee          | Bin 17856 -> 17992 bytes
 webserver/socket.c        |   2 +-
 webserver/socket.c.save   |  72 +++++++++++++++++++++++++++++++++++
 webserver/socket.c.save.1 |  77 ++++++++++++++++++++++++++++++++++++++
 webserver/socket.c.save.2 |  72 +++++++++++++++++++++++++++++++++++
 webserver/socket.o        | Bin 3032 -> 2960 bytes
 13 files changed, 319 insertions(+), 7 deletions(-)
 delete mode 100644 webserver/.main.c.swp
 delete mode 100644 webserver/.socket.c.swp
 create mode 100644 webserver/client.c.save
 create mode 100644 webserver/client.c.save.1
 create mode 100644 webserver/main.c.save
 create mode 100644 webserver/socket.c.save
 create mode 100644 webserver/socket.c.save.1
 create mode 100644 webserver/socket.c.save.2

diff --git a/webserver/.main.c.swp b/webserver/.main.c.swp
deleted file mode 100644
index 02609d8d567ee0afd05e5399fd09b580d73179ae..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1024
zcmYc?$V<%2S1{HyVn6{WSQ!}76O&R)ico~Ha)?!zo0yrWmyFejQNhs=7!82|2mt_d
CISStZ

diff --git a/webserver/.socket.c.swp b/webserver/.socket.c.swp
deleted file mode 100644
index 0173fa2adbb145280321885f721fe4c81118667f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1024
zcmYc?$V<%2S1{HyVn6}sSs5786O&R)ico~Ha)?z|oS&SXTB4VX)sRua(GVC70lJ3(
E0J)nB$^ZZW

diff --git a/webserver/client.c b/webserver/client.c
index 7ac1803..9af3250 100644
--- a/webserver/client.c
+++ b/webserver/client.c
@@ -6,14 +6,28 @@
 #include <sys/wait.h>
 #include <stdlib.h>
 #include "client.h"
+
 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.";
+			/* 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.";
 
-            int status = 1;
-			while(status>0){
-				status = write(socket_client, message_bienvenue, strlen(message_bienvenue));
-				sleep(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");
+			while(!feof(fd) && fgets(str,8000,fd) != NULL){
+													/* writing content to stdout */
+				fprintf(fd,"<Notre Serveur> %s",str);
+				fflush(fd);
 			}
+			fclose(fd);
     return 0;
 }
diff --git a/webserver/client.c.save b/webserver/client.c.save
new file mode 100644
index 0000000..e69de29
diff --git a/webserver/client.c.save.1 b/webserver/client.c.save.1
new file mode 100644
index 0000000..a9f745a
--- /dev/null
+++ b/webserver/client.c.save.1
@@ -0,0 +1,34 @@
+#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 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.";
+
+//	int status = 1;
+		//while(status>0){
+			char str[180];
+			FILE *fd;
+			//status = write(socket_client, message_bienvenue, strlen(message_bienvenue));
+			fd = fdopen(socket_client, "a+");
+			if(fd == NULL) {
+   					perror("Error opening file");
+				return(-1);
+			}
+			if( fgets(str, 60, fd)!=NULL ) {
+				/* writing content to stdout */
+				puts(str);
+			}
+			printf("<leNomDuServ>");
+			fprintf(fd,"test");
+			fclose(fd);
+			//sleep(1);
+		//}
+    return 0;
+}
diff --git a/webserver/client.o b/webserver/client.o
index ad6c6f86759b50c0567f5f34e7a6a1687171b809..de41bc6b84ba323962b63c2b255b4ce2dcc06c58 100644
GIT binary patch
delta 822
zcmaDM`9g4lCL`-aE$RBkHwp3#44r$|Jox{=yA?!w^qMj-Ffeo;e*vOAI$eKwbi4lW
z=sdVfkb!|=A0q<;gGa9|NDiW)x%LM`sUxz`evlf7Wbf1s5B~oL8vrrZqx1L<gx>CY
zkjYS+z_vixtp`eFJ-S1Gc=Wb{^zU<!XJGJvxv2F(=?bukPyw)cCl4oTGdN|Y=9Q)9
zm8L2r=VYelm2fe*78T_eDdZQV=4IxkE2L%Sq%zp}<(CwtDg>t%m8F)l7TGDN7Eivx
z<|1?s<Sa)%fi@;*UN)waJnS5k7jjBX_F%ujcy6*Jhd-nJWJL~fMmI3&4JL!ZWE7Z;
z2a~BFa&iNQVMJOA$X155@}kU=REC07kV6<!D>6$M(h7<)^Gebf($aEDi!&I~QuEUo
z($Z5)iW$<9bMlK*LGECX0+S33ObiSRtPBhcfBr*&;^c=M;-28(XF$k8<o^G6g6d*n
zU|`@u(iH#|hnWV7Nsv(JWI;~x`gjnNfq?;}iw{XxAygcuO9jfWgVG@N{7CA%ki-R$
z#HS&NgKUQRWfMeP4s5Xyl7_<&39z{EWLeJFjOQkEa+z~|V1`IoFi!U3GGpRnoNUN0
zHhBh@28?-wOM{aSl=>JL7_29Aa>-BD;Fe(WWSs28ZO4=bRnD!!l)*Up5Vt)e>trS#
gJI)1A4G$)J@>p;{t;m_&$z#C*3V8+whD4B2072I4-T(jq

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

diff --git a/webserver/main.c.save b/webserver/main.c.save
new file mode 100644
index 0000000..ce4ee56
--- /dev/null
+++ b/webserver/main.c.save
@@ -0,0 +1,43 @@
+#include <stdio.h>
+#include <string.h>
+#include <signal.h>
+#include "socket.h"
+#include <sys/types.h>
+#include <sys/wait.h>
+int status;
+
+void traitement_signal(int sig) {
+	printf("Signal %d reçu\n", sig);
+    int pid;
+	while((pid = waitpid(-1,&status,WNOHANG))>0){printf("pid terminated %d\n",pid);} //-1 n'importe quel proccessus
+}
+
+
+
+void initialiser_signaux(void) {
+        if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) {
+                perror("signal");
+        }
+	struct sigaction sa;
+	sa.sa_handler = traitement_signal;
+	sigemptyset(&sa.sa_mask);
+	sa.sa_flags = SA_RESTART;
+	if (sigaction(SIGCHLD, &sa, NULL) == -1) {
+		perror("sigaction(SIGCHLD)");
+	}
+}
+
+
+
+
+int main(int argc, char **argv) {
+	/* Arnold Robbins in the LJ of February '95, describing RCS */
+	if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
+		printf("Don't Panic!\n");
+	return 42;
+	}
+	initialiser_signaux(); 
+	printf("Need an advice?\n");
+	creer_serveur(8080);
+	return 0;
+}
diff --git a/webserver/pawnee b/webserver/pawnee
index 264161030dafdea1aeeda8887bb6c505a8dad802..0896d00451403591d6d571ca45211cfcaf657d69 100755
GIT binary patch
delta 3188
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
CwwwR}

delta 4442
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
Wb46G}c=wqnzj8HWG@q>KrVapy*I3Q~

diff --git a/webserver/socket.c b/webserver/socket.c
index a62c326..14c431f 100644
--- a/webserver/socket.c
+++ b/webserver/socket.c
@@ -64,7 +64,7 @@ int creer_serveur(int port){
 			 //traitement final
             traitementClient(socket_client);
 			printf("fin du client\n");
-            close(socket_client);
+            //close(socket_client);
 			exit(0);
 		}
 	}
diff --git a/webserver/socket.c.save b/webserver/socket.c.save
new file mode 100644
index 0000000..55f6e18
--- /dev/null
+++ b/webserver/socket.c.save
@@ -0,0 +1,72 @@
+#include <string.h>
+#include <unistd.h>
+#include <stdio.h>
+#include "socket.h"
+#include <netinet/in.h>
+#include <sys/wait.h>
+#include <stdlib.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{
+			/* 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.";
+			while(1){
+				write(socket_client, message_bienvenue, strlen(message_bienvenue));
+				sleep(1);
+			}
+			close(socket_client);
+			exit(0);
+		}
+	}
+	return 0;
+}
diff --git a/webserver/socket.c.save.1 b/webserver/socket.c.save.1
new file mode 100644
index 0000000..23af14f
--- /dev/null
+++ b/webserver/socket.c.save.1
@@ -0,0 +1,77 @@
+#include <string.h>
+#include <unistd.h>
+#include <stdio.h>
+#include "socket.h"
+#include <netinet/in.h>
+#include <sys/wait.h>
+#include <stdlib.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é
+			/* 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.";
+
+            int status = 1;
+			while(status>0){
+				status = write(socket_client, message_bienvenue, strlen(message_bienvenue));
+				sleep(1);
+			} //traitement final
+			printf("fin du client\n");
+            close(socket_client);
+			exit(0);
+		}
+	}
+	return 0;
+}
diff --git a/webserver/socket.c.save.2 b/webserver/socket.c.save.2
new file mode 100644
index 0000000..302756b
--- /dev/null
+++ b/webserver/socket.c.save.2
@@ -0,0 +1,72 @@
+#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");
+            close(socket_client);
+			exit(0);
+		}
+	}
+	return 0;
+}
diff --git a/webserver/socket.o b/webserver/socket.o
index 8c1aa1fdd9d29aa50d74af5930105da9a5dcdfc8..ecac66b78373e9b6316a48c28026bb43fdbf2618 100644
GIT binary patch
delta 162
zcmca1K0$nf24lcR%@#(s{R|8Y3@;`hW<1DPKDm|YH)HwcMrL)!$p=^(HhZwHVVcat
z@rJQ{@=p$PP6<|!S_Xz4lPx*T8MjX^<g{npK6xXjJ>!naA35zA4JR9N*)#f0F66Rj
z44Ax;%bw{1`{YktcAOnd5RC$pExFA(XRttc4U-o#2~Y0fR^fcX4iQNNi|}yr006;c
BEL;Ep

delta 209
zcmbOrenWhM2IGv4nk|fC-L5}6kH27GU|`q}BET#LhRK^54>C4RE@k@7*tofnS)Gxw
zVR9qOboS(&{NhvwhRx!vYngb(7#JA-{D*+r$vfG<Gd51%$YIXu!3r{of#JgBj~wPq
z2N@?fGKo!g;M9OI8#px>PfT9PY0v05`6Z`4QyddS1(yb6!sJXYdnO5v$*Z{RIA<_H
f%+Z+qk;|O(01JfIHrbHdoYQ~<!b_ZN$SDs1^IJU5

-- 
GitLab