Coda Distributed File System
Classes | Macros | Typedefs | Enumerations | Functions | Variables
rpc2.h File Reference
#include <stdio.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <rpc2/multi.h>
#include <rpc2/se.h>
Include dependency graph for rpc2.h:

Go to the source code of this file.

Classes

struct  RPC2_CountedBS
 
struct  RPC2_BoundedBS
 
struct  RPC2_HostIdent
 
struct  RPC2_PortIdent
 
struct  RPC2_SubsysIdent
 
struct  RPC2_McastIdent
 
struct  RPC2_PeerInfo
 
struct  rpc2_LinkEntry
 
struct  RPC2_PacketBuffer
 
struct  RPC2_PacketBuffer::RPC2_PacketBufferPrefix
 
struct  RPC2_PacketBuffer::RPC2_PacketHeader
 
struct  RPC2_RequestFilter
 
struct  RPC2_NewConnectionBody
 
struct  RPC2_Options
 
struct  RPC2_BindParms
 
struct  arg
 
struct  RPC2_Multicast
 
struct  RPC2_NetLogEntry
 
struct  RPC2_NetLog
 
struct  CallCountEntry
 
struct  MultiCallEntry
 
struct  MultiStubWork
 
struct  SStats
 
struct  RStats
 

Macros

#define RPC2_VERSION   "Version 15.0: JH, 10 Dec 1998, 12:00"
 
#define RPC2_PROTOVERSION   8
 
#define RPC2_OPENKIMONO   98 /* Neither authenticated nor encrypted */
 
#define RPC2_AUTHONLY   12 /* Authenticated but not encrypted */
 
#define RPC2_HEADERSONLY   73 /* Authenticated but only headers encrypted */
 
#define RPC2_SECURE   66 /* Authenticated and fully encrypted */
 
#define RPC2_DES   1
 
#define RPC2_XOR   2
 
#define RPC2_ENCRYPTIONTYPES   (RPC2_DES | RPC2_XOR)
 
#define RPC2_KEYSIZE   8 /*Size in bytes of the encryption keys */
 
#define RPC2_SUCCESS   0
 
#define RPC2_WLIMIT   -1
 
#define RPC2_ELIMIT   -1000
 
#define RPC2_FLIMIT   -2000
 
#define RPC2_OLDVERSION   RPC2_WLIMIT - 1
 
#define RPC2_INVALIDOPCODE   RPC2_WLIMIT - 2
 
#define RPC2_BADDATA   RPC2_WLIMIT - 3
 
#define RPC2_NOGREEDY   RPC2_WLIMIT - 4
 
#define RPC2_ABANDONED   RPC2_WLIMIT - 5
 
#define RPC2_CONNBUSY   RPC2_ELIMIT - 1
 
#define RPC2_SEFAIL1   RPC2_ELIMIT - 2
 
#define RPC2_TOOLONG   RPC2_ELIMIT - 3
 
#define RPC2_NOMGROUP   RPC2_ELIMIT - 4
 
#define RPC2_MGRPBUSY   RPC2_ELIMIT - 5
 
#define RPC2_NOTGROUPMEMBER   RPC2_ELIMIT - 6
 
#define RPC2_DUPLICATEMEMBER   RPC2_ELIMIT - 7
 
#define RPC2_BADMGROUP   RPC2_ELIMIT - 8
 
#define RPC2_FAIL   RPC2_FLIMIT - 1
 
#define RPC2_NOCONNECTION   RPC2_FLIMIT - 2
 
#define RPC2_TIMEOUT   RPC2_FLIMIT - 3
 
#define RPC2_NOBINDING   RPC2_FLIMIT - 4
 
#define RPC2_DUPLICATESERVER   RPC2_FLIMIT - 5
 
#define RPC2_NOTWORKER   RPC2_FLIMIT - 6
 
#define RPC2_NOTCLIENT   RPC2_FLIMIT - 7
 
#define RPC2_WRONGVERSION   RPC2_FLIMIT - 8
 
#define RPC2_NOTAUTHENTICATED   RPC2_FLIMIT - 9
 
#define RPC2_CLOSECONNECTION   RPC2_FLIMIT - 10
 
#define RPC2_BADFILTER   RPC2_FLIMIT - 11
 
#define RPC2_LWPNOTINIT   RPC2_FLIMIT - 12
 
#define RPC2_BADSERVER   RPC2_FLIMIT - 13
 
#define RPC2_SEFAIL2   RPC2_FLIMIT - 14
 
#define RPC2_DEAD   RPC2_FLIMIT - 15
 
#define RPC2_NAKED   RPC2_FLIMIT - 16
 
#define RPC2_SEFAIL3   RPC2_FLIMIT - 17 /* More error codes for side effects */
 
#define RPC2_SEFAIL4   RPC2_FLIMIT - 18 /* More error codes for side effects */
 
#define MGRPERROR(code)
 
#define RPC2_INIT1OPENKIMONO    -2 /* Begin a new connection with security level RPC2_OPENKIMONO */
 
#define RPC2_INIT1AUTHONLY    -3 /* Begin a new connection with security level RPC2_AUTHONLY */
 
#define RPC2_INIT1HEADERSONLY    -4 /* Begin a new connection with security level RPC2_HEADERSONLY */
 
