Coda Distributed File System
Classes | Macros | Enumerations | Functions | Variables
rpc2.private.h File Reference
#include <assert.h>
#include <netinet/in.h>
#include <signal.h>
#include <stddef.h>
#include <string.h>
#include <lwp/lwp.h>
#include <lwp/timer.h>
#include <rpc2/rpc2.h>
#include <rpc2/rpc2_addrinfo.h>
#include <rpc2/secure.h>
#include "dllist.h"
Include dependency graph for rpc2.private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sockaddr_storage
 
struct  in6_addr
 
struct  sockaddr_in6
 
struct  CEntry
 
struct  MEntry
 
struct  SL_Entry
 
struct  SubsysEntry
 
struct  HEntry
 
struct  Init1Body
 
struct  Init2Body
 
struct  Init3Body
 
struct  Init4Body
 
struct  InitMulticastBody
 

Macros

#define socklen_t   unsigned int
 
#define OBJ_CENTRY   868
 
#define OBJ_FREE_CENTRY   686
 
#define OBJ_HENTRY   48127
 
#define OBJ_MENTRY   69743
 
#define OBJ_PACKETBUFFER   3247517
 
#define OBJ_SLENTRY   107
 
#define OBJ_SSENTRY   34079
 
#define FREE   0x0
 
#define CLIENT   0x00880000
 
#define SERVER   0x00440000
 
#define C_THINK   0x1
 
#define C_AWAITREPLY   0x2
 
#define C_HARDERROR   0x4
 
#define C_AWAITINIT2   0x8
 
#define C_AWAITINIT4   0x10
 
#define S_AWAITREQUEST   0x1
 
#define S_REQINQUEUE   0x2
 
#define S_PROCESS   0x4
 
#define S_INSE   0x8
 
#define S_HARDERROR   0x10
 
#define S_STARTBIND   0x20
 
#define S_AWAITINIT3   0x40
 
#define S_FINISHBIND   0x80
 
#define S_AWAITENABLE   0x0100
 
#define SetRole(e, role)   (e->State = role)
 
#define SetState(e, new)   (e->State = (e->State & 0xffff0000) | (new))
 
#define TestRole(e, role)   ((e->State & 0xffff0000) == role)
 
#define TestState(e, role, smask)    (TestRole(e, role) && ((e->State & 0x0000ffff) & (smask)))
 
#define O_BINARY   0
 
#define RPC2_MAXRTO   30000000 /* max rto (rtt + variance) is 30 seconds */
 
#define RPC2_DELACK_DELAY   100000
 
#define CE_OLDV   0x1 /* old version detected during bind */
 
#define listeners   me_conns.me_client.mec_listeners
 
#define howmanylisteners   me_conns.me_client.mec_howmanylisteners
 
#define maxlisteners   me_conns.me_client.mec_maxlisteners
 
#define conn   me_conns.mes_conn
 
#define RPC2_RTT_SHIFT   3 /* Bits to right of binary point of RTT */
 
#define RPC2_RTTVAR_SHIFT   2 /* Bits to right of binary point of RTTvar */
 
#define RPC2_INITIAL_BW   100000
 
#define RPC2_BW_SHIFT   4
 
#define htonPktColor(p)   (p->Header.Flags = htonl(p->Header.Flags))
 
#define ntohPktColor(p)   (p->Header.Flags = ntohl(p->Header.Flags))
 
#define SetPktColor(p, c)    (p->Header.Flags = (p->Header.Flags & 0xff00ffff) | ((c & 0xff) << 16))
 
#define GetPktColor(p)   ((p->Header.Flags >> 16) & 0x000000ff)
 
#define LE2(func, type, magic, member)
 
#define MORETHANONEBITSET(x)   (x != (1 << (ffs((long)x) - 1)))
 
#define rpc2_Enter()
 
#define rpc2_Quit(rc)   return ((long)rc)
 
#define rpc2_HostIdentEqual(_hi1p_, _hi2p_)
 
#define SMALLPACKET   350
 
#define MEDIUMPACKET   1500
 
#define LARGEPACKET   RPC2_MAXPACKETSIZE
 
#define IN   /* Input parameter */
 
#define OUT   /* Output parameter */
 
#define INOUT   /* Obvious */
 
#define say(when, what, how...)
 
#define TRUE   1
 
#define FALSE   0
 
#define SUBTIME(fromp, subp)
 
#define ADDTIME(top, fromp)
 
#define CMPTIME(a, b, CMP)
 
#define CLRTIME(tm)   ((tm)->tv_sec = 0, (tm)->tv_usec = 0)
 
#define TIMERISSET(tm)   ((tm)->tv_sec || (tm)->tv_usec)
 
