PSR SE2a4 2022/2023 G4 : Différence entre versions
De Wiki d'activités IMA
| Ligne 24 : | Ligne 24 : | ||
-Changement dans gestionCourriel() -> in.c / changement pour éviter d'envoyer le message sur tout les mx mais sur celui qui marche | -Changement dans gestionCourriel() -> in.c / changement pour éviter d'envoyer le message sur tout les mx mais sur celui qui marche | ||
<br> | <br> | ||
| − | + | <code> | |
| + | while(*p!=NULL){ | ||
| + | #ifdef DEVERMINE | ||
| + | printf("Serveur : %s\n",*p); | ||
| + | #endif | ||
| + | int ss=connexionServeur(*p,SMTP_PORT_DEFAULT); | ||
| + | FILE *dialogue=fdopen(ss,"a+"); | ||
| + | if(dialogue==NULL){ | ||
| + | perror("gestionCourriel.fdopen"); | ||
| + | exit(EXIT_FAILURE); | ||
| + | } | ||
| + | char erreur[MAX_ERREUR]; | ||
| + | int resultat=SMTP_dialogue(dialogue,donnees,erreur,MAX_ERREUR); | ||
| + | fclose(dialogue); | ||
| + | if(resultat<0) ecritureJournal(JOURNIV_DEVERMINE,JOURNAL_MXHS,*p); | ||
| + | // Logguer l'erreur | ||
| + | else { break; } | ||
| + | |||
| + | p++; | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
''' | ''' | ||
Version du 10 février 2023 à 12:38
Groupe Numéro 4 Rayane et Simon
Sommaire
Séance 1:
-Lecture du Sujet
-On examine le code:- fonction in.c => fonction chercheMX (fct de résolution) => Permet d'obtenir le MX (nom d'un MTA) et donc le MTA (agent de transfert)
-Compilation du code
-Il faut determiner les tâches à effectuer
Prise en main de la VM (VMALAD):
-Allumer la VM => capbreton.plil.info => xen create /etc/xen/VMALAD.cfg
-Se connecter => ssh root@193.48.57.166 => mdp : glopglopglop
Modif code:
-Changement dans gestionCourriel() -> in.c / changement pour éviter d'envoyer le message sur tout les mx mais sur celui qui marche
while(*p!=NULL){
#ifdef DEVERMINE
printf("Serveur : %s\n",*p);
#endif
int ss=connexionServeur(*p,SMTP_PORT_DEFAULT);
FILE *dialogue=fdopen(ss,"a+");
if(dialogue==NULL){
perror("gestionCourriel.fdopen");
exit(EXIT_FAILURE);
}
char erreur[MAX_ERREUR];
int resultat=SMTP_dialogue(dialogue,donnees,erreur,MAX_ERREUR);
fclose(dialogue);
if(resultat<0) ecritureJournal(JOURNIV_DEVERMINE,JOURNAL_MXHS,*p);
// Logguer l'erreur
else { break; }
p++;
}
}
Séance 2:
Explication du code en salle de cours (1h)
A faire:
-Un système doit être réalisé permettant au serveur SMTP sortant de mettre en file d’attente les messages non remis à destination pour cause d’erreur transitoire du serveur SMTP cible
-Les communications peuvent être chiffrées par TLS, les communication chiffrées peuvent être négociées directement sur le port 465
-Il doit être possible de basculer sur une communication chiffrée à partir du port 25 en utilisant les commandes EHLO et STARTTLS
-Les serveurs SMTP doivent gérer les enregistrements MX permettant d’associer un nom de domaine à un serveur de messagerie, le recours aux enregistrements AAAA et A est à utiliser en cas d’absence de MX => Partiellement
-Pour la transmission vers les serveurs SMTP cibles, une communication chiffrée doit être préférée => SMTP dialogue à modifier => commande EHLO => permet de connaitre les fonctions du serveur
-Le processus de remise stocke le message dans le sous-répertoire Maildir/tmp puis le déplace dans le sous-répertoire Maildir/new, déplacement doit être fait par la primitive rename => Partiellement fait, ajout du move dans la fonction gestionCourriel du fichier out.c
Modif code:
-Dans Mutex.c => ajout d'un free(mutexes) | Car le threads est détruit mais pas l'allocation mémoire des mutexes
-Dans out.c => fonction gestionCourriel => ajout d'un rename (move) du fichier TMP vers le fichier NEW