#define RPC2_INIT1SECURE    -5 /* Begin a new connection with security level RPC2_SECURE */
 
#define RPC2_LASTACK   -6 /* Packet that acknowledges a reply */
 
#define RPC2_REPLY   -8 /* Reply packet */
 
#define RPC2_INIT2   -10 /* Phase 2 of bind handshake */
 
#define RPC2_INIT3   -11 /* Phase 3 of bind handshake */
 
#define RPC2_INIT4   -12 /* Phase 4 of bind handshake */
 
#define RPC2_NEWCONNECTION
 
#define RPC2_BUSY   -14 /* keep alive packet */
 
#define RPC2_INITMULTICAST   -15 /* Establish a multicast connection */
 
#define RPC2_MAXPACKETSIZE   4500
 
#define RPC2_RETRY   0x01 /* set by runtime system */
 
#define RPC2_ENCRYPTED   0x02 /* set by runtime system */
 
#define RPC2SEC_CAPABLE   0x10 /* set on Init1 packet by new rpc2sec stack */
 
#define RPC2_OPTION_IPV6   0x1
 
#define RPC2_OPTION_VERBOSE_INIT   0x2
 
#define RPC2_MAXLOGLENGTH   32
 
#define RPC2_MAXQUANTUM   ((unsigned)-1)
 
#define RPC2_AllocBuffer(x, y)    (rpc2_AllocBuffer((long)(x), y, __FILE__, (long)__LINE__))
 

Typedefs

typedef int32_t RPC2_Integer
 
typedef uint32_t RPC2_Unsigned
 
typedef uint8_t RPC2_Byte
 
typedef double RPC2_Double
 
typedef RPC2_ByteRPC2_ByteSeq
 
typedef RPC2_ByteSeq RPC2_String
 
typedef RPC2_Byte RPC2_EncryptionKey[RPC2_KEYSIZE]
 
typedef RPC2_Integer RPC2_Handle
 
typedef struct RPC2_PacketBuffer RPC2_PacketBuffer
 
typedef struct arg ARG
 
typedef long RPC2_GetKeys_func(RPC2_Integer *AuthenticationType, RPC2_CountedBS *cident, RPC2_EncryptionKey SharedSecret, RPC2_EncryptionKey sessionkey)
 
typedef long RPC2_AuthFail_func(RPC2_Integer AuthenticationType, RPC2_CountedBS *cident, RPC2_Integer EncryptionType, RPC2_HostIdent *PeerHost, RPC2_PortIdent *PeerPort)
 
typedef long RPC2_UnpackMulti_func(int HowMany, RPC2_Handle ConnHandleList[], ARG_INFO *ArgInfo, RPC2_PacketBuffer *Reply, long errcode, long idx)
 

Enumerations

enum  HostTag { RPC2_HOSTBYNAME = 39 , RPC2_HOSTBYINETADDR = 17 , RPC2_HOSTBYADDRINFO = 6 , RPC2_DUMMYHOST = 88888 }
 
enum  PortTag { RPC2_PORTBYINETNUMBER = 53 , RPC2_PORTBYNAME = 64 , RPC2_DUMMYPORT = 99999 }
 
enum  SubsysTag { RPC2_SUBSYSBYID = 71 , RPC2_SUBSYSBYNAME = 84 , RPC2_DUMMYSUBSYS = 44444 }
 
enum  MgrpTag { RPC2_MGRPBYINETADDR = 111 , RPC2_MGRPBYADDRINFO = 121 , RPC2_MGRPBYNAME = 137 , RPC2_DUMMYMGRP = 77777 }
 
enum  E1 { ANY = 12 , ONECONN = 37 , ONESUBSYS = 43 }
 
enum  E2 { OLD = 27 , NEW = 38 , OLDORNEW = 69 }
 
enum  WHO {
  RP2_CLIENT = 0 , RP2_SERVER = 1 , RP2_MULTI = 2 , RP2_DUMP = 3 ,
  RP2_HELPER = 4
}
 
enum  MODE {
  NO_MODE = 0 , IN_MODE = 1 , OUT_MODE = 2 , IN_OUT_MODE = 3 ,
  C_END = 4 , MAX_BOUND = 5
}
 
enum  TYPE_TAG {
  RPC2_INTEGER_TAG = 0 , RPC2_UNSIGNED_TAG = 1 , RPC2_BYTE_TAG = 2 , RPC2_STRING_TAG = 3 ,
  RPC2_COUNTEDBS_TAG = 4 , RPC2_BOUNDEDBS_TAG = 5 , RPC2_BULKDESCRIPTOR_TAG = 6 , RPC2_ENCRYPTIONKEY_TAG = 7 ,
  RPC2_STRUCT_TAG = 8 , RPC2_ENUM_TAG = 9 , RPC2_DOUBLE_TAG = 10
}
 
enum  NetLogTag { RPC2_UNSET_NLE = 0 , RPC2_MEASURED_NLE = 1 , RPC2_STATIC_NLE = 2 }
 
enum  NetLogEntryType { RPC2_MEASUREMENT = 0 , SE_MEASUREMENT = 1 }
 

Functions

long RPC2_Init (const char *VersionId, RPC2_Options *Options, RPC2_PortIdent *PortList, long RetryCount, struct timeval *KeepAliveInterval)
 