#define TVTOTS(_tvp_, _ts_)
 
#define TSTOTV(_tvp_, _ts_)
 
#define TSDELTA(_ts1_, _ts2_)   ((int)(_ts1_) - (int)(_ts2_))
 
#define LUA_init()
 
#define LUA_clocktick()
 
#define LUA_drop_hosttable(a)
 
#define LUA_rtt_update(a, b, c, d)
 
#define LUA_rtt_getrto(a, b, c)   0
 
#define LUA_rtt_getbandwidth(a, b, c)   0
 
#define LUA_rtt_retryinterval(a, b, c, d)   0
 
#define LUA_fail_delay(a, b, c, d)   0
 

Enumerations

enum  SL_Type {
  REPLY = 1421 , REQ = 1422 , OTHER = 1423 , DELACK = 20010911 ,
  DELAYED_SEND = 20061016 , DELAYED_RECV = 20061017
}
 
enum  RetVal {
  WAITING = 38358230 , ARRIVED = 38358231 , TIMEOUT = 38358232 , KEPTALIVE = 38358233 ,
  KILLED = 38358234 , NAKED = 38358235
}
 
enum  HEType { UNSET_HE = 0 , RPC2_HE = 1 , SMARTFTP_HE = 2 }
 

Functions

void rpc2_Replenish (struct rpc2_LinkEntry **whichList, long *whichCount, long elemSize, long *creationCount, long magicNumber)
 
struct rpc2_LinkEntryrpc2_MoveEntry (struct rpc2_LinkEntry **fromPtr, struct rpc2_LinkEntry **toPtr, struct rpc2_LinkEntry *p, long *fromCount, long *toCount)
 
struct SL_Entryrpc2_AllocSle (enum SL_Type slType, struct CEntry *slConn)
 
void rpc2_FreeSle (struct SL_Entry **sl)
 
void rpc2_ActivateSle (struct SL_Entry *selem, struct timeval *exptime)
 
void rpc2_DeactivateSle (struct SL_Entry *sl, enum RetVal rc)
 
struct SubsysEntryrpc2_AllocSubsys (void)
 
void rpc2_FreeSubsys (struct SubsysEntry **whichSubsys)
 
void FreeHeld (struct SL_Entry *sle)
 
long rpc2_CreateIPSocket (int af, int *svar, struct RPC2_addrinfo *addr, short *Port)
 
long rpc2_SendReliably ()
 
long rpc2_MSendPacketsReliably ()
 
void rpc2_XmitPacket (RPC2_PacketBuffer *pb, struct RPC2_addrinfo *addr, int confirm)
 
void rpc2_InitPacket ()
 
int rpc2_MorePackets (void)
 
long rpc2_RecvPacket (long whichSocket, RPC2_PacketBuffer *whichBuff)
 
void rpc2_htonp (RPC2_PacketBuffer *p)
 
void rpc2_ntohp (RPC2_PacketBuffer *p)
 
long rpc2_CancelRetry (struct CEntry *Conn, struct SL_Entry *Sle)
 
void rpc2_UpdateRTT (RPC2_PacketBuffer *pb, struct CEntry *ceaddr)
 
void rpc2_ExpireEvents ()
 
void SavePacketForRetry (RPC2_PacketBuffer *pb, struct CEntry *ce)
 
int rpc2_InitConn (void)
 
void rpc2_FreeConn ()
 
void rpc2_SetConnError ()
 
struct CEntryrpc2_AllocConn ()
 
struct CEntryrpc2_ConnFromBindInfo (struct RPC2_addrinfo *peeraddr, RPC2_Handle RemoteHandle, RPC2_Integer whichUnique)
 
struct CEntry__rpc2_GetConn (RPC2_Handle handle)
 
struct CEntryrpc2_GetConn (RPC2_Handle handle)
 
void rpc2_ReapDeadConns (void)
 
void rpc2_IncrementSeqNumber (struct CEntry *)
 
void rpc2_InitHost (void)
 
struct HEntryrpc2_GetHost (struct RPC2_addrinfo *addr)
 
void rpc2_FreeHost (struct HEntry **whichHost)
 
void rpc2_GetHostLog (struct HEntry *whichHost, RPC2_NetLog *log, NetLogEntryType type)
 
int rpc2_AppendHostLog (struct HEntry *whichHost, RPC2_NetLogEntry *entry, NetLogEntryType type)
 
void rpc2_ClearHostLog (struct HEntry *whichHost, NetLogEntryType type)
 
void RPC2_UpdateEstimates (struct HEntry *whichHost, RPC2_Unsigned ElapsedTime, RPC2_Unsigned InBytes, RPC2_Unsigned OutBytes)
 
