rpc_svc_calls(3N) NETWORK FUNCTIONS 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 ver-
sion number with the dispatch function.
Routines
See rpc(3N) for the definition of the SVCXPRT data struc-
ture.
#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 ver-
sion 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. Procedures are registered on all avail-
able transports of the class nettype. nettype defines
a class of transports which can be used for a particu-
lar 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 procedure, 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);
Last change: 1
rpc_svc_calls(3N) NETWORK FUNCTIONS rpc_svc_calls(3N)
Remove, from the rpcbind service, all mappings of the
double [prognum, versnum] to dispatch routines, and of
the triple [prognum, 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 rou-
tine 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 des-
troyed, it unregisters itself with the RPC service
package. This routine modifies the global variable
svcfds. Service implementors usually do not need this
routine.
SEE ALSO
rpcbind(1M), rpcbind(3N), rpc(3N), rpcsvcerr(3N),
rpcsvccreate(3N), rpcsvcreg(3N).
Last change: 2