void RPC2_SetLog (FILE *, int)
 
long RPC2_Export (RPC2_SubsysIdent *Subsys)
 
long RPC2_DeExport (RPC2_SubsysIdent *Subsys)
 
long rpc2_AllocBuffer (long MinBodySize, RPC2_PacketBuffer **BufferPtr, const char *SrcFile, long SrcLine)
 
long RPC2_FreeBuffer (RPC2_PacketBuffer **Buffer)
 
long RPC2_SendResponse (RPC2_Handle ConnHandle, RPC2_PacketBuffer *Reply)
 
long RPC2_GetRequest (RPC2_RequestFilter *Filter, RPC2_Handle *ConnHandle, RPC2_PacketBuffer **Request, struct timeval *Patience, RPC2_GetKeys_func *, long EncryptionTypeMask, RPC2_AuthFail_func *)
 
long RPC2_MakeRPC (RPC2_Handle ConnHandle, RPC2_PacketBuffer *Request, SE_Descriptor *SDesc, RPC2_PacketBuffer **Reply, struct timeval *Patience, long EnqueueRequest)
 
long RPC2_MultiRPC (int HowMany, RPC2_Handle ConnHandleList[], RPC2_Integer RCList[], RPC2_Multicast *MCast, RPC2_PacketBuffer *Request, SE_Descriptor SDescList[], RPC2_UnpackMulti_func *, ARG_INFO *ArgInfo, struct timeval *BreathOfLife)
 
long RPC2_NewBinding (RPC2_HostIdent *Host, RPC2_PortIdent *Port, RPC2_SubsysIdent *Subsys, RPC2_BindParms *BParms, RPC2_Handle *ConnHandle)
 
long RPC2_InitSideEffect (RPC2_Handle ConnHandle, SE_Descriptor *SDesc)
 
long RPC2_CheckSideEffect (RPC2_Handle ConnHandle, SE_Descriptor *SDesc, long Flags)
 
long RPC2_Unbind (RPC2_Handle ConnHandle)
 
long RPC2_GetPrivatePointer (RPC2_Handle WhichConn, char **PrivatePtr)
 
long RPC2_SetPrivatePointer (RPC2_Handle WhichConn, char *PrivatePtr)
 
long RPC2_GetSEPointer (RPC2_Handle WhichConn, struct SFTP_Entry **SEPtr)
 
long RPC2_SetSEPointer (RPC2_Handle WhichConn, struct SFTP_Entry *SEPtr)
 
long RPC2_GetPeerInfo (RPC2_Handle WhichConn, RPC2_PeerInfo *PeerInfo)
 
char * RPC2_ErrorMsg (long rc)
 
long RPC2_DumpTrace (FILE *OutFile, long HowMany)
 
long RPC2_DumpState (FILE *OutFile, long Verbosity)
 
long RPC2_InitTraceBuffer (long HowMany)
 
long RPC2_LamportTime ()
 
long RPC2_Enable (RPC2_Handle ConnHandle)
 
long RPC2_CreateMgrp (RPC2_Handle *MgroupHandle, RPC2_McastIdent *MulticastHost, RPC2_PortIdent *MulticastPort, RPC2_SubsysIdent *Subsys, RPC2_Integer SecurityLevel, RPC2_EncryptionKey SessionKey, RPC2_Integer EncryptionType, long SideEffectType)
 
long RPC2_AddToMgrp (RPC2_Handle MgroupHandle, RPC2_Handle ConnHandle)
 
long RPC2_RemoveFromMgrp (RPC2_Handle MgroupHandle, RPC2_Handle ConnHandle)
 
long RPC2_DeleteMgrp (RPC2_Handle MgroupHandle)
 
long MRPC_MakeMulti (int ServerOp, ARG ArgTypes[], RPC2_Integer HowMany, RPC2_Handle CIDList[], RPC2_Integer RCList[], RPC2_Multicast *MCast, RPC2_HandleResult_func *, struct timeval *Timeout,...)
 
long RPC2_SetColor (RPC2_Handle ConnHandle, RPC2_Integer Color)
 
long RPC2_GetColor (RPC2_Handle ConnHandle, RPC2_Integer *Color)
 
long RPC2_GetPeerLiveness (RPC2_Handle ConnHandle, struct timeval *Time, struct timeval *SETime)
 
long RPC2_GetNetInfo (RPC2_Handle ConnHandle, RPC2_NetLog *RPCLog, RPC2_NetLog *SELog)
 
long RPC2_PutNetInfo (RPC2_Handle ConnHandle, RPC2_NetLog *RPCLog, RPC2_NetLog *SELog)
 
long RPC2_ClearNetInfo (RPC2_Handle ConnHandle)
 
long getsubsysbyname (char *subsysName)
 
int RPC2_R2SError (int error)
 
int RPC2_S2RError (int error)
 
int RPC2_GetRTT (RPC2_Handle handle, unsigned long *RTT, unsigned long *RTTvar)
 
int RPC2_GetBandwidth (RPC2_Handle handle, unsigned long *BWlow, unsigned long *BWavg, unsigned long *BWhigh)
 
int RPC2_GetLastObs (RPC2_Handle handle, struct timeval *tv)
 