int rpc2_RetryInterval (struct CEntry *ce, int retry, struct timeval *tv, RPC2_Unsigned OutBytes, RPC2_Unsigned InBytes, int sftp)
 
void rpc2_InitMgrp ()
 
void rpc2_FreeMgrp ()
 
void rpc2_RemoveFromMgrp ()
 
void rpc2_DeleteMgrp ()
 
struct MEntryrpc2_AllocMgrp (struct RPC2_addrinfo *addr, RPC2_Handle handle)
 
struct MEntryrpc2_GetMgrp (struct RPC2_addrinfo *addr, RPC2_Handle handle, long role)
 
void rpc2_HoldPacket (RPC2_PacketBuffer *whichPB)
 
void rpc2_UnholdPacket (RPC2_PacketBuffer *whichPB)
 
int rpc2_FilterMatch ()
 
void rpc2_SocketListener (void *)
 
void rpc2_ClockTick (void *)
 
void SL_RegisterHandler (unsigned int proto, void(*func)(RPC2_PacketBuffer *))
 
void rpc2_HandlePacket (RPC2_PacketBuffer *pb)
 
void RPC2_DispatchProcess (void)
 
unsigned int rpc2_TVTOTS (const struct timeval *tv)
 
void rpc2_TSTOTV (const unsigned int ts, struct timeval *tv)
 
unsigned int rpc2_MakeTimeStamp ()
 
void rpc2_PrintTMElem ()
 
void rpc2_PrintFilter ()
 
void rpc2_PrintSLEntry ()
 
void rpc2_PrintCEntry ()
 
void rpc2_PrintTraceElem ()
 
void rpc2_PrintPacketHeader ()
 
void rpc2_PrintHostIdent ()
 
void rpc2_PrintPortIdent ()
 
void rpc2_PrintSEDesc ()
 
struct security_associationrpc2_GetSA (uint32_t spi)
 
void rpc2_ApplyD (RPC2_PacketBuffer *pb, struct CEntry *ce)
 
void rpc2_ApplyE (RPC2_PacketBuffer *pb, struct CEntry *ce)
 
time_t rpc2_time ()
 
long rpc2_InitRetry (long HowManyRetries, struct timeval *Beta0)
 
void rpc2_NoteBinding (struct RPC2_addrinfo *peeraddr, RPC2_Handle RemoteHandle, RPC2_Integer whichUnique, RPC2_Handle whichConn)
 
int mkcall (RPC2_HandleResult_func *ClientHandler, int ArgCount, int HowMany, RPC2_Handle ConnList[], long offset, long rpcval, int *args)
 
struct RPC2_addrinforpc2_resolve (RPC2_HostIdent *Host, RPC2_PortIdent *Port)
 
void rpc2_printaddrinfo (const struct RPC2_addrinfo *ai, FILE *f)
 
void rpc2_splitaddrinfo (RPC2_HostIdent *Host, RPC2_PortIdent *Port, const struct RPC2_addrinfo *ai)
 
void rpc2_simplifyHost (RPC2_HostIdent *Host, RPC2_PortIdent *Port)
 
void rpc2_formataddrinfo (const struct RPC2_addrinfo *ai, char *buf, size_t buflen, int use_canonname)
 
char * rpc2_timestring ()
 
int rpc2_DelayedSend (int s, struct RPC2_addrinfo *addr, RPC2_PacketBuffer *pb, struct timeval *delay)
 
int rpc2_DelayedRecv (RPC2_PacketBuffer *pb, struct timeval *delay)
 
void rpc2_SendDelayedPacket (struct SL_Entry *sl)
 
RPC2_PacketBufferrpc2_RecvDelayedPacket (struct SL_Entry *sl)
 

Variables

long rpc2_MgrpFreeCount
 
long rpc2_MgrpCreationCount
 
struct rpc2_LinkEntryrpc2_SLReqList
 
long rpc2_SLReqCount
 
long rpc2_SLCount
 
struct rpc2_LinkEntryrpc2_PBList
 
struct rpc2_LinkEntryrpc2_PBHoldList
 
struct rpc2_LinkEntryrpc2_SSList
 
long rpc2_HostFreeCount
 
long rpc2_HostCount
 
long rpc2_HostCreationCount
 
int rpc2_ipv6ready
 
int rpc2_v4RequestSocket
 
int rpc2_v6RequestSocket
 
struct TM_Elemrpc2_TimerQueue
 
struct CBUF_Headerrpc2_TraceBuffHeader
 
PROCESS rpc2_SocketListenerPID
 
unsigned long rpc2_LamportClock
 
