rpc_svc_reg(3R)
rpc_svc_reg: _rpc_errorhandler, svc_fdset, svc_fds, svc_freeargs, svc_getargs, svc_getcaller, svc_getreq, svc_getreqset, svc_run, svc_sendreply, svc_versquiet - library routines for RPC servers
Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.30.
NAME rpc_svc_reg: _rpc_errorhandler, svc_fdset, svc_fds, svc_freeargs, svc_getargs, svc_getcaller, svc_getreq, svc_getreqset, svc_run, svc_sendreply, svc_versquiet - library routines for RPC servers SYNOPSIS AND DESCRIPTION This page describes function from Irix standard C library (libc) which are used by RPC servers to process calls comming from clients. #include <rpc/rpc.h> void _rpc_errorhandler(int priority, const char *format, ...) Called by the RPC library routines to print an error message to stderr or to syslog(3), if openlog(3) was called. priority values are defined in <syslog.h>. format is printf-like format string. See comments in <rpc/errorhandler.h> for details on defining your own version for more sophisticated error handling. fd_set svc_fdset; A global variable reflecting the RPC service side's read file descriptor bit mask; it is suitable as a parameter to the select(2) system call. This is only of interest if a service implementor does not call svc_run(), in order to do asynchronous event processing, for example. This variable is read-only (do not pass its address to select!), yet it may change after calls to svc_getreqset() or any creation routines. int svc_fds Similar to svc_fdset, but limited to 32 descriptors. This interface is obsoleted by svc_fdset. bool_t svc_freeargs(SVCXPRT *xprt, xdrproc_t inproc, void *in) A macro that frees any data allocated by the RPC/XDR system when it decoded the arguments to a service procedure using svc_getargs(). This routine returns 1 if the results were successfully freed, and 0 otherwise. bool_t svc_getargs(SVCXPRT *xprt, xdrproc_t inproc, void *in) A macro that decodes the arguments of an RPC request associated with the RPC service transport handle, xprt. The parameter in is the address where the arguments will be placed; inproc is the XDR routine used to decode the arguments. This routine returns 1 if decoding succeeds, and 0 otherwise. Only after this routine is called can the server call fork(2) to create a child process to handle the request. struct sockaddr_in * svc_getcaller(SVCXPRT *xprt) The approved way of getting the network address of the caller of a procedure associated with the RPC service transport handle, xprt. void svc_getreq(int rdfds) This routine is provided for compatibility with old code. Use svc_getreqset () when developing new code. void svc_getreqset(fd_set *rdfds) This routine is only of interest if a service implementor does not call svc_run(), but instead implements custom asynchronous event processing. It is called when the select(2) system call has determined that an RPC request has arrived on some RPC socket(s); rdfds is the resultant read file descriptor bit mask. The routine returns when all sockets associated with the value of rdfds have been serviced. void svc_run(void) This routine never returns. It waits for RPC requests to arrive, and calls the appropriate service procedure using svc_getreq() when one arrives. This procedure is usually waiting for a select() system call to return. bool_t svc_sendreply(SVCXPRT *xprt, xdrproc_t outproc, void *out) Called by an RPC service's dispatch routine to send the results of a remote procedure call. The parameter xprt is the request's associated transport handle; outproc is the XDR routine which is used to encode the results; and out is the address of the results. This routine returns 1 if it succeeds, 0 otherwise. void svc_versquiet(SVCXPRT *xprt) Tell the RPC library to not complain (send no reply message at all) about version errors to the client. This is useful when revving broadcast protocols that sit on a fixed address. TCP services ignore this flag. SEE ALSO rpc_svc_cls(3R), rpc_svc_cr(3R), rpc(3R), IRIX Network Programming Guide.