From 88fb0591495b93d3ac2a2c98b9cac44d4a7192bb Mon Sep 17 00:00:00 2001
From: Nicolas fernandes <nicolas.fernandes.etu@univ-lille.fr>
Date: Wed, 27 Jan 2021 23:43:05 +0100
Subject: [PATCH] question 10

---
 question10/server   | Bin 0 -> 13168 bytes
 question10/server.c |  29 +++++++++++++++++++++++++
 question10/socket.c |  50 ++++++++++++++++++++++++++++++++++++++++++++
 question10/socket.h |   7 +++++++
 question9/pwg.c     |   6 ++++++
 5 files changed, 92 insertions(+)
 create mode 100755 question10/server
 create mode 100644 question10/server.c
 create mode 100644 question10/socket.c
 create mode 100644 question10/socket.h

diff --git a/question10/server b/question10/server
new file mode 100755
index 0000000000000000000000000000000000000000..a4606225d89429d5fddc93868eb852934282b379
GIT binary patch
literal 13168
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
S4^~i6lv$Qok_rxW1_l6JA_Qgt

literal 0
HcmV?d00001

diff --git a/question10/server.c b/question10/server.c
new file mode 100644
index 0000000..2046b6e
--- /dev/null
+++ b/question10/server.c
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <grp.h>
+#include "socket.h"
+
+#define BLOCK_SIZE 1024
+
+int main (int argc , char ** argv) {
+
+    int socket_server = creer_serveur(PORT);
+	if(socket_server == -1){
+		return 1;
+	}
+    while(1){
+        char buf[BLOCK_SIZE];
+		int socket_client = accept_(socket_server);
+        FILE * file = fdopen(socket_client,"w+");
+        fgets(buf, BLOCK_SIZE, file);
+        printf(buf);
+        fgets(buf, BLOCK_SIZE, file);
+        printf(buf);
+        int pid = fork();
+        if(pid==0){
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/question10/socket.c b/question10/socket.c
new file mode 100644
index 0000000..616334d
--- /dev/null
+++ b/question10/socket.c
@@ -0,0 +1,50 @@
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/ip.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdio.h>
+
+int creer_serveur(int port){
+	//On récupére le descripteur du socket serveur
+	int socket_serveur = socket(AF_INET, SOCK_STREAM, 0);
+	if (socket_serveur == -1){
+		/* traitement de l’erreur */
+		perror("problème lors de la création du socket_serveur");
+		return -1;
+	}
+
+	//Attachement de la socket serveur sur toutes les interfaces
+	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 */
+
+	//rattachement de la socket a une adresse et un port
+	if (bind(socket_serveur, (struct sockaddr *)&saddr, sizeof(saddr)) == -1) {
+		perror("erreur lors du bind du socker_serveur");
+		return -1;
+		/* traitement de l’erreur */
+	}
+
+	if (listen(socket_serveur, 10) == -1) {
+		perror ( " erreur lors de l'execution de listen avec le socket_serveur " );
+		return -1;
+	}
+
+	return socket_serveur;
+}
+
+int accept_(int socket_serveur){
+
+	int socket_client;
+	socket_client = accept(socket_serveur, NULL, NULL);
+	if (socket_client == -1){
+		perror("erreur lors du accept");
+		return -1;
+		/* traitement d’erreur */
+	}
+
+	return socket_client;
+
+}
\ No newline at end of file
diff --git a/question10/socket.h b/question10/socket.h
new file mode 100644
index 0000000..7071627
--- /dev/null
+++ b/question10/socket.h
@@ -0,0 +1,7 @@
+#ifndef __SOCKET_H__
+#define __SOCKET_H__
+#define PORT 4000
+int creer_serveur(int port);
+int accept_(int socket_server);
+
+#endif
\ No newline at end of file
diff --git a/question9/pwg.c b/question9/pwg.c
index e6544d8..e6380bb 100644
--- a/question9/pwg.c
+++ b/question9/pwg.c
@@ -6,6 +6,9 @@
 #include <grp.h>
 #include "check_pass.h"
 
+/*
+ * password encrypter 
+ */
 char* encrypter(char *password) {
     unsigned long seed[2];
     char salt[] = "$1$ierfdjef";
@@ -24,6 +27,9 @@ char* encrypter(char *password) {
     return password;
 }
 
+/*
+ * swap temp file with passwd file
+ */
 void swapPwdFile(){
     //remove /etc/admini/passwd
     removeFile(PATH_PWD_FILE);
-- 
GitLab