int RPC2_SetTimeout (RPC2_Handle whichConn, struct timeval timeout)
 
int struct_len (ARG **a_types, PARM **args)
 
void rpc2_Encrypt (char *FromBuffer, char *ToBuffer, size_t HowManyBytes, RPC2_EncryptionKey WhichKey, RPC2_Integer EncryptionType)
 
void rpc2_Decrypt (char *FromBuffer, char *ToBuffer, size_t HowManyBytes, RPC2_EncryptionKey WhichKey, RPC2_Integer EncryptionType)
 
void rpc2_InitRandom (void)
 
unsigned int rpc2_NextRandom (char *StatePtr)
 
struct in_addr RPC2_setip (struct in_addr *ip)
 
void RPC2_setbindaddr (RPC2_HostIdent *host)
 

Variables

long RPC2_DebugLevel
 
long RPC2_Perror
 
long RPC2_Trace
 
long RPC2_strict_ip_matching
 
size_t RPC2_Preferred_Keysize
 
int RPC2_secure_only
 
long rpc2_Bandwidth
 
struct SStats rpc2_Sent
 
struct RStats rpc2_Recvd
 
struct SStats rpc2_MSent
 
struct RStats rpc2_MRecvd
 
int rpc2_43bsd
 
FILE * rpc2_logfile
 
FILE * rpc2_tracefile
 
int RPC2_enableReaping
 
RPC2_HostIdent rpc2_LocalHost
 
RPC2_PortIdent rpc2_LocalPort
 
long rpc2_PBSmallCreationCount
 
long rpc2_PBSmallFreeCount
 
long rpc2_PBMediumCreationCount
 
long rpc2_PBMediumFreeCount
 
long rpc2_PBLargeCreationCount
 
long rpc2_PBLargeFreeCount
 
long rpc2_SLCreationCount
 
long rpc2_SLFreeCount
 
long rpc2_ConnCreationCount
 
long rpc2_ConnCount
 
long rpc2_ConnFreeCount
 
long rpc2_SSCreationCount
 
long rpc2_SSCount
 
long rpc2_SSFreeCount
 
long rpc2_Unbinds
 
long rpc2_FreeConns
 
long rpc2_AllocConns
 
long rpc2_GCConns
 
long rpc2_PBCount
 
long rpc2_PBHoldCount
 
long rpc2_PBFreezeCount
 
long rpc2_FreezeHWMark
 
long rpc2_HoldHWMark
 

Macro Definition Documentation

◆ MGRPERROR

#define MGRPERROR (   code)
Value:
(code == RPC2_NOMGROUP || code == RPC2_MGRPBUSY || \
code == RPC2_NOTGROUPMEMBER || code == RPC2_DUPLICATEMEMBER || \
code == RPC2_BADMGROUP)
#define RPC2_MGRPBUSY
Definition: rpc2.h:153
#define RPC2_DUPLICATEMEMBER
Definition: rpc2.h:155
#define RPC2_BADMGROUP
Definition: rpc2.h:156
#define RPC2_NOMGROUP
Definition: rpc2.h:152
#define RPC2_NOTGROUPMEMBER
Definition: rpc2.h:154

◆ RPC2_ABANDONED

#define RPC2_ABANDONED   RPC2_WLIMIT - 5

◆ RPC2_AllocBuffer

#define RPC2_AllocBuffer (   x,
 
)     (rpc2_AllocBuffer((long)(x), y, __FILE__, (long)__LINE__))

◆ RPC2_AUTHONLY

#define RPC2_AUTHONLY   12 /* Authenticated but not encrypted */

◆ RPC2_BADDATA

#define RPC2_BADDATA   RPC2_WLIMIT - 3

◆ RPC2_BADFILTER

#define RPC2_BADFILTER   RPC2_FLIMIT - 11

◆ RPC2_BADMGROUP

#define RPC2_BADMGROUP   RPC2_ELIMIT - 8

◆ RPC2_BADSERVER

#define RPC2_BADSERVER   RPC2_FLIMIT - 13

◆ RPC2_BUSY

#define RPC2_BUSY   -14 /* keep alive packet */

◆ RPC2_CLOSECONNECTION

#define RPC2_CLOSECONNECTION   RPC2_FLIMIT - 10

◆ RPC2_CONNBUSY

#define RPC2_CONNBUSY   RPC2_ELIMIT - 1

◆ RPC2_DEAD

#define RPC2_DEAD   RPC2_FLIMIT - 15

◆ RPC2_DES

#define RPC2_DES   1

◆ RPC2_DUPLICATEMEMBER

#define RPC2_DUPLICATEMEMBER   RPC2_ELIMIT - 7

◆ RPC2_DUPLICATESERVER

#define RPC2_DUPLICATESERVER   RPC2_FLIMIT - 5

◆ RPC2_ELIMIT

#define RPC2_ELIMIT   -1000

◆ RPC2_ENCRYPTED

#define RPC2_ENCRYPTED   0x02 /* set by runtime system */

◆ RPC2_ENCRYPTIONTYPES

#define RPC2_ENCRYPTIONTYPES   (RPC2_DES | RPC2_XOR)

◆ RPC2_FAIL

#define RPC2_FAIL   RPC2_FLIMIT - 1

◆ RPC2_FLIMIT

#define RPC2_FLIMIT   -2000