long Retry_N
 
struct timeval KeepAlive
 
uint32_trpc2_RTTvals
 
FILE * ErrorLogFile
 
unsigned long rpc2_NoNaks
 
long rpc2_BindLimit
 
long rpc2_BindsInQueue
 
long rpc2_FreeMgrps
 
long rpc2_AllocMgrps
 

Macro Definition Documentation

◆ ADDTIME

#define ADDTIME (   top,
  fromp 
)
Value:
do { \
(top)->tv_sec += (fromp)->tv_sec; \
(top)->tv_usec += (fromp)->tv_usec; \
if ((top)->tv_usec >= 1000000) { \
(top)->tv_sec++; \
(top)->tv_usec -= 1000000; \
} \
} while (0);

◆ C_AWAITINIT2

#define C_AWAITINIT2   0x8

◆ C_AWAITINIT4

#define C_AWAITINIT4   0x10

◆ C_AWAITREPLY

#define C_AWAITREPLY   0x2

◆ C_HARDERROR

#define C_HARDERROR   0x4

◆ C_THINK

#define C_THINK   0x1

◆ CE_OLDV

#define CE_OLDV   0x1 /* old version detected during bind */

◆ CLIENT

#define CLIENT   0x00880000

◆ CLRTIME

#define CLRTIME (   tm)    ((tm)->tv_sec = 0, (tm)->tv_usec = 0)

◆ CMPTIME

#define CMPTIME (   a,
  b,
  CMP 
)
Value:
(((a)->tv_sec == (b)->tv_sec) ? ((a)->tv_usec CMP(b)->tv_usec) : \
((a)->tv_sec CMP(b)->tv_sec))

◆ conn

#define conn   me_conns.mes_conn

◆ FALSE

#define FALSE   0

◆ FREE

#define FREE   0x0

◆ GetPktColor

#define GetPktColor (   p)    ((p->Header.Flags >> 16) & 0x000000ff)

◆ howmanylisteners

#define howmanylisteners   me_conns.me_client.mec_howmanylisteners

◆ htonPktColor

#define htonPktColor (   p)    (p->Header.Flags = htonl(p->Header.Flags))

◆ IN

#define IN   /* Input parameter */

◆ INOUT

#define INOUT   /* Obvious */

◆ LARGEPACKET

#define LARGEPACKET   RPC2_MAXPACKETSIZE

◆ LE2

#define LE2 (   func,
  type,
  magic,
  member 
)
Value:
static inline type *func(struct rpc2_LinkEntry *le) \
{ \
if (!le) \
return NULL; \
assert(le->MagicNumber == magic); \
return (void *)((char *)le - offsetof(type, member)); \
}
void(* type)()
Definition: rp2main.c:424
Definition: rpc2.h:397
#define NULL
Definition: voltypes.h:44

◆ listeners

#define listeners   me_conns.me_client.mec_listeners

◆ LUA_clocktick

#define LUA_clocktick ( )

◆ LUA_drop_hosttable

#define LUA_drop_hosttable (   a)

◆ LUA_fail_delay

#define LUA_fail_delay (   a,
  b,
  c,
  d 
)    0

◆ LUA_init

#define LUA_init ( )

◆ LUA_rtt_getbandwidth

#define LUA_rtt_getbandwidth (   a,
  b,
  c 
)    0

◆ LUA_rtt_getrto

#define LUA_rtt_getrto (   a,
  b,
  c 
)    0

◆ LUA_rtt_retryinterval

#define LUA_rtt_retryinterval (   a,
  b,
  c,
  d 
)    0

◆ LUA_rtt_update

#define LUA_rtt_update (   a,
  b,
  c,
  d 
)

◆ maxlisteners

#define maxlisteners   me_conns.me_client.mec_maxlisteners

◆ MEDIUMPACKET

#define MEDIUMPACKET   1500

◆ MORETHANONEBITSET

#define MORETHANONEBITSET (   x)    (x != (1 << (ffs((long)x) - 1)))

◆ ntohPktColor

#define ntohPktColor (   p)    (p->Header.Flags = ntohl(p->Header.Flags))

◆ O_BINARY

#define O_BINARY   0

◆ OBJ_CENTRY

#define OBJ_CENTRY   868

◆ OBJ_FREE_CENTRY

#define OBJ_FREE_CENTRY   686

◆ OBJ_HENTRY

#define OBJ_HENTRY   48127

◆ OBJ_MENTRY

#define OBJ_MENTRY   69743

◆ OBJ_PACKETBUFFER

#define OBJ_PACKETBUFFER   3247517

◆ OBJ_SLENTRY

#define OBJ_SLENTRY   107

