Comment + history <PROXY_FTP.C>
This commit is contained in:
parent
fed7cad10b
commit
8188a7d38a
68
proxy_ftp.c
68
proxy_ftp.c
|
@ -1,19 +1,5 @@
|
||||||
#include "proxy_ftp.h"
|
#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
|
int THREADABLE_SOCKET = -1; // contiendra le BUS DE COMMANDE utilisateur à envoyer à un THREAD
|
||||||
struct sockaddr_storage clientInfo; // contiendra les infos client
|
struct sockaddr_storage clientInfo; // contiendra les infos client
|
||||||
char repeat; // sert à sortir de la boucle
|
char repeat; // sert à sortir de la boucle
|
||||||
|
@ -50,20 +47,20 @@ static void* testServer(char* localPort){
|
||||||
char* serverPort; // contiendra le port
|
char* serverPort; // contiendra le port
|
||||||
int LISTENSOCK; // contiendra la socket d'écoute
|
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);
|
serverPort = malloc(maxPortLen);
|
||||||
|
|
||||||
if( strlen(localPort) != 0 )
|
// attribution du port si dans les arguments
|
||||||
strcpy(serverPort, localPort);
|
if( argc > 1 ) strcpy(serverPort, argv[1]);
|
||||||
|
|
||||||
|
|
||||||
DROP_SERVER(remoteHost, &serverPort, &LISTENSOCK);
|
DROP_SERVER(remoteHost, &serverPort, &LISTENSOCK);
|
||||||
printf("Port: %s\n", serverPort);
|
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;
|
int index = 0;
|
||||||
while( index <= maxListLen ){
|
while( index <= maxListLen ){
|
||||||
|
@ -76,10 +73,15 @@ static void* testServer(char* localPort){
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On attends la fin de tous les THREADS
|
||||||
|
==========================================================*/
|
||||||
int i;
|
int i;
|
||||||
for( i = 0 ; i < maxListLen ; i++ )
|
for( i = 0 ; i < maxListLen ; i++ )
|
||||||
pthread_join(managers[i], NULL);
|
pthread_join(managers[i], NULL);
|
||||||
|
|
||||||
|
/* [4] On ferme la SOCKET d'écoute globale
|
||||||
|
==========================================================*/
|
||||||
printf("FERMETURE DE TOUTES LES CONNECTIONS!\n");
|
printf("FERMETURE DE TOUTES LES CONNECTIONS!\n");
|
||||||
close(LISTENSOCK);
|
close(LISTENSOCK);
|
||||||
}
|
}
|
||||||
|
@ -123,7 +125,7 @@ void* manageConnection(void* THREADABLE_SOCKET){
|
||||||
char* ftp_response; // contiendra le BUFFER de réponse du serveur FTP (commandes)
|
char* ftp_response; // contiendra le BUFFER de réponse du serveur FTP (commandes)
|
||||||
int nbReceived, nbSend; // contiendra les nb reçu && envoyé
|
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);
|
swrite(&USER_SOCKET, WLCM_MSG);
|
||||||
|
|
||||||
|
@ -177,25 +179,3 @@ void* manageConnection(void* THREADABLE_SOCKET){
|
||||||
// on arrête le THREAD
|
// on arrête le THREAD
|
||||||
pthread_exit(NULL);
|
pthread_exit(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* DROP_SERVER
|
|
||||||
* INIT_CLIENT
|
|
||||||
*
|
|
||||||
* while(){
|
|
||||||
* accept();
|
|
||||||
* client_send()
|
|
||||||
* }
|
|
||||||
*
|
|
||||||
* EXIT_CLIENT
|
|
||||||
* HALT_SERVER
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
17
proxy_ftp.h
17
proxy_ftp.h
|
@ -97,3 +97,20 @@
|
||||||
#include "dep/utility.c"
|
#include "dep/utility.c"
|
||||||
#include "dep/client.c"
|
#include "dep/client.c"
|
||||||
#include "dep/server.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
|
Loading…
Reference in New Issue