IMA4 2021/2022 EC4 : Différence entre versions

De Wiki d'activités IMA
(Script pour netcat)
Ligne 11 : Ligne 11 :
 
= Travail réalisé =
 
= Travail réalisé =
  
== Etape1: ==
+
= 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: ==
+
= 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:==
+
=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==
+
=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

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