Table of Contents

TP RPC

Vous disposez de documentation dans le manuel Unix (man rpc, man xdr), ainsi que des documents suivants : rpc-doc.pdf et rpc-spec.pdf.

FIXME : rpcbind (la nouvelle implantation du portmapper) ne fonctionne qu'en mode superuser et n'accepte que des services RPC lancés en mode superuser ! Pour surmonter ce problème, il faudrait pouvoir lancer rpcbind en mode “insecure” (option -i) ou utiliser des machines virtuelles ou recompiler une ancienne version de ce service qui ne travaille pas avec le port 111 (mais 1111).

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;

Exercice 2 (rwall)

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

rwall.x
program WALLPROG {
	version WALLVERS {
		void WALLPROC_WALL(string) = 2;
	} = 1;
} = 0x20000008;

Nota Bene : cf. man rpc

Exercice 3 (authentification)

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

hello.x
program HELLOPROG {
	version HELLOVERS {
		string HELLO(void) = 1;
	} = 1;
} = 0x30000824;