◆ OBJ_SSENTRY

#define OBJ_SSENTRY   34079

◆ OUT

#define OUT   /* Output parameter */

◆ RPC2_BW_SHIFT

#define RPC2_BW_SHIFT   4

◆ RPC2_DELACK_DELAY

#define RPC2_DELACK_DELAY   100000

◆ rpc2_Enter

#define rpc2_Enter ( )
Value:
do { \
} while (0)

◆ rpc2_HostIdentEqual

#define rpc2_HostIdentEqual (   _hi1p_,
  _hi2p_ 
)
Value:
(((_hi1p_)->Tag == RPC2_HOSTBYINETADDR && \
(_hi2p_)->Tag == RPC2_HOSTBYINETADDR) ? \
((_hi1p_)->Value.AddrInfo->ai_family == \
(_hi2p_)->Value.AddrInfo->ai_family && \
(_hi1p_)->Value.AddrInfo->ai_addrlen == \
(_hi2p_)->Value.AddrInfo->ai_addrlen && \
!memcmp((_hi1p_)->Value.AddrInfo->ai_addr, \
(_hi2p_)->Value.AddrInfo->ai_addr, \
(_hi2p_)->Value.AddrInfo->ai_addrlen)) : \
(((_hi1p_)->Tag == RPC2_HOSTBYNAME && \
(_hi2p_)->Tag == RPC2_HOSTBYNAME) ? \
(strncmp((_hi1p_)->Value.Name, (_hi2p_)->Value.Name, 64) == 0) : \
0))
@ RPC2_HOSTBYINETADDR
Definition: rpc2.h:221
@ RPC2_HOSTBYNAME
Definition: rpc2.h:220
PeerInfo RemoteSubsys Tag
Definition: sftp6.c:135

◆ RPC2_INITIAL_BW

#define RPC2_INITIAL_BW   100000

◆ RPC2_MAXRTO

#define RPC2_MAXRTO   30000000 /* max rto (rtt + variance) is 30 seconds */

◆ rpc2_Quit

#define rpc2_Quit (   rc)    return ((long)rc)

◆ RPC2_RTT_SHIFT

#define RPC2_RTT_SHIFT   3 /* Bits to right of binary point of RTT */

◆ RPC2_RTTVAR_SHIFT

#define RPC2_RTTVAR_SHIFT   2 /* Bits to right of binary point of RTTvar */

◆ S_AWAITENABLE

#define S_AWAITENABLE   0x0100

◆ S_AWAITINIT3

#define S_AWAITINIT3   0x40

◆ S_AWAITREQUEST

#define S_AWAITREQUEST   0x1

◆ S_FINISHBIND

#define S_FINISHBIND   0x80

◆ S_HARDERROR

#define S_HARDERROR   0x10

◆ S_INSE

#define S_INSE   0x8

◆ S_PROCESS

#define S_PROCESS   0x4

◆ S_REQINQUEUE

#define S_REQINQUEUE   0x2

◆ S_STARTBIND

#define S_STARTBIND   0x20

◆ say

#define say (   when,
  what,
  how... 
)

◆ SERVER

#define SERVER   0x00440000

◆ SetPktColor

#define SetPktColor (   p,
  c 
)     (p->Header.Flags = (p->Header.Flags & 0xff00ffff) | ((c & 0xff) << 16))

◆ SetRole

#define SetRole (   e,
  role 
)    (e->State = role)

◆ SetState

#define SetState (   e,
  new 
)    (e->State = (e->State & 0xffff0000) | (new))

◆ SMALLPACKET

#define SMALLPACKET   350

◆ socklen_t

#define socklen_t   unsigned int

◆ SUBTIME

#define SUBTIME (   fromp,
  subp 
)
Value:
do { \
if ((subp)->tv_usec > (fromp)->tv_usec) { \
(fromp)->tv_sec--; \
(fromp)->tv_usec += 1000000; \
} \
(fromp)->tv_sec -= (subp)->tv_sec; \
(fromp)->tv_usec -= (subp)->tv_usec; \
} while (0);

◆ TestRole

#define TestRole (   e,
  role 
)    ((e->State & 0xffff0000) == role)

◆ TestState

#define TestState (   e,
  role,
  smask 
)     (TestRole(e, role) && ((e->State & 0x0000ffff) & (smask)))

◆ TIMERISSET

#define TIMERISSET (   tm)    ((tm)->tv_sec || (tm)->tv_usec)

◆ TRUE

#define TRUE   1

◆ TSDELTA

#define TSDELTA (   _ts1_,
  _ts2_ 
)    ((int)(_ts1_) - (int)(_ts2_))