◆ RPC2_HEADERSONLY

#define RPC2_HEADERSONLY   73 /* Authenticated but only headers encrypted */

◆ RPC2_INIT1AUTHONLY

#define RPC2_INIT1AUTHONLY    -3 /* Begin a new connection with security level RPC2_AUTHONLY */

◆ RPC2_INIT1HEADERSONLY

#define RPC2_INIT1HEADERSONLY    -4 /* Begin a new connection with security level RPC2_HEADERSONLY */

◆ RPC2_INIT1OPENKIMONO

#define RPC2_INIT1OPENKIMONO    -2 /* Begin a new connection with security level RPC2_OPENKIMONO */

◆ RPC2_INIT1SECURE

#define RPC2_INIT1SECURE    -5 /* Begin a new connection with security level RPC2_SECURE */

◆ RPC2_INIT2

#define RPC2_INIT2   -10 /* Phase 2 of bind handshake */

◆ RPC2_INIT3

#define RPC2_INIT3   -11 /* Phase 3 of bind handshake */

◆ RPC2_INIT4

#define RPC2_INIT4   -12 /* Phase 4 of bind handshake */

◆ RPC2_INITMULTICAST

#define RPC2_INITMULTICAST   -15 /* Establish a multicast connection */

◆ RPC2_INVALIDOPCODE

#define RPC2_INVALIDOPCODE   RPC2_WLIMIT - 2

◆ RPC2_KEYSIZE

#define RPC2_KEYSIZE   8 /*Size in bytes of the encryption keys */

◆ RPC2_LASTACK

#define RPC2_LASTACK   -6 /* Packet that acknowledges a reply */

◆ RPC2_LWPNOTINIT

#define RPC2_LWPNOTINIT   RPC2_FLIMIT - 12

◆ RPC2_MAXLOGLENGTH

#define RPC2_MAXLOGLENGTH   32

◆ RPC2_MAXPACKETSIZE

#define RPC2_MAXPACKETSIZE   4500

◆ RPC2_MAXQUANTUM

#define RPC2_MAXQUANTUM   ((unsigned)-1)

◆ RPC2_MGRPBUSY

#define RPC2_MGRPBUSY   RPC2_ELIMIT - 5

◆ RPC2_NAKED

#define RPC2_NAKED   RPC2_FLIMIT - 16

◆ RPC2_NEWCONNECTION

#define RPC2_NEWCONNECTION
Value:
-13 /* opcode of fake request generated by RPC2_GetRequest() on new \
connection */

◆ RPC2_NOBINDING

#define RPC2_NOBINDING   RPC2_FLIMIT - 4

◆ RPC2_NOCONNECTION

#define RPC2_NOCONNECTION   RPC2_FLIMIT - 2

◆ RPC2_NOGREEDY

#define RPC2_NOGREEDY   RPC2_WLIMIT - 4

◆ RPC2_NOMGROUP

#define RPC2_NOMGROUP   RPC2_ELIMIT - 4

◆ RPC2_NOTAUTHENTICATED

#define RPC2_NOTAUTHENTICATED   RPC2_FLIMIT - 9

◆ RPC2_NOTCLIENT

#define RPC2_NOTCLIENT   RPC2_FLIMIT - 7

◆ RPC2_NOTGROUPMEMBER

#define RPC2_NOTGROUPMEMBER   RPC2_ELIMIT - 6

◆ RPC2_NOTWORKER

#define RPC2_NOTWORKER   RPC2_FLIMIT - 6

◆ RPC2_OLDVERSION

#define RPC2_OLDVERSION   RPC2_WLIMIT - 1

◆ RPC2_OPENKIMONO

#define RPC2_OPENKIMONO   98 /* Neither authenticated nor encrypted */

◆ RPC2_OPTION_IPV6

#define RPC2_OPTION_IPV6   0x1

◆ RPC2_OPTION_VERBOSE_INIT

#define RPC2_OPTION_VERBOSE_INIT   0x2

◆ RPC2_PROTOVERSION

#define RPC2_PROTOVERSION   8

◆ RPC2_REPLY

#define RPC2_REPLY   -8 /* Reply packet */

◆ RPC2_RETRY

#define RPC2_RETRY   0x01 /* set by runtime system */

◆ RPC2_SECURE

#define RPC2_SECURE   66 /* Authenticated and fully encrypted */

◆ RPC2_SEFAIL1

#define RPC2_SEFAIL1   RPC2_ELIMIT - 2

◆ RPC2_SEFAIL2

#define RPC2_SEFAIL2   RPC2_FLIMIT - 14

◆ RPC2_SEFAIL3

#define RPC2_SEFAIL3   RPC2_FLIMIT - 17 /* More error codes for side effects */

◆ RPC2_SEFAIL4

#define RPC2_SEFAIL4   RPC2_FLIMIT - 18 /* More error codes for side effects */

◆ RPC2_SUCCESS

#define RPC2_SUCCESS   0

◆ RPC2_TIMEOUT

#define RPC2_TIMEOUT   RPC2_FLIMIT - 3

◆ RPC2_TOOLONG

#define RPC2_TOOLONG   RPC2_ELIMIT - 3

◆ RPC2_VERSION

#define RPC2_VERSION   "Version 15.0: JH, 10 Dec 1998, 12:00"

