FUNCTION rpc_constants::get_constants

struct = {RPC_MSG_VERSION:   self.RPC_MSG_VERSION,   $
          CALL:              self.CALL,              $
          REPLY:             self.REPLY,             $
          MSG_ACCEPTED:      self.MSG_ACCEPTED,      $
          MSG_DENIED:        self.MSG_DENIED,        $
          SUCCESS:           self.SUCCESS,           $
          PROG_UNAVAIL:      self.PROG_UNAVAIL,      $
          PROG_MISMATCH:     self.PROG_MISMATCH,     $
          PROC_UNAVAIL:      self.PROC_UNAVAIL,      $
          GARBAGE_ARGS:      self.GARBAGE_ARGS,      $
          RPC_MISMATCH:      self.RPC_MISMATCH,      $
          AUTH_ERROR:        self.AUTH_ERROR,        $
          AUTH_NULL:         self.AUTH_NULL,         $
          AUTH_UNIX:         self.AUTH_UNIX,         $
          AUTH_SHORT:        self.AUTH_SHORT,        $
          AUTH_DES:          self.AUTH_DES,          $
          AUTH_BADCRED:      self.AUTH_BADCRED,      $
          AUTH_REJECTEDCRED: self.AUTH_REJECTEDCRED, $
          AUTH_BADVERF:      self.AUTH_BADVERF,      $
          AUTH_REJECTEDVERF: self.AUTH_REJECTEDVERF, $
          AUTH_TOOWEAK:      self.AUTH_TOOWEAK,      $
          IPPROTO_TCP:       self.IPPROTO_TCP,       $
          IPPROTO_UDP:       self.IPPROTO_UDP,       $
          PMAP_PROG:         self.PMAP_PROG,         $
          PMAP_VERS:         self.PMAP_VERS,         $
          PMAPPROC_NULL:     self.PMAPPROC_NULL,     $
          PMAPPROC_SET:      self.PMAPPROC_SET,      $
          PMAPPROC_UNSET:    self.PMAPPROC_UNSET,    $
          PMAPPROC_GETPORT:  self.PMAPPROC_GETPORT,  $
          PMAPPROC_DUMP:     self.PMAPPROC_DUMP,     $
          PMAPPROC_CALLIT:   self.PMAPPROC_CALLIT,   $
          XDR_ENCODE:        self.XDR_ENCODE,        $
          XDR_DECODE:        self.XDR_DECODE,        $
          IDL_NULL:          self.IDL_NULL,          $
          IDL_BYTE:          self.IDL_BYTE,          $
          IDL_INT:           self.IDL_INT,           $
          IDL_LONG:          self.IDL_LONG,          $
          IDL_FLOAT:         self.IDL_FLOAT,         $
          IDL_DOUBLE:        self.IDL_DOUBLE,        $
          IDL_COMPLEX:       self.IDL_COMPLEX,       $
          IDL_STRING:        self.IDL_STRING,        $
          IDL_STRUCT:        self.IDL_STRUCT,        $
          IDL_DCOMPLEX:      self.IDL_DCOMPLEX,      $
          IDL_POINTER:       self.IDL_POINTER,       $
          IDL_OBJREF:        self.IDL_OBJREF,        $
          IDL_UINT:          self.IDL_UINT,          $
          IDL_ULONG:         self.IDL_ULONG,         $
          IDL_LONG64:        self.IDL_LONG64,        $
          IDL_ULONG64:       self.IDL_ULONG64,       $
          RPC_RECORD:        self.RPC_RECORD         $
          }


RETURN, struct

END

; ------------------------------------------------------------------------------------------------

FUNCTION rpc_constants::init

; RPC Version (Should Always Be 2)

    self.RPC_MSG_VERSION = 2

; msg_type

    self.CALL  = 0
    self.REPLY = 1

; A reply to a call message can take on two forms:
; The message was either accepted or rejected.

    self.MSG_ACCEPTED = 0
    self.MSG_DENIED   = 1

; Given that a call message was accepted, the following is the
; status of an attempt to call a remote procedure.

    self.SUCCESS       = 0 ; RPC executed successfully
    self.PROG_UNAVAIL  = 1 ; remote hasn't exported program
    self.PROG_MISMATCH = 2 ; remote can't support version #
    self.PROC_UNAVAIL  = 3 ; program can't support procedure
    self.GARBAGE_ARGS  = 4 ; procedure can't decode params

; Reasons why a call message was rejected:

    self.RPC_MISMATCH = 0  ; RPC version number != 2
    self.AUTH_ERROR = 1    ; remote can't authenticate caller

; Types (flavors) of authentication:

    self.AUTH_NULL       = 0
    self.AUTH_UNIX       = 1
    self.AUTH_SHORT      = 2
    self.AUTH_DES        = 3

