/* global */ #include #include #include #include #include /* sys */ #include #include /* socket */ #include #include // getaddrinfo, getnameinfo #include /* debug */ #define SOCKETS 0x01 // debug RESEAU #define COMMANDS 0x02 // debug COMMANDES #define DATA 0x04 // debug DONNEES #define REVEALS 0x08 // debug EXPLICITATION des strings #define BUFFERS 0x10 // debug des BUFFERS #define HEADERS 0x20 // debug des HEADERS de fonctions #define THREADS 0x40 // debug des THREADS #define SCK 0x01 // FILTRE pour SOCKET #define CMD 0x02 // FILTRE pour COMMAND #define DAT 0x04 // FILTRE pour DATA #define RVL 0x08 // FILTRE pour REVEALS #define BUF 0x10 // FILTRE pour BUFFERS #define HDR 0x20 // FILTRE pour HEADERS #define THR 0x40 // FILTRE pour THREADS // possibilité de cumuler les DEBUGMODES #define DEBUGMOD SOCKETS + THREADS // REVEALS + HEADER + THREADS /* vars */ #define remoteHost "localhost" #define remotePort "80" #define maxBuffLen 4096 #define maxListLen 10 #define maxHostLen 64 #define maxPortLen 6 // #define FTP_HOST "31.170.164.47" // u712664263 #define FTP_HOST "localhost" #define FTP_PORT "21" #define SOCKET_TIMEOUT 10, 0 // 10 secondes & 0 micro /* MESSAGES */ // 220-\n // 220- +----------------------------+\n // 220- | Bienvenue sur PROXY FCP!!! |\n // 220- +----------------------------+\n // 220-\n // 220-\n // 220- (FCP=File Club Protocol)\n // 220-\n // 220-\n // 220- Qui est tu ?!\n // 220-\n // 220\n #define WLCM_MSG "220-\r\n220- +----------------------------+\r\n220- | Bienvenue sur PROXY FCP!!! |\r\n220- +----------------------------+\r\n220-\r\n220-\r\n220- (FCP=File Club Protocol)\r\n220-\r\n220-\r\n220- Qui est tu ?!\r\n220-\r\n220\r\n" #define CON_MSG "220 Connecté au serveur\r\n" #define USER_MSG "331 Tu connais la procédure.. Donne moi le mot de passe ?\r\n" // 230- Bienvenue au FILE CLUB!\n\n // 230- Les règles du File Club sont:\n // 230- ====================================\n // 230- 1. Il est interdit de parler du File Club.\n // 230- 2. Il est interdit de parler du File Club.\n // 230- 3. Si quelqu'un dit stop ou s'évanouit, le transfert s'arrête.\n // 230- 4. Seulement deux fichiers par transfert.\n // 230- 5. Un transfert à la fois.\n // 230- 6. Pas de '.log', pas de '.txt'.\n // 230- 7. Le transfert dure aussi longtemps qu'il doit durer.\n // 230- 8. Si c'est votre premier soir au File Club, vous devez transférer.\n // 230\n #define PASS_BON_MSG "230- Bienvenue au FILE CLUB!\r\n230-\r\n230- Les règles du File Club sont:\r\n230- ====================================\r\n230- 1. Il est interdit de parler du File Club.\r\n230- 2. Il est interdit de parler du File Club.\r\n230- 3. Si quelqu'un dit stop ou s'évanouit, le transfert s'arrête.\r\n230- 4. Seulement deux fichiers par transfert.\r\n230- 5. Un transfert à la fois.\r\n230- 6. Pas de '.log', pas de '.txt'.\r\n230- 7. Le transfert dure aussi longtemps qu'il doit durer.\r\n230- 8. Si c'est votre premier soir au File Club, vous devez transférer.\r\n230\r\n" #define PASS_BAD_MSG "530- Mauvais mot de passe! Dégage!\r\n530\r\n" #define LIST_DAT_MSG "200 PORT command successful\r\n" #define READ_CON_MSG "150 En attente\r\n" #define STOP_DAT_MSG "226 Données reçues!\r\n" // 221-\r\n // 221- Fermeture des portes!\r\n // 221- Tout le monde dehors!!\r\n // 221- Et n'oublie pas la PREMIERE REGLE!!\r\n // 221\r\n #define EXIT_MSG "221-\r\n221- Fermeture des portes!\r\n221- Tout le monde dehors!!\r\n221- Et n'oublie pas la PREMIERE REGLE!!\r\n221\r\n" //Je suis le canal biliaire irrité de Jack. /* local dependencies */ #include "dep/utility.c" #include "dep/client.c" #include "dep/server.c" /* headers */ void* manageConnection(void* THREADABLE_SOCKET); // VARIABLES static pthread_t managers[maxListLen]; // contiendra les THREADS static int activeManagers[maxListLen] = {0}; // contiendra les THREADS actifs