◆ RPC2_WLIMIT

#define RPC2_WLIMIT   -1

◆ RPC2_WRONGVERSION

#define RPC2_WRONGVERSION   RPC2_FLIMIT - 8

◆ RPC2_XOR

#define RPC2_XOR   2

◆ RPC2SEC_CAPABLE

#define RPC2SEC_CAPABLE   0x10 /* set on Init1 packet by new rpc2sec stack */

Typedef Documentation

◆ ARG

typedef struct arg ARG

◆ RPC2_AuthFail_func

typedef long RPC2_AuthFail_func(RPC2_Integer AuthenticationType, RPC2_CountedBS *cident, RPC2_Integer EncryptionType, RPC2_HostIdent *PeerHost, RPC2_PortIdent *PeerPort)

◆ RPC2_Byte

typedef uint8_t RPC2_Byte

◆ RPC2_ByteSeq

◆ RPC2_Double

typedef double RPC2_Double

◆ RPC2_EncryptionKey

typedef RPC2_Byte RPC2_EncryptionKey[RPC2_KEYSIZE]

◆ RPC2_GetKeys_func

typedef long RPC2_GetKeys_func(RPC2_Integer *AuthenticationType, RPC2_CountedBS *cident, RPC2_EncryptionKey SharedSecret, RPC2_EncryptionKey sessionkey)

◆ RPC2_Handle

◆ RPC2_Integer

◆ RPC2_PacketBuffer

◆ RPC2_String

◆ RPC2_UnpackMulti_func

typedef long RPC2_UnpackMulti_func(int HowMany, RPC2_Handle ConnHandleList[], ARG_INFO *ArgInfo, RPC2_PacketBuffer *Reply, long errcode, long idx)

◆ RPC2_Unsigned

Enumeration Type Documentation

◆ E1

enum E1
Enumerator
ANY 
ONECONN 
ONESUBSYS 

◆ E2

enum E2
Enumerator
OLD 
NEW 
OLDORNEW 

◆ HostTag

enum HostTag
Enumerator
RPC2_HOSTBYNAME 
RPC2_HOSTBYINETADDR 
RPC2_HOSTBYADDRINFO 
RPC2_DUMMYHOST 

◆ MgrpTag

enum MgrpTag
Enumerator
RPC2_MGRPBYINETADDR 
RPC2_MGRPBYADDRINFO 
RPC2_MGRPBYNAME 
RPC2_DUMMYMGRP 

◆ MODE

enum MODE
Enumerator
NO_MODE 
IN_MODE 
OUT_MODE 
IN_OUT_MODE 
C_END 
MAX_BOUND 

◆ NetLogEntryType

Enumerator
RPC2_MEASUREMENT 
SE_MEASUREMENT 

◆ NetLogTag

enum NetLogTag
Enumerator
RPC2_UNSET_NLE 
RPC2_MEASURED_NLE 
RPC2_STATIC_NLE 

◆ PortTag

enum PortTag
Enumerator
RPC2_PORTBYINETNUMBER 
RPC2_PORTBYNAME 
RPC2_DUMMYPORT 

◆ SubsysTag

enum SubsysTag
Enumerator
RPC2_SUBSYSBYID 
RPC2_SUBSYSBYNAME 
RPC2_DUMMYSUBSYS 

◆ TYPE_TAG

enum TYPE_TAG
Enumerator
RPC2_INTEGER_TAG 
RPC2_UNSIGNED_TAG 
RPC2_BYTE_TAG 
RPC2_STRING_TAG 
RPC2_COUNTEDBS_TAG 
RPC2_BOUNDEDBS_TAG 
RPC2_BULKDESCRIPTOR_TAG 
RPC2_ENCRYPTIONKEY_TAG 
RPC2_STRUCT_TAG 
RPC2_ENUM_TAG 
RPC2_DOUBLE_TAG 

◆ WHO

enum WHO
Enumerator
RP2_CLIENT 
RP2_SERVER 
RP2_MULTI 
RP2_DUMP 
RP2_HELPER 

Function Documentation

◆ getsubsysbyname()

long getsubsysbyname ( char *  subsysName)

◆ MRPC_MakeMulti()

long MRPC_MakeMulti ( int  ServerOp,
ARG  ArgTypes[],
RPC2_Integer  HowMany,
RPC2_Handle  CIDList[],
RPC2_Integer  RCList[],
RPC2_Multicast MCast,
RPC2_HandleResult_func HandleResult,
struct timeval *  Timeout,
  ... 
)

◆ RPC2_AddToMgrp()

long RPC2_AddToMgrp ( RPC2_Handle  MgroupHandle,
RPC2_Handle  ConnHandle 
)

◆ rpc2_AllocBuffer()

long rpc2_AllocBuffer ( long  MinBodySize,
RPC2_PacketBuffer **  BufferPtr,
const char *  SrcFile,
long  SrcLine 
)

◆ RPC2_CheckSideEffect()

long RPC2_CheckSideEffect ( RPC2_Handle  ConnHandle,
SE_Descriptor SDesc,
long  Flags 
)

◆ RPC2_ClearNetInfo()

long RPC2_ClearNetInfo ( RPC2_Handle  ConnHandle)

◆ RPC2_CreateMgrp()

