rpc_svc_calls(3N) rpc_svc_calls(3N)
NAME
rpcsvccalls: rpcreg, svcreg, svcunreg, xprtregister,
xprtunregister - library routines for registering servers
DESCRIPTION
These routines are a part of the RPC library which allows the RPC
servers to register themselves with rpcbind [see rpcbind(1M)], and it
associates the given program and version number with the dispatch
function.
If you use one of the RPC functions, you must link the libnsl library
at compilation (cc -lnsl).
Routines
See rpc(3N) for the definition of the SVCXPRT data structure.
#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);
Register program prognum, procedure procname, and version versnum
with the RPC service package. If a request arrives for program
prognum, version versnum, and procedure procnum, procname is
called with a pointer to its parameter(s); procname should return
a pointer to its static result(s); inproc is used to decode the
parameters while outproc is used to encode the results. Pro-
cedures are registered on all available transports of the class
nettype. nettype defines a class of transports which can be used
for a particular application. If nettype is NULL, it defaults to
netpath. This routine returns 0 if the registration succeeded, -1
otherwise.
int
svcreg(const SVCXPRT *xprt, const ulong prognum, const ulong versnum,
const void (*dispatch), const struct netconfig *netconf);
Associates prognum and versnum with the service dispatch pro-
cedure, dispatch. If netconf is NULL, the service is not
registered with the rpcbind service. If netconf is non-zero, then
a mapping of the triple [prognum, versnum, netconf->ncnetid] to
xprt->xpltaddr is established with the local rpcbind service.
The svcreg routine returns 1 if it succeeds, and 0 otherwise.
void
svcunreg(const ulong prognum, const ulong versnum);
Page 1 Reliant UNIX 5.44 Printed 11/98
rpc_svc_calls(3N) rpc_svc_calls(3N)
Remove, from the rpcbind service, all mappings of the double
[prognum, versnum] to dispatch routines, and of the triple [prog-
num, versnum, *] to network address.
void
xprtregister(const SVCXPRT *xprt);
After RPC service transport handle xprt is created, it is
registered with the RPC service package. This routine modifies
the global variable svcfds. Service implementors usually do not
need this routine.
void
xprtunregister(const SVCXPRT *xprt);
Before an RPC service transport handle xprt is destroyed, it
unregisters itself with the RPC service package. This routine
modifies the global variable svcfds. Service implementors usu-
ally do not need this routine.
SEE ALSO
rpcbind(1M), rpcbind(3N), rpc(3N), rpcsvcerr(3N),
rpcsvccreate(3N), rpcsvcreg(3N).
Page 2 Reliant UNIX 5.44 Printed 11/98