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”.

  • 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.1353510327.txt.gz · Last modified: 2024/03/18 15:05 (external edit)