long RPC2_CreateMgrp ( RPC2_Handle MgroupHandle,
RPC2_McastIdent MulticastHost,
RPC2_PortIdent MulticastPort,
RPC2_SubsysIdent Subsys,
RPC2_Integer  SecurityLevel,
RPC2_EncryptionKey  SessionKey,
RPC2_Integer  EncryptionType,
long  SideEffectType 
)

◆ rpc2_Decrypt()

void rpc2_Decrypt ( char *  FromBuffer,
char *  ToBuffer,
size_t  HowManyBytes,
RPC2_EncryptionKey  WhichKey,
RPC2_Integer  EncryptionType 
)

◆ RPC2_DeExport()

long RPC2_DeExport ( RPC2_SubsysIdent Subsys)

◆ RPC2_DeleteMgrp()

long RPC2_DeleteMgrp ( RPC2_Handle  MgroupHandle)

◆ RPC2_DumpState()

long RPC2_DumpState ( FILE *  OutFile,
long  Verbosity 
)

◆ RPC2_DumpTrace()

long RPC2_DumpTrace ( FILE *  OutFile,
long  HowMany 
)

◆ RPC2_Enable()

long RPC2_Enable ( RPC2_Handle  ConnHandle)

◆ rpc2_Encrypt()

void rpc2_Encrypt ( char *  FromBuffer,
char *  ToBuffer,
size_t  HowManyBytes,
RPC2_EncryptionKey  WhichKey,
RPC2_Integer  EncryptionType 
)

◆ RPC2_ErrorMsg()

char * RPC2_ErrorMsg ( long  rc)

◆ RPC2_Export()

long RPC2_Export ( RPC2_SubsysIdent Subsys)

◆ RPC2_FreeBuffer()

long RPC2_FreeBuffer ( RPC2_PacketBuffer **  Buffer)

◆ RPC2_GetBandwidth()

int RPC2_GetBandwidth ( RPC2_Handle  handle,
unsigned long *  BWlow,
unsigned long *  BWavg,
unsigned long *  BWhigh 
)

◆ RPC2_GetColor()

long RPC2_GetColor ( RPC2_Handle  ConnHandle,
RPC2_Integer Color 
)

◆ RPC2_GetLastObs()

int RPC2_GetLastObs ( RPC2_Handle  handle,
struct timeval *  tv 
)

◆ RPC2_GetNetInfo()

long RPC2_GetNetInfo ( RPC2_Handle  ConnHandle,
RPC2_NetLog RPCLog,
RPC2_NetLog SELog 
)

◆ RPC2_GetPeerInfo()

long RPC2_GetPeerInfo ( RPC2_Handle  WhichConn,
RPC2_PeerInfo PeerInfo 
)

◆ RPC2_GetPeerLiveness()

long RPC2_GetPeerLiveness ( RPC2_Handle  ConnHandle,
struct timeval *  Time,
struct timeval *  SETime 
)

◆ RPC2_GetPrivatePointer()

long RPC2_GetPrivatePointer ( RPC2_Handle  WhichConn,
char **  PrivatePtr 
)

◆ RPC2_GetRequest()

long RPC2_GetRequest ( RPC2_RequestFilter Filter,
RPC2_Handle ConnHandle,
RPC2_PacketBuffer **  Request,
struct timeval *  Patience,
RPC2_GetKeys_func ,
long  EncryptionTypeMask,
RPC2_AuthFail_func  
)

◆ RPC2_GetRTT()

int RPC2_GetRTT ( RPC2_Handle  handle,
unsigned long *  RTT,
unsigned long *  RTTvar 
)

◆ RPC2_GetSEPointer()

long RPC2_GetSEPointer ( RPC2_Handle  WhichConn,
struct SFTP_Entry **  SEPtr 
)

◆ RPC2_Init()

long RPC2_Init ( const char *  VersionId,
RPC2_Options Options,
RPC2_PortIdent PortList,
long  RetryCount,
struct timeval *  KeepAliveInterval 
)

◆ rpc2_InitRandom()

void rpc2_InitRandom ( void  )

◆ RPC2_InitSideEffect()

long RPC2_InitSideEffect ( RPC2_Handle  ConnHandle,
SE_Descriptor SDesc 
)

◆ RPC2_InitTraceBuffer()

long RPC2_InitTraceBuffer ( long  HowMany)

◆ RPC2_LamportTime()

long RPC2_LamportTime ( )

◆ RPC2_MakeRPC()

long RPC2_MakeRPC ( RPC2_Handle  ConnHandle,
RPC2_PacketBuffer Request,
SE_Descriptor SDesc,
RPC2_PacketBuffer **  Reply,
struct timeval *  Patience,
long  EnqueueRequest 
)

◆ RPC2_MultiRPC()

long RPC2_MultiRPC ( int  HowMany,
RPC2_Handle  ConnHandleList[],
RPC2_Integer  RCList[],
RPC2_Multicast MCast,
RPC2_PacketBuffer Request,
SE_Descriptor  SDescList[],
RPC2_UnpackMulti_func ,
ARG_INFO ArgInfo,
struct timeval *  BreathOfLife 
)

◆ RPC2_NewBinding()

