rpc_svc_calls(3N) rpc_svc_calls(3N)
NAME
rpcsvccalls: rpcreg, svcreg, svcunreg, xprtregister,
xprtunregister - Bibliotheksroutinen für die Registrierung von Ser-
vern
BESCHREIBUNG
Diese Routinen sind Teil der RPC-Bibliothek, die es den RPC-Servern
ermöglicht, sich bei rpcbind(1M) zu registrieren. Außerdem werden die
Programm- und Versionsnummern der Server der jeweiligen Funktion
zugeordnet.
Wenn Sie eine der rpc-Funktionen verwenden, müssen Sie bei der Über-
setzung die Bibliothek libnsl dazubinden (cc -lnsl).
Routinen
Die Definition der Datenstruktur SVCXPRT ist in rpc(3N) beschrieben.
#include <rpc/rpc.h>
int
rpcreg(const ulong prognum, const ulong versnum,
const ulong procnum, const char *(*procname),
const xdrproct inproc, const xdrproct outproc,
const char *nettype);
Registriert Programm prognum, Prozedur procname und Versionsnum-
mer versnum. Wenn ein Auftrag für ein Programm prognum, der Ver-
sion versnum und der Prozedur procnum ankommt, wird procname mit
einem Zeiger auf seine Parameter aufgerufen. procname sollte
einen Zeiger auf seine static-Ergebnisse zurückliefern. inproc
wird verwendet, um die Parameter zu dekodieren, und outproc, um
die Ergebnisse zu kodieren. Prozeduren werden auf allen verfügba-
ren Transporten der Klasse nettype registriert. nettype definiert
eine Klasse von Transporten, die für eine bestimmte Anwendung
verwendet werden kann. Wenn nettype NULL ist, wird standardmäßig
netpath genommen. Wenn die Registrierung erfolgreich war, wird 0
zurückgeliefert, andernfalls -1.
int
svcreg(const SVCXPRT *xprt, const ulong prognum,
const ulong versnum, const void (*dispatch),
const struct netconfig *netconf);
Ordnet prognum und versnum der Verteilerfunktion dispatch zu.
Wenn netconf NULL ist, wird der Dienst nicht mit bei rpcbind
registriert. Wenn netconf ungleich Null ist, wird eine Abbildung
des Tripels (prognum, versnum, netconf->ncnetid) auf
xprt->xpltaddr mittels des lokalen Dienstes rpcbind eingerich-
tet.
Die Routine svcreg liefert im Erfolgsfall 1 zurück und 0 im
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
rpc_svc_calls(3N) rpc_svc_calls(3N)
Fehlerfall.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
rpc_svc_calls(3N) rpc_svc_calls(3N)
void
svcunreg(const ulong prognum, const ulong versnum);
Löscht alle Zuordnungen des Paares (prognum, versnum) auf Vertei-
lerfunktionen, und alle Zuordnungen des Tripels (prognum, vers-
num, *) auf Transportadressen, die bei rpcbind existieren.
void
xprtregister(const SVCXPRT *xprt);
Nachdem das Server-Handle xprt des RPC-Dienstes erzeugt wurde,
wird es durch das RPC-Paket in eine interne Tabelle eingetragen.
Diese Routine verändert die globale Variable svcfds. Programmie-
rer von den Diensten brauchen diese Routine normalerweise nicht.
void
xprtunregister(const SVCXPRT *xprt);
Bevor ein Server-Handle xprt des RPC-Dienstes gelöscht wird, wird
der interne Eintrag des RPC-Pakets entfernt. Diese Routine verän-
dert die globale Variable svcfds. Programmierer brauchen diese
Routine normalerweise nicht.
SIEHE AUCH
rpcbind(1M), rpcbind(3N), rpc(3N), rpcsvcerr(3N),
rpcsvccreate(3N), rpcsvcreg(3N).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98