Connected: An Internet Encyclopedia
RFC 1831 - 11.1 An Example Service Described in the RPC Language

Top: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 1831
Up: 11. THE RPC LANGUAGE
Prev: 11. THE RPC LANGUAGE
Next: 11.2 The RPC Language Specification

### 11.1 An Example Service Described in the RPC Language

Here is an example of the specification of a simple ping program.

       program PING_PROG {
             /*
              * Latest and greatest version
              */
             version PING_VERS_PINGBACK {
                void
                PINGPROC_NULL(void) = 0;
                /*
                 * Ping the client, return the round-trip time
                 * (in microseconds). Returns -1 if the operation
                 * timed out.
                 */
                int
                PINGPROC_PINGBACK(void) = 1;
             } = 2;

             /*
              * Original version
              */
             version PING_VERS_ORIG {
                void
                PINGPROC_NULL(void) = 0;
             } = 1;
          } = 1;

          const PING_VERS = 2;      /* latest version */

The first version described is PING_VERS_PINGBACK with two procedures, PINGPROC_NULL and PINGPROC_PINGBACK. PINGPROC_NULL takes no arguments and returns no results, but it is useful for computing round-trip times from the client to the server and back again. By convention, procedure 0 of any RPC protocol should have the same semantics, and never require any kind of authentication. The second procedure is used for the client to have the server do a reverse ping operation back to the client, and it returns the amount of time (in microseconds) that the operation used. The next version, PING_VERS_ORIG, is the original version of the protocol and it does not contain PINGPROC_PINGBACK procedure. It is useful for compatibility with old client programs, and as this program matures it may be dropped from the protocol entirely.

Next: 11.2 The RPC Language Specification

Connected: An Internet Encyclopedia
RFC 1831 - 11.1 An Example Service Described in the RPC Language