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.