From 8188a7d38a67a2f54a089bb9d5162d2d346bcb1d Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Thu, 17 Dec 2015 00:43:18 +0100 Subject: [PATCH] Comment + history --- proxy_ftp.c | 70 +++++++++++++++++++---------------------------------- proxy_ftp.h | 17 +++++++++++++ 2 files changed, 42 insertions(+), 45 deletions(-) diff --git a/proxy_ftp.c b/proxy_ftp.c index f20f3c9..196147f 100644 --- a/proxy_ftp.c +++ b/proxy_ftp.c @@ -1,19 +1,5 @@ #include "proxy_ftp.h" -// DECLARATIONS -static pthread_t managers[maxListLen]; -static int activeManagers = 0x00; - -/* headers */ -static void* testServer(); -void* manageConnection(void* THREADABLE_SOCKET); - - - - - - - /*****************/ @@ -39,8 +25,19 @@ int main(int argc, char* argv[]){ - -static void* testServer(char* localPort){ +/* +* +* @history +* [0] Initialisation des variables +* [1] On démarre le SERVEUR d'écoute globale +* [2] Attente d'une demande de connection, puis création d'un THREAD +* [3] On attends la fin de tous les THREADS +* [4] On ferme la SOCKET d'écoute globale +* +*/ +int main(int argc, char* argv[]){ + /* [0] Initialisation des variables + ==========================================================*/ int THREADABLE_SOCKET = -1; // contiendra le BUS DE COMMANDE utilisateur à envoyer à un THREAD struct sockaddr_storage clientInfo; // contiendra les infos client char repeat; // sert à sortir de la boucle @@ -50,20 +47,20 @@ static void* testServer(char* localPort){ char* serverPort; // contiendra le port int LISTENSOCK; // contiendra la socket d'écoute - /* [0] On démarre le SERVEUR + le CLIENT + + /* [1] On démarre le SERVEUR d'écoute globale ==========================================================*/ serverPort = malloc(maxPortLen); - if( strlen(localPort) != 0 ) - strcpy(serverPort, localPort); + // attribution du port si dans les arguments + if( argc > 1 ) strcpy(serverPort, argv[1]); - DROP_SERVER(remoteHost, &serverPort, &LISTENSOCK); printf("Port: %s\n", serverPort); - /* [1] Attente d'une demande de connection, puis création d'une socket + /* [2] Attente d'une demande de connection, puis création d'un THREAD ============================================================================*/ int index = 0; while( index <= maxListLen ){ @@ -76,10 +73,15 @@ static void* testServer(char* localPort){ index++; } + + /* [3] On attends la fin de tous les THREADS + ==========================================================*/ int i; for( i = 0 ; i < maxListLen ; i++ ) pthread_join(managers[i], NULL); + /* [4] On ferme la SOCKET d'écoute globale + ==========================================================*/ printf("FERMETURE DE TOUTES LES CONNECTIONS!\n"); close(LISTENSOCK); } @@ -123,7 +125,7 @@ void* manageConnection(void* THREADABLE_SOCKET){ char* ftp_response; // contiendra le BUFFER de réponse du serveur FTP (commandes) int nbReceived, nbSend; // contiendra les nb reçu && envoyé - /* [2] Envoi de la séquence de Bienvenue + /* [2] Envoi de la séquence de bienvenue ============================================================================*/ swrite(&USER_SOCKET, WLCM_MSG); @@ -176,26 +178,4 @@ void* manageConnection(void* THREADABLE_SOCKET){ // on arrête le THREAD pthread_exit(NULL); -} - - -/* -* DROP_SERVER -* INIT_CLIENT -* -* while(){ -* accept(); -* client_send() -* } -* -* EXIT_CLIENT -* HALT_SERVER -* -* -* -* -* -* -* -* -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/proxy_ftp.h b/proxy_ftp.h index 0799275..0bef8f9 100644 --- a/proxy_ftp.h +++ b/proxy_ftp.h @@ -97,3 +97,20 @@ #include "dep/utility.c" #include "dep/client.c" #include "dep/server.c" + + + + + + + + + + +/* headers */ +void testServer(); +void* manageConnection(void* THREADABLE_SOCKET); + +// VARIABLES +static pthread_t managers[maxListLen]; // contiendra les THREADS +static int activeManagers = 0x00; // sert à détecter les THREADS utilisés \ No newline at end of file