The Reply to an Accepted Request

This section explains the reply to an accepted request.

An RPC reply message for a request accepted by the network server has the following structure:

struct accepted_reply areply {
     opaque_auth verf;
     union switch (enum accept_stat stat) {
          case SUCCESS:
               opaque results {0};
               /* procedure specific results start here */
          case PROG_MISMATCH: 
               struct {
                    unsigned int low;
                    unsigned int high;
               } mismatch_info;
          default: 
               void;
     } reply_data;
};

The structures within the accepted reply are:

Item Description
opaque_auth verf Authentication verifier generated by the server to identify itself to the caller.
enum accept_stat A discriminant that acts as a switch between SUCCESS, PROG_MISMATCH, and other appropriate conditions.
The accept_stat enumeration data type has the following definitions:

enum accept_stat  {
     SUCCESS       = 0,  /* RPC executed successfully        */
     PROG_UNAVAIL  = 1,  /* remote has not exported program  */
     PROG_MISMATCH = 2,  /* remote cannot support version #  */
     PROC_UNAVAIL  = 3,  /* program cannot support procedure */
     GARBAGE_ARGS  = 4,  /* procedure cannot decode params   */
};

The structures within the accept_stat enumeration data type are defined as follows:

Item Description
SUCCESS RPC call is successful.
PROG_UNAVAIL The remote server has not exported the program.
PROG_MISMATCH The remote server cannot support the client's version number. Returns the lowest and highest version numbers of the remote program that are supported by the server.
PROC_UNAVAIL The program cannot support the requested procedure.
GARBAGE_ARGS The procedure cannot decode the parameters specified in the call.
Note: An error condition can exist even when a call message is accepted by the server.