◆ TSTOTV

#define TSTOTV (   _tvp_,
  _ts_ 
)
Value:
do { \
(_tvp_)->tv_sec = (_ts_) / 1000000; \
(_tvp_)->tv_usec = (_ts_) % 1000000; \
} while (0);

◆ TVTOTS

#define TVTOTS (   _tvp_,
  _ts_ 
)
Value:
do { \
_ts_ = ((_tvp_)->tv_sec * 1000000 + (_tvp_)->tv_usec); \
} while (0);

Enumeration Type Documentation

◆ HEType

enum HEType
Enumerator
UNSET_HE 
RPC2_HE 
SMARTFTP_HE 

◆ RetVal

enum RetVal
Enumerator
WAITING 
ARRIVED 
TIMEOUT 
KEPTALIVE 
KILLED 
NAKED 

◆ SL_Type

enum SL_Type
Enumerator
REPLY 
REQ 
OTHER 
DELACK 
DELAYED_SEND 
DELAYED_RECV 

Function Documentation

◆ __rpc2_GetConn()

struct CEntry * __rpc2_GetConn ( RPC2_Handle  handle)

◆ FreeHeld()

void FreeHeld ( struct SL_Entry sle)

◆ mkcall()

int mkcall ( RPC2_HandleResult_func ClientHandler,
int  ArgCount,
int  HowMany,
RPC2_Handle  ConnList[],
long  offset,
long  rpcval,
int *  args 
)

◆ rpc2_ActivateSle()

void rpc2_ActivateSle ( struct SL_Entry selem,
struct timeval *  exptime 
)

◆ rpc2_AllocConn()

struct CEntry * rpc2_AllocConn ( )

◆ rpc2_AllocMgrp()

struct MEntry * rpc2_AllocMgrp ( struct RPC2_addrinfo addr,
RPC2_Handle  handle 
)

◆ rpc2_AllocSle()

struct SL_Entry * rpc2_AllocSle ( enum SL_Type  slType,
struct CEntry slConn 
)

◆ rpc2_AllocSubsys()

struct SubsysEntry * rpc2_AllocSubsys ( void  )

◆ rpc2_AppendHostLog()

int rpc2_AppendHostLog ( struct HEntry whichHost,
RPC2_NetLogEntry entry,
NetLogEntryType  type 
)

◆ rpc2_ApplyD()

void rpc2_ApplyD ( RPC2_PacketBuffer pb,
struct CEntry ce 
)

◆ rpc2_ApplyE()

void rpc2_ApplyE ( RPC2_PacketBuffer pb,
struct CEntry ce 
)

◆ rpc2_CancelRetry()

long rpc2_CancelRetry ( struct CEntry Conn,
struct SL_Entry Sle 
)

◆ rpc2_ClearHostLog()

void rpc2_ClearHostLog ( struct HEntry whichHost,
NetLogEntryType  type 
)

◆ rpc2_ClockTick()

void rpc2_ClockTick ( void *  dummy)

◆ rpc2_ConnFromBindInfo()

struct CEntry * rpc2_ConnFromBindInfo ( struct RPC2_addrinfo peeraddr,
RPC2_Handle  RemoteHandle,
RPC2_Integer  whichUnique 
)

◆ rpc2_CreateIPSocket()

long rpc2_CreateIPSocket ( int  af,
int *  svar,
struct RPC2_addrinfo addr,
short *  Port 
)

◆ rpc2_DeactivateSle()

void rpc2_DeactivateSle ( struct SL_Entry sl,
enum RetVal  rc 
)

◆ rpc2_DelayedRecv()

int rpc2_DelayedRecv ( RPC2_PacketBuffer pb,
struct timeval *  delay 
)

◆ rpc2_DelayedSend()

int rpc2_DelayedSend ( int  s,
struct RPC2_addrinfo addr,
RPC2_PacketBuffer pb,
struct timeval *  delay 
)

◆ rpc2_DeleteMgrp()

void rpc2_DeleteMgrp ( )

◆ RPC2_DispatchProcess()

void RPC2_DispatchProcess ( void  )

◆ rpc2_ExpireEvents()

void rpc2_ExpireEvents ( void  )

◆ rpc2_FilterMatch()

int rpc2_FilterMatch ( )

◆ rpc2_formataddrinfo()

void rpc2_formataddrinfo ( const struct RPC2_addrinfo ai,
char *  buf,
size_t  buflen,
int  use_canonname 
)

◆ rpc2_FreeConn()

void rpc2_FreeConn ( )

◆ rpc2_FreeHost()

void rpc2_FreeHost ( struct HEntry **  whichHost)

◆ rpc2_FreeMgrp()

