49#include <netinet/in.h>
51#ifdef HAVE_ARPA_INET_H
61#define RPC2_VERSION "Version 15.0: JH, 10 Dec 1998, 12:00"
70#define RPC2_PROTOVERSION 8
76#define RPC2_OPENKIMONO 98
77#define RPC2_AUTHONLY 12
78#define RPC2_HEADERSONLY 73
96#define RPC2_ENCRYPTIONTYPES (RPC2_DES | RPC2_XOR)
125#define RPC2_SUCCESS 0
127#define RPC2_WLIMIT -1
128#define RPC2_ELIMIT -1000
129#define RPC2_FLIMIT -2000
134#define RPC2_OLDVERSION RPC2_WLIMIT - 1
135#define RPC2_INVALIDOPCODE RPC2_WLIMIT - 2
137#define RPC2_BADDATA RPC2_WLIMIT - 3
140#define RPC2_NOGREEDY RPC2_WLIMIT - 4
144#define RPC2_ABANDONED RPC2_WLIMIT - 5
149#define RPC2_CONNBUSY RPC2_ELIMIT - 1
150#define RPC2_SEFAIL1 RPC2_ELIMIT - 2
151#define RPC2_TOOLONG RPC2_ELIMIT - 3
152#define RPC2_NOMGROUP RPC2_ELIMIT - 4
153#define RPC2_MGRPBUSY RPC2_ELIMIT - 5
154#define RPC2_NOTGROUPMEMBER RPC2_ELIMIT - 6
155#define RPC2_DUPLICATEMEMBER RPC2_ELIMIT - 7
156#define RPC2_BADMGROUP RPC2_ELIMIT - 8
161#define RPC2_FAIL RPC2_FLIMIT - 1
162#define RPC2_NOCONNECTION RPC2_FLIMIT - 2
163#define RPC2_TIMEOUT RPC2_FLIMIT - 3
164#define RPC2_NOBINDING RPC2_FLIMIT - 4
165#define RPC2_DUPLICATESERVER RPC2_FLIMIT - 5
166#define RPC2_NOTWORKER RPC2_FLIMIT - 6
167#define RPC2_NOTCLIENT RPC2_FLIMIT - 7
168#define RPC2_WRONGVERSION RPC2_FLIMIT - 8
169#define RPC2_NOTAUTHENTICATED RPC2_FLIMIT - 9
170#define RPC2_CLOSECONNECTION RPC2_FLIMIT - 10
171#define RPC2_BADFILTER RPC2_FLIMIT - 11
172#define RPC2_LWPNOTINIT RPC2_FLIMIT - 12
173#define RPC2_BADSERVER RPC2_FLIMIT - 13
174#define RPC2_SEFAIL2 RPC2_FLIMIT - 14
175#define RPC2_DEAD RPC2_FLIMIT - 15
176#define RPC2_NAKED RPC2_FLIMIT - 16
177#define RPC2_SEFAIL3 RPC2_FLIMIT - 17
178#define RPC2_SEFAIL4 RPC2_FLIMIT - 18
180#define MGRPERROR(code) \
181 (code == RPC2_NOMGROUP || code == RPC2_MGRPBUSY || \
182 code == RPC2_NOTGROUPMEMBER || code == RPC2_DUPLICATEMEMBER || \
183 code == RPC2_BADMGROUP)
190#define RPC2_INIT1OPENKIMONO \
192#define RPC2_INIT1AUTHONLY \
194#define RPC2_INIT1HEADERSONLY \
196#define RPC2_INIT1SECURE \
198#define RPC2_LASTACK -6
200#define RPC2_INIT2 -10
201#define RPC2_INIT3 -11
202#define RPC2_INIT4 -12
203#define RPC2_NEWCONNECTION \
207#define RPC2_INITMULTICAST -15
215#define RPC2_MAXPACKETSIZE 4500
354 struct in_addr InetAddress;
380 struct in_addr InetAddress;
488#define RPC2_RETRY 0x01
489#define RPC2_ENCRYPTED 0x02
492#define RPC2SEC_CAPABLE 0x10
537#define RPC2_OPTION_IPV6 0x1
538#define RPC2_OPTION_VERBOSE_INIT 0x2
612#define RPC2_MAXLOGLENGTH 32
613#define RPC2_MAXQUANTUM ((unsigned)-1)
637 struct timeval TimeStamp;
696 struct timeval *KeepAliveInterval);
701#define RPC2_AllocBuffer(x, y) \
702 (rpc2_AllocBuffer((long)(x), y, __FILE__, (long)__LINE__))
704#define RPC2_AllocBuffer(x, y) (rpc2_AllocBuffer((long)(x), y, 0, (long)0))
707 const char *SrcFile,
long SrcLine);
728 struct timeval *Patience,
long EnqueueRequest);
732 long errcode,
long idx);
738 struct timeval *BreathOfLife);
771 struct timeval *Timeout, ...);
776 struct timeval *SETime);
788 unsigned long *BWavg,
unsigned long *BWhigh);
798void rpc2_Encrypt(
char *FromBuffer,
char *ToBuffer,
size_t HowManyBytes,
801void rpc2_Decrypt(
char *FromBuffer,
char *ToBuffer,
size_t HowManyBytes,
unsigned short uint16_t
Definition: coda.h:103
int int32_t
Definition: coda.h:104
unsigned int uint32_t
Definition: coda.h:105
unsigned char uint8_t
Definition: coda.h:101
size_t Bytes
Definition: codadump2tar.cc:149
int NumEntries
Definition: mklka.c:39
long RPC2_HandleResult_func(int HowMany, RPC2_Handle ConnList[], long offset, long rpcval,...)
Definition: multi.h:48
args
Definition: volusage.py:9
void rpc2_Decrypt(char *FromBuffer, char *ToBuffer, size_t HowManyBytes, RPC2_EncryptionKey WhichKey, RPC2_Integer EncryptionType)
long RPC2_SetSEPointer(RPC2_Handle WhichConn, struct SFTP_Entry *SEPtr)
RPC2_PortIdent rpc2_LocalPort
Definition: globals.c:60
int struct_len(ARG **a_types, PARM **args)
Definition: multi2.c:571
struct RPC2_PacketBuffer RPC2_PacketBuffer
long RPC2_AddToMgrp(RPC2_Handle MgroupHandle, RPC2_Handle ConnHandle)
#define RPC2_KEYSIZE
Definition: rpc2.h:98
long rpc2_SSCreationCount
Definition: globals.c:86
long rpc2_AllocBuffer(long MinBodySize, RPC2_PacketBuffer **BufferPtr, const char *SrcFile, long SrcLine)
void rpc2_Encrypt(char *FromBuffer, char *ToBuffer, size_t HowManyBytes, RPC2_EncryptionKey WhichKey, RPC2_Integer EncryptionType)
@ ONECONN
Definition: rpc2.h:498
@ ANY
Definition: rpc2.h:497
@ ONESUBSYS
Definition: rpc2.h:499
long rpc2_GCConns
Definition: rpc2.h:863
long rpc2_PBHoldCount
Definition: rpc2.h:864
long RPC2_GetNetInfo(RPC2_Handle ConnHandle, RPC2_NetLog *RPCLog, RPC2_NetLog *SELog)
long rpc2_HoldHWMark
Definition: rpc2.h:865
RPC2_HostIdent rpc2_LocalHost
long rpc2_PBLargeCreationCount
Definition: globals.c:82
int RPC2_R2SError(int error)
Definition: errors.c:25
long RPC2_InitSideEffect(RPC2_Handle ConnHandle, SE_Descriptor *SDesc)
long RPC2_SendResponse(RPC2_Handle ConnHandle, RPC2_PacketBuffer *Reply)
long RPC2_Trace
Definition: globals.c:53
long rpc2_PBCount
Definition: globals.c:83
long RPC2_DebugLevel
Definition: globals.c:53
int RPC2_secure_only
Definition: rpc2a.c:115
struct in_addr RPC2_setip(struct in_addr *ip)
Definition: rpc2b.c:200
void RPC2_SetLog(FILE *, int)
Definition: rpc2a.c:149
long rpc2_SLFreeCount
Definition: rpc2.h:860
long rpc2_FreeConns
Definition: rpc2.h:863
void RPC2_setbindaddr(RPC2_HostIdent *host)
Definition: rpc2b.c:211
char * RPC2_ErrorMsg(long rc)
Definition: rpc2b.c:414
long RPC2_PutNetInfo(RPC2_Handle ConnHandle, RPC2_NetLog *RPCLog, RPC2_NetLog *SELog)
double RPC2_Double
Definition: rpc2.h:304
struct RStats rpc2_MRecvd
Definition: globals.c:94
MgrpTag
Definition: rpc2.h:241
@ RPC2_MGRPBYNAME
Definition: rpc2.h:244
@ RPC2_MGRPBYINETADDR
Definition: rpc2.h:242
@ RPC2_DUMMYMGRP
Definition: rpc2.h:245
@ RPC2_MGRPBYADDRINFO
Definition: rpc2.h:243
struct SStats rpc2_MSent
Definition: globals.c:93
long RPC2_DeleteMgrp(RPC2_Handle MgroupHandle)
long RPC2_ClearNetInfo(RPC2_Handle ConnHandle)
long RPC2_Perror
Definition: globals.c:53
@ OLD
Definition: rpc2.h:503
@ OLDORNEW
Definition: rpc2.h:505
@ NEW
Definition: rpc2.h:504
RPC2_Byte RPC2_EncryptionKey[RPC2_KEYSIZE]
Definition: rpc2.h:336
PortTag
Definition: rpc2.h:227
@ RPC2_PORTBYINETNUMBER
Definition: rpc2.h:228
@ RPC2_PORTBYNAME
Definition: rpc2.h:229
@ RPC2_DUMMYPORT
Definition: rpc2.h:230
long rpc2_AllocConns
Definition: rpc2.h:863
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_PBLargeFreeCount
Definition: rpc2.h:859
int RPC2_GetRTT(RPC2_Handle handle, unsigned long *RTT, unsigned long *RTTvar)
Definition: host.c:507
long RPC2_UnpackMulti_func(int HowMany, RPC2_Handle ConnHandleList[], ARG_INFO *ArgInfo, RPC2_PacketBuffer *Reply, long errcode, long idx)
Definition: rpc2.h:729
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_Byte * RPC2_ByteSeq
Definition: rpc2.h:306
int32_t RPC2_Integer
Definition: rpc2.h:297
long RPC2_Export(RPC2_SubsysIdent *Subsys)
long rpc2_PBMediumCreationCount
Definition: globals.c:81
SubsysTag
Definition: rpc2.h:234
@ RPC2_DUMMYSUBSYS
Definition: rpc2.h:237
@ RPC2_SUBSYSBYNAME
Definition: rpc2.h:236
@ RPC2_SUBSYSBYID
Definition: rpc2.h:235
long RPC2_NewBinding(RPC2_HostIdent *Host, RPC2_PortIdent *Port, RPC2_SubsysIdent *Subsys, RPC2_BindParms *BParms, RPC2_Handle *ConnHandle)
long RPC2_DumpState(FILE *OutFile, long Verbosity)
Definition: rpc2b.c:602
long rpc2_SSCount
Definition: rpc2.h:862
long RPC2_DeExport(RPC2_SubsysIdent *Subsys)
FILE * rpc2_tracefile
Definition: rpc2a.c:146
long rpc2_ConnCreationCount
Definition: globals.c:72
struct RStats rpc2_Recvd
Definition: globals.c:92
MODE
Definition: rpc2.h:562
@ C_END
Definition: rpc2.h:567
@ NO_MODE
Definition: rpc2.h:563
@ IN_OUT_MODE
Definition: rpc2.h:566
@ IN_MODE
Definition: rpc2.h:564
@ MAX_BOUND
Definition: rpc2.h:568
@ OUT_MODE
Definition: rpc2.h:565
NetLogTag
Definition: rpc2.h:623
@ RPC2_UNSET_NLE
Definition: rpc2.h:624
@ RPC2_STATIC_NLE
Definition: rpc2.h:626
@ RPC2_MEASURED_NLE
Definition: rpc2.h:625
uint32_t RPC2_Unsigned
Definition: rpc2.h:300
long RPC2_Enable(RPC2_Handle ConnHandle)
Definition: rpc2b.c:668
long RPC2_GetPrivatePointer(RPC2_Handle WhichConn, char **PrivatePtr)
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,...)
Definition: multi2.c:97
long rpc2_Bandwidth
Definition: globals.c:69
long RPC2_InitTraceBuffer(long HowMany)
long rpc2_SSFreeCount
Definition: rpc2.h:862
long rpc2_PBMediumFreeCount
Definition: rpc2.h:858
RPC2_Integer RPC2_Handle
Definition: rpc2.h:345
long RPC2_MakeRPC(RPC2_Handle ConnHandle, RPC2_PacketBuffer *Request, SE_Descriptor *SDesc, RPC2_PacketBuffer **Reply, struct timeval *Patience, long EnqueueRequest)
Definition: rpc2a.c:549
long RPC2_Init(const char *VersionId, RPC2_Options *Options, RPC2_PortIdent *PortList, long RetryCount, struct timeval *KeepAliveInterval)
Definition: rpc2b.c:79
long RPC2_DumpTrace(FILE *OutFile, long HowMany)
long RPC2_AuthFail_func(RPC2_Integer AuthenticationType, RPC2_CountedBS *cident, RPC2_Integer EncryptionType, RPC2_HostIdent *PeerHost, RPC2_PortIdent *PeerPort)
Definition: rpc2.h:714
struct SStats rpc2_Sent
Definition: globals.c:91
long RPC2_GetPeerLiveness(RPC2_Handle ConnHandle, struct timeval *Time, struct timeval *SETime)
int RPC2_GetLastObs(RPC2_Handle handle, struct timeval *tv)
Definition: host.c:551
FILE * rpc2_logfile
Definition: rpc2a.c:145
long rpc2_ConnCount
Definition: rpc2.h:861
long RPC2_CheckSideEffect(RPC2_Handle ConnHandle, SE_Descriptor *SDesc, long Flags)
long rpc2_PBSmallCreationCount
Definition: globals.c:80
long rpc2_SLCreationCount
Definition: globals.c:77
long RPC2_LamportTime()
Definition: rpc2b.c:645
long rpc2_FreezeHWMark
Definition: globals.c:107
long RPC2_SetPrivatePointer(RPC2_Handle WhichConn, char *PrivatePtr)
long getsubsysbyname(char *subsysName)
WHO
Definition: rpc2.h:554
@ RP2_HELPER
Definition: rpc2.h:559
@ RP2_MULTI
Definition: rpc2.h:557
@ RP2_CLIENT
Definition: rpc2.h:555
@ RP2_DUMP
Definition: rpc2.h:558
@ RP2_SERVER
Definition: rpc2.h:556
long rpc2_ConnFreeCount
Definition: rpc2.h:861
long RPC2_GetSEPointer(RPC2_Handle WhichConn, struct SFTP_Entry **SEPtr)
long rpc2_Unbinds
Definition: globals.c:103
long RPC2_SetColor(RPC2_Handle ConnHandle, RPC2_Integer Color)
Definition: rpc2b.c:684
RPC2_ByteSeq RPC2_String
Definition: rpc2.h:312
long rpc2_PBFreezeCount
Definition: rpc2.h:864
int RPC2_SetTimeout(RPC2_Handle whichConn, struct timeval timeout)
Definition: packet.c:349
size_t RPC2_Preferred_Keysize
Definition: rpc2a.c:114
long RPC2_Unbind(RPC2_Handle ConnHandle)
Definition: rpc2a.c:1235
long RPC2_strict_ip_matching
long RPC2_GetKeys_func(RPC2_Integer *AuthenticationType, RPC2_CountedBS *cident, RPC2_EncryptionKey SharedSecret, RPC2_EncryptionKey sessionkey)
Definition: rpc2.h:710
void rpc2_InitRandom(void)
Definition: secure.c:100
NetLogEntryType
Definition: rpc2.h:630
@ SE_MEASUREMENT
Definition: rpc2.h:632
@ RPC2_MEASUREMENT
Definition: rpc2.h:631
TYPE_TAG
Definition: rpc2.h:572
@ RPC2_BOUNDEDBS_TAG
Definition: rpc2.h:578
@ RPC2_DOUBLE_TAG
Definition: rpc2.h:583
@ RPC2_COUNTEDBS_TAG
Definition: rpc2.h:577
@ RPC2_ENUM_TAG
Definition: rpc2.h:582
@ RPC2_STRUCT_TAG
Definition: rpc2.h:581
@ RPC2_STRING_TAG
Definition: rpc2.h:576
@ RPC2_ENCRYPTIONKEY_TAG
Definition: rpc2.h:580
@ RPC2_BYTE_TAG
Definition: rpc2.h:575
@ RPC2_BULKDESCRIPTOR_TAG
Definition: rpc2.h:579
@ RPC2_UNSIGNED_TAG
Definition: rpc2.h:574
@ RPC2_INTEGER_TAG
Definition: rpc2.h:573
long RPC2_GetColor(RPC2_Handle ConnHandle, RPC2_Integer *Color)
Definition: rpc2b.c:698
int RPC2_S2RError(int error)
Definition: errors.c:41
uint8_t RPC2_Byte
Definition: rpc2.h:302
long RPC2_GetPeerInfo(RPC2_Handle WhichConn, RPC2_PeerInfo *PeerInfo)
unsigned int rpc2_NextRandom(char *StatePtr)
Definition: secure.c:107
long RPC2_FreeBuffer(RPC2_PacketBuffer **Buffer)
Definition: test.c:171
long rpc2_PBSmallFreeCount
Definition: rpc2.h:857
long RPC2_RemoveFromMgrp(RPC2_Handle MgroupHandle, RPC2_Handle ConnHandle)
int RPC2_enableReaping
Definition: ct.c:63
HostTag
Definition: rpc2.h:219
@ RPC2_HOSTBYADDRINFO
Definition: rpc2.h:222
@ RPC2_HOSTBYINETADDR
Definition: rpc2.h:221
@ RPC2_DUMMYHOST
Definition: rpc2.h:223
@ RPC2_HOSTBYNAME
Definition: rpc2.h:220
long RPC2_GetRequest(RPC2_RequestFilter *Filter, RPC2_Handle *ConnHandle, RPC2_PacketBuffer **Request, struct timeval *Patience, RPC2_GetKeys_func *, long EncryptionTypeMask, RPC2_AuthFail_func *)
int RPC2_GetBandwidth(RPC2_Handle handle, unsigned long *BWlow, unsigned long *BWavg, unsigned long *BWhigh)
Definition: host.c:523
RPC2_SubsysIdent SubsysId
Definition: rpc2test.c:145
RPC2_Handle ConnHandleList[]
Definition: sftp6.c:82
SE_Descriptor * SDesc
Definition: sftp6.c:103
long rc
Definition: sftp6.c:107
SE_Descriptor SDescList[]
Definition: sftp6.c:83
RPC2_PacketBuffer * Reply
Definition: sftp6.c:104
PeerInfo Uniquefier
Definition: sftp6.c:138
PeerInfo RemoteSubsys Tag
Definition: sftp6.c:135
RPC2_PeerInfo * PeerInfo
Definition: sftp6.c:122
PeerInfo RemoteHandle
Definition: sftp6.c:136
struct timeval RecvStamp
Definition: rpc2.h:426
char oldhostandport[84]
Definition: rpc2.h:424
struct rpc2_LinkEntry LE
Definition: rpc2.h:412
long File[3]
Definition: rpc2.h:418
struct RPC2_addrinfo * PeerAddr
Definition: rpc2.h:422
long LengthOfPacket
Definition: rpc2.h:416
long Line
Definition: rpc2.h:419
long BufferSize
Definition: rpc2.h:414
struct security_association * sa
Definition: rpc2.h:423
struct RPC2_PacketBuffer::RPC2_PacketHeader Header
RPC2_Byte Body[1]
Definition: rpc2.h:475
struct RPC2_PacketBuffer::RPC2_PacketBufferPrefix Prefix
Definition: rpc2_addrinfo.h:28
unsigned long GoodMulticasts
Definition: rpc2.h:832
unsigned long GoodRequests
Definition: rpc2.h:830
unsigned long Requests
Definition: rpc2.h:828
unsigned long GoodBusies
Definition: rpc2.h:834
unsigned long Total
Definition: rpc2.h:825
unsigned long Giant
Definition: rpc2.h:826
unsigned long Replies
Definition: rpc2.h:827
unsigned long Bytes
Definition: rpc2.h:837
unsigned long GoodReplies
Definition: rpc2.h:829
unsigned long Naks
Definition: rpc2.h:836
unsigned long Bogus
Definition: rpc2.h:835
unsigned long Busies
Definition: rpc2.h:833
unsigned long Multicasts
Definition: rpc2.h:831
unsigned long Busies
Definition: rpc2.h:819
unsigned long Total
Definition: rpc2.h:815
unsigned long Cancelled
Definition: rpc2.h:817
unsigned long Retries
Definition: rpc2.h:816
unsigned long Naks
Definition: rpc2.h:820
unsigned long Bytes
Definition: rpc2.h:821
unsigned long Multicasts
Definition: rpc2.h:818
void(* startlog)(long)
Definition: rpc2.h:595
int size
Definition: rpc2.h:591
struct arg * field
Definition: rpc2.h:593
int bound
Definition: rpc2.h:594
TYPE_TAG type
Definition: rpc2.h:590
MODE mode
Definition: rpc2.h:589
void(* endlog)(long, RPC2_Integer, RPC2_Handle *, RPC2_Integer *)
Definition: rpc2.h:596
struct rpc2_LinkEntry * Next
Definition: rpc2.h:398
long MagicNumber
Definition: rpc2.h:399
struct rpc2_LinkEntry * Prev
Definition: rpc2.h:398
struct rpc2_LinkEntry ** Queue
Definition: rpc2.h:400
Error error
Definition: vol-create.cc:87