rpc_svc_reg(3N) rpc_svc_reg(3N)
NAME
rpcsvcreg: svcfreeargs, svcgetargs, svcgetreqset,
svcgetrpccaller, svcrun, svcsendreply - Bibliotheksroutinen für
RPC-Server
BESCHREIBUNG
Diese Routinen sind Teil der RPC-Bibliothek, die es C-Programmen
ermöglicht, ferne Prozeduraufrufe auf anderen Maschinen über ein Net-
zwerk durchzuführen.
Diese Routinen beziehen sich auf die Serverseite des RPC-Mechanismus.
Einige von ihnen werden von der Server-Verteilerfunktion aufgerufen.
Andere hingegen (wie z. B. svcrun) werden aufgerufen, wenn der Server
gestartet wird.
Wenn Sie eine der rpc-Funktionen verwenden, müssen Sie bei der Über-
setzung die Bibliothek libnsl dazubinden (cc -lnsl).
Routinen
Eine Definition der Datenstruktur SVCXPRT ist in rpc(3N) beschrieben.
#include <rpc/rpc.h>
int
svcfreeargs(const SVCXPRT *xprt, const xdrproct inproc, char *in);
Ein Funktionsmakro, das alle Daten freigibt, die vom RPC/XDR-
System bei der Dekodierung der Argumente für eine Dienstprozedur
mittels svcgetargs allokiert wurden. Diese Routine liefert bei
erfolgreicher Freigabe 1 zurück und im Fehlerfall 0.
int
svcgetargs(const SVCXPRT *xprt, const xdrproct inproc, caddrt *in);
Ein Funktionsmakro, das die Argumente eines RPC-Auftrags bezüg-
lich des Serverhandles xprt decodiert. Der Parameter in ist die
Adresse, an der die Argumente abgelegt werden. inproc ist die
XDR-Routine, die zur Dekodierung der Argumente verwendet wird.
Die Routine liefert bei erfolgreicher Dekodierung 1 und im Feh-
lerfall 0 zurück.
void
svcgetreqset(fdset *rdfds);
Diese Routine ist nur von Interesse, wenn ein Programmierer
svcrun nicht aufruft, sondern statt dessen eine asynchrone
Ereignisverarbeitung implementiert. Sie wird aufgerufen, wenn
poll festgestellt hat, daß ein RPC-Auftrag auf einem RPC-
Dateideskriptor angekommen ist. rdfds ist ein Bitfeld für alle zu
prüfenden Deskriptoren. Die Routine kehrt zurück, wenn alle
Dateideskriptoren entsprechend dem Wert von rdfds verarbeitet
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
rpc_svc_reg(3N) rpc_svc_reg(3N)
wurden.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
rpc_svc_reg(3N) rpc_svc_reg(3N)
struct netbuf *
svcgetrpccaller(const SVCXPRT *xprt);
Ermittelt die Netzwerkadresse eines Aufrufers, der die Prozedur
aufgerufen hat, die mit dem RPC-Serverhandle xprt verbunden ist.
void
svcrun(void);
Dies ist eine Routine, die nicht mehr zurückkehrt. Sie wartet auf
die Ankunft von RPC-Aufträgen und ruft, wenn ein Auftrag ankommt,
die entsprechende Dienstroutine mittels svcgetreqset auf. Danach
wird der nächste RPC-Auftrag erwartet.
int
svcsendreply(const SVCXPRT *xprt, const xdrproct outproc,
const caddrt *out);
Wird von einer RPC-Verteilerfunktion aufgerufen, um die Ergeb-
nisse eines fernen Prozeduraufrufs zu versenden. Der Parameter
xprt ist das Serverhandle des Auftrags. outproc ist die XDR-
Routine, die für die Kodierung der Ergebnisse verwendet wird. out
ist die Adresse, an der sich die Ergebnisse befinden. Die Routine
liefert im Erfolgsfall 1 und im Fehlerfall 0 zurück.
SIEHE AUCH
poll(2), rpc(3N), rpcsvccalls(3N), rpcsvccreate(3N),
rpcsvcerr(3N).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98