void rpc2_FreeMgrp ( )

◆ rpc2_FreeSle()

void rpc2_FreeSle ( struct SL_Entry **  sl)

◆ rpc2_FreeSubsys()

void rpc2_FreeSubsys ( struct SubsysEntry **  whichSubsys)

◆ rpc2_GetConn()

struct CEntry * rpc2_GetConn ( RPC2_Handle  handle)

◆ rpc2_GetHost()

struct HEntry * rpc2_GetHost ( struct RPC2_addrinfo addr)

◆ rpc2_GetHostLog()

void rpc2_GetHostLog ( struct HEntry whichHost,
RPC2_NetLog log,
NetLogEntryType  type 
)

◆ rpc2_GetMgrp()

struct MEntry * rpc2_GetMgrp ( struct RPC2_addrinfo addr,
RPC2_Handle  handle,
long  role 
)

◆ rpc2_GetSA()

struct security_association * rpc2_GetSA ( uint32_t  spi)

◆ rpc2_HandlePacket()

void rpc2_HandlePacket ( RPC2_PacketBuffer pb)

◆ rpc2_HoldPacket()

void rpc2_HoldPacket ( RPC2_PacketBuffer whichPB)

◆ rpc2_htonp()

void rpc2_htonp ( RPC2_PacketBuffer p)

◆ rpc2_IncrementSeqNumber()

void rpc2_IncrementSeqNumber ( struct CEntry ce)

◆ rpc2_InitConn()

int rpc2_InitConn ( void  )

◆ rpc2_InitHost()

void rpc2_InitHost ( void  )

◆ rpc2_InitMgrp()

void rpc2_InitMgrp ( )

◆ rpc2_InitPacket()

void rpc2_InitPacket ( )

◆ rpc2_InitRetry()

long rpc2_InitRetry ( long  HowManyRetries,
struct timeval *  Beta0 
)

◆ rpc2_MakeTimeStamp()

unsigned int rpc2_MakeTimeStamp ( )

◆ rpc2_MorePackets()

int rpc2_MorePackets ( void  )

◆ rpc2_MoveEntry()

struct rpc2_LinkEntry * rpc2_MoveEntry ( struct rpc2_LinkEntry **  fromPtr,
struct rpc2_LinkEntry **  toPtr,
struct rpc2_LinkEntry p,
long *  fromCount,
long *  toCount 
)

◆ rpc2_MSendPacketsReliably()

long rpc2_MSendPacketsReliably ( )

◆ rpc2_NoteBinding()

void rpc2_NoteBinding ( struct RPC2_addrinfo peeraddr,
RPC2_Handle  RemoteHandle,
RPC2_Integer  whichUnique,
RPC2_Handle  whichConn 
)

◆ rpc2_ntohp()

void rpc2_ntohp ( RPC2_PacketBuffer p)

◆ rpc2_printaddrinfo()

void rpc2_printaddrinfo ( const struct RPC2_addrinfo ai,
FILE *  f 
)

◆ rpc2_PrintCEntry()

void rpc2_PrintCEntry ( )

◆ rpc2_PrintFilter()

void rpc2_PrintFilter ( )

◆ rpc2_PrintHostIdent()

void rpc2_PrintHostIdent ( )

◆ rpc2_PrintPacketHeader()

void rpc2_PrintPacketHeader ( )

◆ rpc2_PrintPortIdent()

void rpc2_PrintPortIdent ( )

◆ rpc2_PrintSEDesc()

void rpc2_PrintSEDesc ( )

◆ rpc2_PrintSLEntry()

void rpc2_PrintSLEntry ( )

◆ rpc2_PrintTMElem()

void rpc2_PrintTMElem ( )

◆ rpc2_PrintTraceElem()

void rpc2_PrintTraceElem ( )

◆ rpc2_ReapDeadConns()

void rpc2_ReapDeadConns ( void  )

◆ rpc2_RecvDelayedPacket()

RPC2_PacketBuffer * rpc2_RecvDelayedPacket ( struct SL_Entry sl)

◆ rpc2_RecvPacket()

long rpc2_RecvPacket ( long  whichSocket,
RPC2_PacketBuffer whichBuff 
)

◆ rpc2_RemoveFromMgrp()

void rpc2_RemoveFromMgrp ( )

◆ rpc2_Replenish()

void rpc2_Replenish ( struct rpc2_LinkEntry **  whichList,
long *  whichCount,
long  elemSize,
long *  creationCount,
long  magicNumber 
)

◆ rpc2_resolve()

struct RPC2_addrinfo * rpc2_resolve ( RPC2_HostIdent Host,
RPC2_PortIdent Port 
)

