RPCSVCCLS(3N-SVR4)RISC/os Reference Manual RPCSVCCLS(3N-SVR4)
NAME
rpc_svc_calls: rpc_reg, svc_reg, svc_unreg, xprt_register,
xprt_unregister - 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->nc_netid] to
xprt->xp_ltaddr is established with the local rpcbind
service.
The svcreg routine returns 1 if it succeeds, and 0
otherwise
Printed 11/19/92 Page 1
RPCSVCCLS(3N-SVR4)RISC/os Reference Manual RPCSVCCLS(3N-SVR4)
void
svcunreg(const ulong prognum, const ulong versnum);
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 svc_fds. 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
svc_fds. Service implementors usually do not need this
routine.
SEE ALSO
rpcbind(1M), rpcbind(3N), rpc(3N), rpc_svc_err(3N),
rpc_svc_create(3N), rpc_svc_reg(3N).
Page 2 Printed 11/19/92