; Why authentication failed:

    self.AUTH_BADCRED      = 1  ; bad credentials (seal broken)
    self.AUTH_REJECTEDCRED = 2  ; client must begin new session
    self.AUTH_BADVERF      = 3  ; bad verifier (seal broken)
    self.AUTH_REJECTEDVERF = 4  ; verifier expired or replayed
    self.AUTH_TOOWEAK      = 5  ; rejected for security reasons

; Transport Protocols:

    self.IPPROTO_TCP = 6        ; protocol number for TCP/IP
    self.IPPROTO_UDP = 17       ; protocol number for UDP/IP

; Portmapper Program Address and Version

    self.PMAP_PROG        = 100000L
    self.PMAP_VERS        = 2


; Portmapper Procedure Numbers:

    self.PMAPPROC_NULL    = 0
    self.PMAPPROC_SET     = 1
    self.PMAPPROC_UNSET   = 2
    self.PMAPPROC_GETPORT = 3
    self.PMAPPROC_DUMP    = 4
    self.PMAPPROC_CALLIT  = 5

; XDR Encode and Decode (Not Really Part Of RPC)

    self.XDR_ENCODE = 1
    self.XDR_DECODE = 0

; IDL Data Types

    self.IDL_NULL         = 0
    self.IDL_BYTE         = 1
    self.IDL_INT          = 2
    self.IDL_LONG         = 3
    self.IDL_FLOAT        = 4
    self.IDL_DOUBLE       = 5
    self.IDL_COMPLEX      = 6
    self.IDL_STRING       = 7
    self.IDL_STRUCT       = 8
    self.IDL_DCOMPLEX     = 9
    self.IDL_POINTER      = 10
    self.IDL_OBJREF       = 11
    self.IDL_UINT         = 12
    self.IDL_ULONG        = 13
    self.IDL_LONG64       = 14
    self.IDL_ULONG64      = 15
    self.RPC_RECORD       = 16

RETURN, 1

END

; ------------------------------------------------------------------------------------------------

PRO rpc_constants::cleanup

RETURN

END

; ------------------------------------------------------------------------------------------------


PRO rpc_constants__define

struct = {RPC_CONSTANTS,           $
          RPC_MSG_VERSION:   0L,   $
          CALL:              0L,   $
          REPLY:             0L,   $
          MSG_ACCEPTED:      0L,   $
          MSG_DENIED:        0L,   $
          SUCCESS:           0L,   $ ; RPC executed successfully
          PROG_UNAVAIL:      0L,   $ ; remote hasn't exported program
          PROG_MISMATCH:     0L,   $ ; remote can't support version #
          PROC_UNAVAIL:      0L,   $ ; program can't support procedure
          GARBAGE_ARGS:      0L,   $ ; procedure can't decode params
          RPC_MISMATCH:      0L,   $ ; RPC version number != 2
          AUTH_ERROR:        0L,   $ ; remote can't authenticate caller
          AUTH_NULL:         0L,   $
          AUTH_UNIX:         0L,   $
          AUTH_SHORT:        0L,   $
          AUTH_DES:          0L,   $
          AUTH_BADCRED:      0L,   $  ; bad credentials (seal broken)
          AUTH_REJECTEDCRED: 0L,   $  ; client must begin new session
          AUTH_BADVERF:      0L,   $  ; bad verifier (seal broken)
          AUTH_REJECTEDVERF: 0L,   $  ; verifier expired or replayed
          AUTH_TOOWEAK:      0L,   $  ; rejected for security reasons
          IPPROTO_TCP:       0L,   $  ; protocol number for TCP/IP
          IPPROTO_UDP:       0L,   $  ; protocol number for UDP/IP
          PMAP_PROG:         0L,   $
          PMAP_VERS:         0L,   $
          PMAPPROC_NULL:     0L,   $
          PMAPPROC_SET:      0L,   $
          PMAPPROC_UNSET:    0L,   $
          PMAPPROC_GETPORT:  0L,   $
          PMAPPROC_DUMP:     0L,   $
          PMAPPROC_CALLIT:   0L,   $
          IDL_NULL:          0L,   $
          IDL_BYTE:          0L,   $
          IDL_INT:           0L,   $
          IDL_LONG:          0L,   $
          IDL_FLOAT:         0L,   $
          IDL_DOUBLE:        0L,   $
          IDL_COMPLEX:       0L,   $
          IDL_STRING:        0L,   $
          IDL_STRUCT:        0L,   $
          IDL_DCOMPLEX:      0L,   $
          IDL_POINTER:       0L,   $
          IDL_OBJREF:        0L,   $
          IDL_UINT:          0L,   $
          IDL_ULONG:         0L,   $
          IDL_LONG64:        0L,   $
          IDL_ULONG64:       0L,   $
          RPC_RECORD:        0L,   $
          XDR_ENCODE:        0L,   $
          XDR_DECODE:        0L    $
          }


RETURN

END

; ------------------------------------------------------------------------------------------------