IMA4 2021/2022 EC4 : Différence entre versions
 (→Script pour netcat)  | 
				|||
| Ligne 11 : | Ligne 11 : | ||
= Travail réalisé =  | = Travail réalisé =  | ||
| − | + | = Etape1: =  | |
- args.c : traitement des arguments courts et longs    | - args.c : traitement des arguments courts et longs    | ||
- libcom : Fonctions Initialisation, Connexion, BoucleServeur et résolution de nom de domaine  | - libcom : Fonctions Initialisation, Connexion, BoucleServeur et résolution de nom de domaine  | ||
| Ligne 19 : | Ligne 19 : | ||
| − | + | = Etape2: =  | |
- MTAint:    | - MTAint:    | ||
gestion_stmp : fonction de traitement et de stockage des informations avec des commandes HELO, MAIL, RCPT, DATA, QUIT dans une structure client  | gestion_stmp : fonction de traitement et de stockage des informations avec des commandes HELO, MAIL, RCPT, DATA, QUIT dans une structure client  | ||
| Ligne 26 : | Ligne 26 : | ||
L'implémentation des threads nous donne des erreurs. Librarire Threads non implémentée pour l'instant.  | L'implémentation des threads nous donne des erreurs. Librarire Threads non implémentée pour l'instant.  | ||
| − | + | =Etape2_finale:=  | |
MTAint:    | MTAint:    | ||
Implémentation des threads réalisée à l'aide d'une structure {void * arg, void * f(*f)(void *).  | Implémentation des threads réalisée à l'aide d'une structure {void * arg, void * f(*f)(void *).  | ||
| Ligne 33 : | Ligne 33 : | ||
La prochaine étape est d'envoyer les donnés sur le port 25 et de recevoir un mail.  | La prochaine étape est d'envoyer les donnés sur le port 25 et de recevoir un mail.  | ||
| − | + | =Etape3=  | |
Suite à une mauvaise compréhension du sujet de ma part, j'ai recommencé le projet avec le code fourni.  | Suite à une mauvaise compréhension du sujet de ma part, j'ai recommencé le projet avec le code fourni.  | ||
| − | =Erreurs corrigés:=  | + | ==Erreurs corrigés:==  | 
smtp.c:184:23: warning: format not a string literal and no format arguments [-Wformat-security]  | smtp.c:184:23: warning: format not a string literal and no format arguments [-Wformat-security]  | ||
| Ligne 59 : | Ligne 59 : | ||
smtp.c : Affichage de la première réponse serveur distant dans retourGénérique  | smtp.c : Affichage de la première réponse serveur distant dans retourGénérique  | ||
| − | =Script pour netcat=  | + | ==Script pour netcat==  | 
Automatisation des tests avec les commandes : <br/>  | Automatisation des tests avec les commandes : <br/>  | ||
| Ligne 85 : | Ligne 85 : | ||
QUIT  | QUIT  | ||
| − | = Documents Rendus =  | + | == Documents Rendus ==  | 
Lien du répertoire git : https://archives.plil.fr/kpatrike/EC_Messagerie.git  | Lien du répertoire git : https://archives.plil.fr/kpatrike/EC_Messagerie.git  | ||
Version du 2 septembre 2022 à 18:21
Sommaire
Objectif
Terminer le projet système réseau SE2a4 2021/2022 à partir d'un source incomplet.
Le sujet du projet est ici : https://rex.plil.fr/Enseignement/Systeme/Tutorat.IMA2a4.Messagerie/
Le source incomplet est disponible en ligne Fichier:PSR-ReX-v6.zip.
Vous devez documenter vos avancées sur cette page Wiki.
Travail réalisé
Etape1:
- args.c : traitement des arguments courts et longs - libcom : Fonctions Initialisation, Connexion, BoucleServeur et résolution de nom de domaine - MTAint/tcpint.c : Code source pour le test de la communication TCP avec notre serveur fonctionne avec nc [ipv4_serveur] [port]
L'étape suivante sera d'implémenter les threads pour gérer plusieurs communications en même temps.
Etape2:
- MTAint: gestion_stmp : fonction de traitement et de stockage des informations avec des commandes HELO, MAIL, RCPT, DATA, QUIT dans une structure client réorganisation des fichiers : Test(test connection tcp, répertoire MTAint Etape1) , implémentation de la bibliothèque SMTP
L'implémentation des threads nous donne des erreurs. Librarire Threads non implémentée pour l'instant.
Etape2_finale:
MTAint: Implémentation des threads réalisée à l'aide d'une structure {void * arg, void * f(*f)(void *). Conflits de librairies résolus, nouvelle fonction serverLoop2 pour les threads et changement de void * gestionsmtp(int) en void * gestionsmtp(void *) pour être pris en charge par un thread
La prochaine étape est d'envoyer les donnés sur le port 25 et de recevoir un mail.
Etape3
Suite à une mauvaise compréhension du sujet de ma part, j'ai recommencé le projet avec le code fourni.
Erreurs corrigés:
smtp.c:184:23: warning: format not a string literal and no format arguments [-Wformat-security]
 184 |   if(fprintf(dialogue,envoi)<0) return -1;
     |                       
smtp.c: In function ‘dialogue_DATA’: smtp.c:211:1: warning: format not a string literal and no format arguments [-Wformat-security]
 211 | if(fprintf(dialogue,corps)<0) return -1;
     | ^~
smtp.c: In function ‘afficheCourriel’: smtp.c:239:3: warning: format not a string literal and no format arguments [-Wformat-security]
 239 |   if(complet) fprintf(sortie,donnees->corps);
     |   ^~
La fonction fprintf ne reconnaissait pas le dernier argument en paramètre. Ajout d'un %s : fprintf(FILE *,"%s",char *)
smtp_private.h : ACCUEIL_CODE = 250 => ACCUEIL_CODE 220
smtp.c : Affichage de la première réponse serveur distant dans retourGénérique
Script pour netcat
Automatisation des tests avec les commandes : 
$ function slowcat(){ while read; do sleep .05; echo "$REPLY"; done; } 
$ cat txt | slowcat | nc localhost [port] 
Et le fichier "txt": 
HELO localhost 
MAIL FROM: <patrikeev@gmail.com>
RCPT TO: <konstantin.patrikeev@polytech-lille.net>
DATA
From: [IES] <patrikeev@gmail.com>
To: <konstantin.patrikeev@polytech-lille.net>
Date: Fri, 27 Oct 2017 06:14:11 +0000
Subject: Test Message
Hi there! This is supposed to be a real email...
Have a good day!
-- System
.
QUIT
Documents Rendus
Lien du répertoire git : https://archives.plil.fr/kpatrike/EC_Messagerie.git