long RPC2_NewBinding ( RPC2_HostIdent Host,
RPC2_PortIdent Port,
RPC2_SubsysIdent Subsys,
RPC2_BindParms BParms,
RPC2_Handle ConnHandle 
)

◆ rpc2_NextRandom()

unsigned int rpc2_NextRandom ( char *  StatePtr)

◆ RPC2_PutNetInfo()

long RPC2_PutNetInfo ( RPC2_Handle  ConnHandle,
RPC2_NetLog RPCLog,
RPC2_NetLog SELog 
)

◆ RPC2_R2SError()

int RPC2_R2SError ( int  error)

◆ RPC2_RemoveFromMgrp()

long RPC2_RemoveFromMgrp ( RPC2_Handle  MgroupHandle,
RPC2_Handle  ConnHandle 
)

◆ RPC2_S2RError()

int RPC2_S2RError ( int  error)

◆ RPC2_SendResponse()

long RPC2_SendResponse ( RPC2_Handle  ConnHandle,
RPC2_PacketBuffer Reply 
)

◆ RPC2_setbindaddr()

void RPC2_setbindaddr ( RPC2_HostIdent host)

◆ RPC2_SetColor()

long RPC2_SetColor ( RPC2_Handle  ConnHandle,
RPC2_Integer  Color 
)

◆ RPC2_setip()

struct in_addr RPC2_setip ( struct in_addr *  ip)

◆ RPC2_SetLog()

void RPC2_SetLog ( FILE *  file,
int  level 
)

◆ RPC2_SetPrivatePointer()

long RPC2_SetPrivatePointer ( RPC2_Handle  WhichConn,
char *  PrivatePtr 
)

◆ RPC2_SetSEPointer()

long RPC2_SetSEPointer ( RPC2_Handle  WhichConn,
struct SFTP_Entry SEPtr 
)

◆ RPC2_SetTimeout()

int RPC2_SetTimeout ( RPC2_Handle  whichConn,
struct timeval  timeout 
)

◆ RPC2_Unbind()

long RPC2_Unbind ( RPC2_Handle  ConnHandle)

◆ struct_len()

int struct_len ( ARG **  a_types,
PARM **  args 
)

Variable Documentation

◆ rpc2_43bsd

int rpc2_43bsd
extern

◆ rpc2_AllocConns

long rpc2_AllocConns

◆ rpc2_Bandwidth

long rpc2_Bandwidth
extern

◆ rpc2_ConnCount

long rpc2_ConnCount

◆ rpc2_ConnCreationCount

long rpc2_ConnCreationCount
extern

◆ rpc2_ConnFreeCount

long rpc2_ConnFreeCount

◆ RPC2_DebugLevel

long RPC2_DebugLevel
extern

◆ RPC2_enableReaping

int RPC2_enableReaping
extern

◆ rpc2_FreeConns

long rpc2_FreeConns

◆ rpc2_FreezeHWMark

long rpc2_FreezeHWMark
extern

◆ rpc2_GCConns

long rpc2_GCConns

◆ rpc2_HoldHWMark

long rpc2_HoldHWMark

◆ rpc2_LocalHost

RPC2_HostIdent rpc2_LocalHost
extern

◆ rpc2_LocalPort

RPC2_PortIdent rpc2_LocalPort
extern

◆ rpc2_logfile

FILE* rpc2_logfile
extern

◆ rpc2_MRecvd

struct RStats rpc2_MRecvd
extern

◆ rpc2_MSent

struct SStats rpc2_MSent
extern

◆ rpc2_PBCount

long rpc2_PBCount
extern

◆ rpc2_PBFreezeCount

long rpc2_PBFreezeCount

◆ rpc2_PBHoldCount

long rpc2_PBHoldCount

◆ rpc2_PBLargeCreationCount

long rpc2_PBLargeCreationCount
extern

◆ rpc2_PBLargeFreeCount

long rpc2_PBLargeFreeCount

◆ rpc2_PBMediumCreationCount

long rpc2_PBMediumCreationCount
extern

◆ rpc2_PBMediumFreeCount

long rpc2_PBMediumFreeCount

◆ rpc2_PBSmallCreationCount

long rpc2_PBSmallCreationCount
extern

◆ rpc2_PBSmallFreeCount

long rpc2_PBSmallFreeCount

◆ RPC2_Perror

long RPC2_Perror
extern

◆ RPC2_Preferred_Keysize

size_t RPC2_Preferred_Keysize
extern

◆ rpc2_Recvd

struct RStats rpc2_Recvd
extern

◆ RPC2_secure_only

int RPC2_secure_only
extern

◆ rpc2_Sent

struct SStats rpc2_Sent
extern

◆ rpc2_SLCreationCount

long rpc2_SLCreationCount
extern

◆ rpc2_SLFreeCount

long rpc2_SLFreeCount

◆ rpc2_SSCount

long rpc2_SSCount

◆ rpc2_SSCreationCount

long rpc2_SSCreationCount
extern

◆ rpc2_SSFreeCount

long rpc2_SSFreeCount

◆ RPC2_strict_ip_matching

long RPC2_strict_ip_matching
extern

◆ RPC2_Trace

long RPC2_Trace
extern

◆ rpc2_tracefile

FILE* rpc2_tracefile
extern

◆ rpc2_Unbinds

long rpc2_Unbinds
extern