PSR SE2a4 2022/2023 G8 : Différence entre versions

De Wiki d'activités IMA
Ligne 1 : Ligne 1 :
='''PARTIE 1'''=
+
=''INTRODUCTION''=
Bonjour <br>
+
Connexion à la machine virtuelle :<br>
Oussama
+
  ''ssh root@193.48.57.180''<br>
 +
<br>
 +
Installation du compilateur:<br>
 +
  ''apt update''<br>
 +
  ''apt install gcc''<br>
 +
<br>
 +
 
 +
=''PARTIE 1: SMTPin''=
 +
- Dans le fichier "in.c", nous nous assurons du bon fonctionnement de la fonction de gestion de courriels. => Ajout '''else{break;}''' pour arrêter l'envoi des mails.<br>
 +
<br>
 +
- Supprimer le fichier "mx.c". Il est inutile de garder le fichier car ce dernier est implémenté dans un autre dossier.<br>
 +
<br>
 +
- Pour Debugger SMTPin, nous avons ajouté des printf pour le suivi.<br>
 +
  ''#ifdef DEVERMINE''<br>
 +
  ''printf("statut =%d\n", statut);''<br>
 +
  ''printf("succes =%d\n", succes);''<br>
 +
  ''printf("code =%d\n", code);''<br>
 +
  ''#endif''<br>
 +
- Ce qui nous permet de retrouver : ACCUEIL_CODE 220 / CONTINUE_DATA_CODE 354 / SUCCES_QUIT_CODE 250 et de les modifier dans les librairies ("smptp_private.h").<br>
 +
- Ne pas oublier de changer les variables globales dans "smtp.c"
 +
 
 +
=''PARTIE 2: SMTPout''=
 +
- Dans le fichier "out.c", nous déplaçons Maildir/tmp dans Maildir/new<br>
 +
  ''char nouveau_fichier[MAX_CHEMIN];''<br>
 +
  ''sprintf(nouveau_fichier,"%s/%s/%s/%Id_%010d",dossier,id,MAILDIR_NEW,capt,pid,messages);''<br>
 +
  ''rename(fichier, nouveau_fichier);''<br>
 +
<br>
 +
- Il faut lancer les serveurs SMTPin et SMTPout sur différents ports (!= du port 25) => Nous configurons SMTPout en eth0 et SMTPin en loopback.<br>
 +
<br>
 +
Pour ce faire :<br>
 +
- Dans "SMPTout/args.h", nous ajoutons à la structure smtp_config une variable interface.<br>
 +
  ''char interface[CONFIG_MAX_INTERFACE];''<br>
 +
- Dans "SMPTout/args.c", ajouter "interfaces" dans la structure options:<br>
 +
  ''{"interfaces", required_argument,0, 'i'},''<br>
 +
- Dans "SMPTout/args.c", ajouter le case interface dans le switch:<br>
 +
  ''case 'i':''<br>
 +
  ''strncpy(config->interface,optarg,sizeof(config->interface)-1);''<br>
 +
  ''break;''<br>
 +
- Dans "SMTPout/out.c":<br>
 +
  ''else if(config.interface!=NULL) interface = config.interface;''<br>
 +
=''PARTIE 3: Tests''=

Version du 13 juin 2023 à 22:37

INTRODUCTION

Connexion à la machine virtuelle :

  ssh root@193.48.57.180


Installation du compilateur:

  apt update
apt install gcc


PARTIE 1: SMTPin

- Dans le fichier "in.c", nous nous assurons du bon fonctionnement de la fonction de gestion de courriels. => Ajout else{break;} pour arrêter l'envoi des mails.

- Supprimer le fichier "mx.c". Il est inutile de garder le fichier car ce dernier est implémenté dans un autre dossier.

- Pour Debugger SMTPin, nous avons ajouté des printf pour le suivi.

 #ifdef DEVERMINE
printf("statut =%d\n", statut);
printf("succes =%d\n", succes);
printf("code =%d\n", code);
#endif

- Ce qui nous permet de retrouver : ACCUEIL_CODE 220 / CONTINUE_DATA_CODE 354 / SUCCES_QUIT_CODE 250 et de les modifier dans les librairies ("smptp_private.h").
- Ne pas oublier de changer les variables globales dans "smtp.c"

PARTIE 2: SMTPout

- Dans le fichier "out.c", nous déplaçons Maildir/tmp dans Maildir/new

 char nouveau_fichier[MAX_CHEMIN];
sprintf(nouveau_fichier,"%s/%s/%s/%Id_%010d",dossier,id,MAILDIR_NEW,capt,pid,messages);
rename(fichier, nouveau_fichier);


- Il faut lancer les serveurs SMTPin et SMTPout sur différents ports (!= du port 25) => Nous configurons SMTPout en eth0 et SMTPin en loopback.

Pour ce faire :
- Dans "SMPTout/args.h", nous ajoutons à la structure smtp_config une variable interface.

 char interface[CONFIG_MAX_INTERFACE];

- Dans "SMPTout/args.c", ajouter "interfaces" dans la structure options:

 {"interfaces", required_argument,0, 'i'},

- Dans "SMPTout/args.c", ajouter le case interface dans le switch:

 case 'i':
strncpy(config->interface,optarg,sizeof(config->interface)-1);
break;

- Dans "SMTPout/out.c":

 else if(config.interface!=NULL) interface = config.interface;

PARTIE 3: Tests