rpc_svc_calls(3N) rpc_svc_calls(3N)
NAME
rpc_svc_calls: rpc_reg, svc_reg, svc_unreg, xprt_register,
xprt_unregister - library routines for registering servers
SYNOPSIS
cc [options] file -lnsl
#include <rpc/rpc.h>
int rpc_reg(const u_long prognum, const u_long versnum,
const u_long procnum, const char *(*procname)(caddr_t),
const xdrproc_t inproc, const xdrproc_t outproc,
const char *nettype);
int svc_reg(const SVCXPRT *xprt, const u_long prognum,
const u_long versnum,
const void (*dispatch)(const struct svc_req *, const SVCXPRT *),
const struct netconfig *netconf);
void svc_unreg(const u_long prognum, const u_long versnum);
void xprt_register(const SVCXPRT *xprt);
void xprt_unregister(const SVCXPRT *xprt);
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.
Routines
See rpc(3N) for the definition of the SVCXPRT data structure.
int
rpc_reg(const u_long prognum, const u_long versnum,
const u_long procnum, const char *(*procname)(caddr_t),
const xdrproc_t inproc, const xdrproc_t 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.
Procedures 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
Copyright 1994 Novell, Inc. Page 1
rpc_svc_calls(3N) rpc_svc_calls(3N)
succeeded, -1 otherwise.
int
svc_reg(const SVCXPRT *xprt, const u_long prognum,
const u_long versnum,
const void (*dispatch)(const struct svc_req *, const SVCXPRT *),
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 svc_reg routine returns 1 if it succeeds, and 0
otherwise.
void
svc_unreg(const u_long prognum, const u_long 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
xprt_register(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 svc_fds. Service
implementors usually do not need this routine.
void
xprt_unregister(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
svc_fds. Service implementors usually do not need this
routine.
Files
/usr/lib/locale/locale/LC_MESSAGES/uxnsl
Copyright 1994 Novell, Inc. Page 2
rpc_svc_calls(3N) rpc_svc_calls(3N)
REFERENCES
rpcbind(1M), rpcbind(3N), rpc(3N), rpc_svc_err(3N),
rpc_svc_create(3N), rpc_svc_reg(3N)
Copyright 1994 Novell, Inc. Page 3