◆ rpc2_RetryInterval()

int rpc2_RetryInterval ( struct CEntry ce,
int  retry,
struct timeval *  tv,
RPC2_Unsigned  OutBytes,
RPC2_Unsigned  InBytes,
int  sftp 
)

◆ rpc2_SendDelayedPacket()

void rpc2_SendDelayedPacket ( struct SL_Entry sl)

◆ rpc2_SendReliably()

long rpc2_SendReliably ( )

◆ rpc2_SetConnError()

void rpc2_SetConnError ( )

◆ rpc2_simplifyHost()

void rpc2_simplifyHost ( RPC2_HostIdent Host,
RPC2_PortIdent Port 
)

◆ rpc2_SocketListener()

void rpc2_SocketListener ( void *  dummy)

◆ rpc2_splitaddrinfo()

void rpc2_splitaddrinfo ( RPC2_HostIdent Host,
RPC2_PortIdent Port,
const struct RPC2_addrinfo ai 
)

◆ rpc2_time()

time_t rpc2_time ( )

◆ rpc2_timestring()

char * rpc2_timestring ( )

◆ rpc2_TSTOTV()

void rpc2_TSTOTV ( const unsigned int  ts,
struct timeval *  tv 
)

◆ rpc2_TVTOTS()

unsigned int rpc2_TVTOTS ( const struct timeval *  tv)

◆ rpc2_UnholdPacket()

void rpc2_UnholdPacket ( RPC2_PacketBuffer whichPB)

◆ RPC2_UpdateEstimates()

void RPC2_UpdateEstimates ( struct HEntry whichHost,
RPC2_Unsigned  ElapsedTime,
RPC2_Unsigned  InBytes,
RPC2_Unsigned  OutBytes 
)

◆ rpc2_UpdateRTT()

void rpc2_UpdateRTT ( RPC2_PacketBuffer pb,
struct CEntry ceaddr 
)

◆ rpc2_XmitPacket()

void rpc2_XmitPacket ( RPC2_PacketBuffer pb,
struct RPC2_addrinfo addr,
int  confirm 
)

◆ SavePacketForRetry()

void SavePacketForRetry ( RPC2_PacketBuffer pb,
struct CEntry ce 
)

◆ SL_RegisterHandler()

void SL_RegisterHandler ( unsigned int  proto,
void(*)(RPC2_PacketBuffer *)  func 
)

Variable Documentation

◆ ErrorLogFile

FILE* ErrorLogFile
extern

◆ KeepAlive

struct timeval KeepAlive
extern

◆ Retry_N

long Retry_N
extern

◆ rpc2_AllocMgrps

long rpc2_AllocMgrps

◆ rpc2_BindLimit

long rpc2_BindLimit
extern

◆ rpc2_BindsInQueue

long rpc2_BindsInQueue

◆ rpc2_FreeMgrps

long rpc2_FreeMgrps
extern

◆ rpc2_HostCount

long rpc2_HostCount

◆ rpc2_HostCreationCount

long rpc2_HostCreationCount

◆ rpc2_HostFreeCount

long rpc2_HostFreeCount
extern

◆ rpc2_ipv6ready

int rpc2_ipv6ready
extern

◆ rpc2_LamportClock

unsigned long rpc2_LamportClock
extern

◆ rpc2_MgrpCreationCount

long rpc2_MgrpCreationCount

◆ rpc2_MgrpFreeCount

long rpc2_MgrpFreeCount
extern

◆ rpc2_NoNaks

unsigned long rpc2_NoNaks
extern

◆ rpc2_PBHoldList

struct rpc2_LinkEntry * rpc2_PBHoldList

◆ rpc2_PBList

struct rpc2_LinkEntry* rpc2_PBList
extern

◆ rpc2_RTTvals

uint32_t* rpc2_RTTvals
extern

◆ rpc2_SLCount

long rpc2_SLCount

◆ rpc2_SLReqCount

long rpc2_SLReqCount
extern

◆ rpc2_SLReqList

struct rpc2_LinkEntry* rpc2_SLReqList
extern

◆ rpc2_SocketListenerPID

PROCESS rpc2_SocketListenerPID
extern

◆ rpc2_SSList

struct rpc2_LinkEntry* rpc2_SSList
extern

◆ rpc2_TimerQueue

struct TM_Elem* rpc2_TimerQueue
extern

◆ rpc2_TraceBuffHeader

struct CBUF_Header* rpc2_TraceBuffHeader
extern

◆ rpc2_v4RequestSocket

int rpc2_v4RequestSocket
extern

◆ rpc2_v6RequestSocket

int rpc2_v6RequestSocket
extern