User Tools

Site Tools


sysrep:rpc

This is an old revision of the document!


TP RPC

Vous disposez de documentation dans le répertoire doc/ ainsi que du man.

Exercice 1 (calculation)

On vous fourni l'interface “calculation.x”.

calculation.x
struct two_int {
    int a;
    int b;
};
program CALCULATION_PROG {
    version CALCULATION_VERS_BASE {
	int sum(two_int)=1;
    }=1;
}=0x20000000;
  • Programmer cet exemple. Pour générer tout le code source (client,

serveur, makefile, stubs), vous pouvez utilisez la commande

  suivante : "rpcgen -a calculation.x". Il vous reste à compléter
  les fichiers "calculation_server.c" et "calculation_client.c"...
* Compiler : make -f makefile.calculation.
* Tester en local sur votre machine, puis sur deux machines
  distantes.
* Analyser le résultat de la commande "rpcinfo -p".
* Analyser les souches de ce petit exemple. Ajouter des traces dans
  le code des souches afin de suivre précisément les appels à
  distance...
* Ajouter maintenant de nouvelles fonctions à votre service
  "calculation"...

Exercice 2 (rwall)

A partir de l'interface “rwall.x” qui permet d'envoyer un message.

  • Implanter rapidement ce service.
  • Ecrire maintenant un client pour le service “rwall”, n'utilisant

pas les souches générées, grâce à la fonction “callrpc()”.

  • Ecrire maintenant un serveur pour le service “rwall”

n'utilisant pas les souches générées, grâce aux fonctions

  "registerrpc()" et "svc_run()".

Nota Bene : cf. man rpc

Exercice 3 (authentification)

On vous fourni l'interface “hello.x”, qui retourne le message “hello world!” au client.

  • Implantez rapidement ce service.
  • Modifiez le client pour qu'il utilise l'authentification Unix.

Aidez-vous de la documentation fournie dans doc/rpc-doc.pdf.

  • Modifiez le serveur pour qu'il accepte uniquement les clients

utilisant l'authentification Unix, possédant le même UID que le

  serveur. Vérifiez qu'un client avec un UID différent est bien
  rejeté !
  • Que pensez-vous de ce système d'authentification ? Mettez-en

évidence que vous pouvez le contourner en modifiant le code

  client.
sysrep/rpc.1354025198.txt.gz · Last modified: 2024/03/18 15:05 (external edit)