diff --git a/question10/server b/question10/server new file mode 100755 index 0000000000000000000000000000000000000000..a4606225d89429d5fddc93868eb852934282b379 Binary files /dev/null and b/question10/server differ diff --git a/question10/server.c b/question10/server.c new file mode 100644 index 0000000000000000000000000000000000000000..2046b6e32f39e65db4dfbe2a37dc479c4fcf2a11 --- /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 0000000000000000000000000000000000000000..616334d9779d409c654ad89cb7edab8a587e6497 --- /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 0000000000000000000000000000000000000000..7071627194895ebff79d007a5e8a37d67a1b7035 --- /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 e6544d8ef9c7dd10a09f37bc4f5d04f3b2ecc197..e6380bbb9bcdeab180dd9c52e5532ceb3eec6bb4 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);