/* Créé et met un serveur sur écoute * * @serverHost Nom de l'hôte local (localhost) * * @givenPort Pointeur sur le à remplir => contiendra le port donné par le système * @listenSocket Pointeur sur le à remplir => contiendra un pointeur sur la socket d'écoute * */ void DROP_SERVER(char* serverHost, char** givenPort, int* listenSocket); /* Gestion de la requête du client * * @pBuffer Requête en question * @USER_SOCKET Pointeur sur la SOCKET du BUS DE COMMANDES utilisateur * @FTP_SOCKET Pointeur sur la SOCKET du BUS DE COMMANDES FTP * @DUSER_SOCKET Pointeur sur la SOCKET du BUS DE DONNEES utilisateur * @DFTP_SOCKET Pointeur sur la SOCKET du BUS DE DONNEES FTP * * @history * [1] si "PORT a1,a2,a3,a4,p1,p2" on démarre la SOCKET CLIENT du BUS DE DONNEES * [2] * [3] */ void MANAGE_REQUEST(char* pRequest, int* USER_SOCKET, int* FTP_SOCKET, int* DUSER_SOCKET, int* DFTP_SOCKET); /* Gestion de la réponse du serveur FTP et modification de la réponse * * @pAnswer Pointeur sur le buffer de réponse du serveur FTP * @USER_SOCKET Pointeur sur la SOCKET du BUS DE COMMANDES utilisateur * @FTP_SOCKET Pointeur sur la SOCKET du BUS DE COMMANDES FTP * @DUSER_SOCKET Pointeur sur la SOCKET du BUS DE DONNEES utilisateur * @DFTP_SOCKET Pointeur sur la SOCKET du BUS DE DONNEES FTP * * @history * [1] SI commande sans transfert nécessaire, on modifie la réponse * [2] SI on a besoin d'un transfert de données * (1) On initialise les SOCKETS avec la valeur de PORT a,b,c,d,p1,p2 * (2) a.b.c.d (adresse ip) + p1*256+p2 (port) * (3) UTILISATEUR (ACIF) PROXY (PASSIF) SRV_FTP * * [3] SI 227, on lance la SOCKET FTP du BUS DE DONNEES (mode passif) * [4] SI 226, on ferme les SOCKETS du BUS DE DONNEES * */ void MANAGE_RESPONSE(char* pAnswer, int* USER_SOCKET, int* FTP_SOCKET, int* DUSER_SOCKET, int* DFTP_SOCKET); /* Attends une réponse du client * * @pSocket Pointeur sur la SOCKET en question * @pBuffer Buffer qui contiendra la réponse * * @history * [1] On read() tant qu'on a pas les symboles de fin (\r\n) * [2] On écrit sur le buffer * * [3] Si une erreur occure, on retourne -1 * * * @return nbRead On retourne le nombre de char lus, sinon -1 si erreur * */ int WAIT_CLIENT(int* pSocket, char* pBuffer);