xrootd
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Variables
XProtocol.hh File Reference
#include "XProtocol/XPtypes.hh"
#include <cerrno>
Include dependency graph for XProtocol.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ClientInitHandShake
 
struct  ServerInitHandShake
 
struct  ClientRequestHdr
 
struct  ClientAuthRequest
 
struct  ClientBindRequest
 
struct  ClientChmodRequest
 
struct  ClientChkPointRequest
 
struct  ClientCloseRequest
 
struct  ClientDirlistRequest
 
struct  ClientEndsessRequest
 
struct  ClientFattrRequest
 
struct  ClientGPfileRequest
 
struct  ClientLocateRequest
 
struct  ClientLoginRequest
 
struct  ClientMkdirRequest
 
struct  ClientMvRequest
 
struct  ClientOpenRequest
 
struct  ClientPgReadRequest
 
struct  ClientPgReadReqArgs
 
struct  ClientPgWriteRequest
 
struct  ClientPingRequest
 
struct  ClientProtocolRequest
 
struct  ClientPrepareRequest
 
struct  ClientQueryRequest
 
struct  ClientReadRequest
 
struct  read_args
 
struct  readahead_list
 
struct  ClientReadVRequest
 
struct  XrdProto::read_list
 
struct  ClientRmRequest
 
struct  ClientRmdirRequest
 
struct  ClientSetRequest
 
struct  ClientSigverRequest
 
struct  ClientStatRequest
 
struct  ClientSyncRequest
 
struct  ClientTruncateRequest
 
struct  ClientWriteRequest
 
struct  ClientWriteVRequest
 
struct  XrdProto::write_list
 
union  ClientRequest
 
union  SecurityRequest
 
struct  ServerResponseHeader
 
struct  ServerResponseBody_Buffer
 
struct  ServerResponseBody_Attn
 
struct  ServerResponseBody_Attn_asyncms
 
struct  ServerResponseBody_Attn_asynresp
 
struct  ServerResponseBody_Authmore
 
struct  ServerResponseBody_Bind
 
struct  ServerResponseBody_ChkPoint
 
struct  ServerResponseBody_Error
 
struct  ServerResponseBody_Login
 
struct  ServerResponseBody_Open
 
struct  ServerResponseBody_pgRead
 
struct  ServerResponseBody_pgWrite
 
struct  ServerResponseBody_pgWrCSE
 
struct  ServerResponseBifs_Protocol
 
struct  ServerResponseSVec_Protocol
 
struct  ServerResponseReqs_Protocol
 
struct  ServerResponseBody_Protocol
 
struct  ServerResponseBody_Redirect
 
struct  ServerResponseBody_Status
 
struct  ServerResponseStatus
 
struct  ServerResponseBody_Wait
 
struct  ServerResponseBody_Waitresp
 
struct  ServerResponse
 
struct  ServerResponseV2
 
struct  ALIGN_CHECK
 
class  XProtocol
 
struct  XProtocol::ServerResponseBody_Attn_asyncdi
 
struct  XProtocol::ServerResponseBody_Attn_asyncrd
 
struct  XProtocol::ServerResponseBody_Attn_asyncwt
 

Namespaces

namespace  XrdProto
 

Macros

#define kXR_PROTOCOLVERSION   0x00000511
 
#define kXR_PROTXATTVERSION   0x00000500
 
#define kXR_PROTTLSVERSION   0x00000500
 
#define kXR_PROTPGRWVERSION   0x00000511
 
#define kXR_PROTSIGNVERSION   0x00000310
 
#define kXR_PROTOCOLVSTRING   "5.1.0"
 
#define kXR_secOData   0x01
 
#define kXR_secOFrce   0x02
 
#define kXR_secNone   0
 
#define kXR_secCompatible   1
 
#define kXR_secStandard   2
 
#define kXR_secIntense   3
 
#define kXR_secPedantic   4
 
#define kXR_signIgnore   0
 
#define kXR_signLikely   1
 
#define kXR_signNeeded   2
 
#define kXR_secver_0   0
 
#define kXR_DataServer   1
 
#define kXR_LBalServer   0
 
#define kXR_isManager   0x00000002
 
#define kXR_isServer   0x00000001
 
#define kXR_attrMeta   0x00000100
 
#define kXR_attrProxy   0x00000200
 
#define kXR_attrSuper   0x00000400
 
#define kXR_attrVirtRdr   0x00000800
 
#define kXR_recoverWrts   0x00001000
 
#define kXR_collapseRedir   0x00002000
 
#define kXR_ecRedir   0x00004000
 
#define kXR_anongpf   0x00800000
 
#define kXR_supgpf   0x00400000
 
#define kXR_suppgrw   0x00200000
 
#define kXR_supposc   0x00100000
 
#define kXR_haveTLS   0x80000000
 
#define kXR_gotoTLS   0x40000000
 
#define kXR_tlsAny   0x1f000000
 
#define kXR_tlsData   0x01000000
 
#define kXR_tlsGPF   0x02000000
 
#define kXR_tlsLogin   0x04000000
 
#define kXR_tlsSess   0x08000000
 
#define kXR_tlsTPC   0x10000000
 
#define kXR_tlsGPFA   0x20000000
 
#define kXR_ShortProtRespLen
 
#define ENOATTR   ENODATA
 
#define EBADRQC   EBADRPC
 
#define EAUTH   EBADE
 
#define kXR_maxReqRetry   10
 

Typedefs

typedef struct ServerResponseBifs_Protocol XrdProto::bifReqs
 
typedef struct ServerResponseReqs_Protocol XrdProto::secReqs
 

Enumerations

enum  XRequestTypes {
  kXR_1stRequest = 3000 , kXR_auth = 3000 , kXR_query , kXR_chmod ,
  kXR_close , kXR_dirlist , kXR_gpfile , kXR_protocol ,
  kXR_login , kXR_mkdir , kXR_mv , kXR_open ,
  kXR_ping , kXR_chkpoint , kXR_read , kXR_rm ,
  kXR_rmdir , kXR_sync , kXR_stat , kXR_set ,
  kXR_write , kXR_fattr , kXR_prepare , kXR_statx ,
  kXR_endsess , kXR_bind , kXR_readv , kXR_pgwrite ,
  kXR_locate , kXR_truncate , kXR_sigver , kXR_pgread ,
  kXR_writev , kXR_REQFENCE
}
 
enum  XVirtRequestTypes { kXR_virtReadv = 2000 }
 
enum  XDirlistRequestOption { kXR_online = 1 , kXR_dstat = 2 , kXR_dcksm = 4 }
 
enum  xfaSubCode {
  kXR_fattrDel = 0 , kXR_fattrGet = 1 , kXR_fattrList = 2 , kXR_fattrSet = 3 ,
  kXR_fatrrMaxSC = 3
}
 
enum  xfaLimits { kXR_faMaxVars = 16 , kXR_faMaxNlen = 248 , kXR_faMaxVlen = 65536 }
 
enum  XLoginAbility {
  kXR_nothing = 0 , kXR_fullurl = 1 , kXR_multipr = 3 , kXR_readrdok = 4 ,
  kXR_hasipv64 = 8 , kXR_onlyprv4 = 16 , kXR_onlyprv6 = 32 , kXR_lclfile = 64 ,
  kXR_redirflags = 128
}
 
enum  XLoginAbility2 { kXR_empty = 0 , kXR_ecredir = 1 }
 
enum  XLoginCapVer { kXR_lcvnone = 0 , kXR_vermask = 63 , kXR_asyncap = 128 }
 
enum  XLoginVersion {
  kXR_ver000 = 0 , kXR_ver001 = 1 , kXR_ver002 = 2 , kXR_ver003 = 3 ,
  kXR_ver004 = 4 , kXR_ver005 = 5
}
 
enum  XMkdirOptions { kXR_mknone = 0 , kXR_mkdirpath = 1 }
 
enum  XOpenRequestMode {
  kXR_ur = 0x100 , kXR_uw = 0x080 , kXR_ux = 0x040 , kXR_gr = 0x020 ,
  kXR_gw = 0x010 , kXR_gx = 0x008 , kXR_or = 0x004 , kXR_ow = 0x002 ,
  kXR_ox = 0x001
}
 
enum  XOpenRequestOption {
  kXR_compress = 0x0001 , kXR_delete = 0x0002 , kXR_force = 0x0004 , kXR_new = 0x0008 ,
  kXR_open_read = 0x0010 , kXR_open_updt = 0x0020 , kXR_async = 0x0040 , kXR_refresh = 0x0080 ,
  kXR_mkpath = 0x0100 , kXR_prefname = 0x0100 , kXR_open_apnd = 0x0200 , kXR_retstat = 0x0400 ,
  kXR_4dirlist = 0x0400 , kXR_replica = 0x0800 , kXR_posc = 0x1000 , kXR_nowait = 0x2000 ,
  kXR_seqio = 0x4000 , kXR_open_wrto = 0x8000
}
 
enum  XOpenRequestOption2 { kXR_dup = 0x0001 , kXR_samefs = 0x0002 }
 
enum  XPrepRequestOption {
  kXR_cancel = 1 , kXR_notify = 2 , kXR_noerrs = 4 , kXR_stage = 8 ,
  kXR_wmode = 16 , kXR_coloc = 32 , kXR_fresh = 64 , kXR_usetcp = 128 ,
  kXR_evict = 0x0001
}
 
enum  XQueryType {
  kXR_QStats = 1 , kXR_QPrep = 2 , kXR_Qcksum = 3 , kXR_Qxattr = 4 ,
  kXR_Qspace = 5 , kXR_Qckscan = 6 , kXR_Qconfig = 7 , kXR_Qvisa = 8 ,
  kXR_Qopaque =16 , kXR_Qopaquf =32 , kXR_Qopaqug =64
}
 
enum  XSecCrypto { kXR_SHA256 = 0x01 , kXR_HashMask = 0x0f , kXR_rsaKey = 0x80 }
 
enum  XSecFlags { kXR_nodata = 1 }
 
enum  XSecVersion { kXR_Ver_00 = 0 }
 
enum  XStatRequestOption { kXR_vfs = 1 }
 
enum  XResponseType {
  kXR_ok = 0 , kXR_oksofar = 4000 , kXR_attn , kXR_authmore ,
  kXR_error , kXR_redirect , kXR_wait , kXR_waitresp ,
  kXR_status , kXR_noResponsesYet = 10000
}
 
enum  XActionCode {
  kXR_asyncab = 5000 , kXR_asyncdi , kXR_asyncms = 5002 , kXR_asyncrd ,
  kXR_asyncwt , kXR_asyncav , kXR_asynunav , kXR_asyncgo ,
  kXR_asynresp = 5008
}
 
enum  XErrorCode {
  kXR_ArgInvalid = 3000 , kXR_ArgMissing , kXR_ArgTooLong , kXR_FileLocked ,
  kXR_FileNotOpen , kXR_FSError , kXR_InvalidRequest , kXR_IOError ,
  kXR_NoMemory , kXR_NoSpace , kXR_NotAuthorized , kXR_NotFound ,
  kXR_ServerError , kXR_Unsupported , kXR_noserver , kXR_NotFile ,
  kXR_isDirectory , kXR_Cancelled , kXR_ItExists , kXR_ChkSumErr ,
  kXR_inProgress , kXR_overQuota , kXR_SigVerErr , kXR_DecryptErr ,
  kXR_Overloaded , kXR_fsReadOnly , kXR_BadPayload , kXR_AttrNotFound ,
  kXR_TLSRequired , kXR_noReplicas , kXR_AuthFailed , kXR_Impossible ,
  kXR_Conflict , kXR_TooManyErrs , kXR_ReqTimedOut , kXR_ERRFENCE ,
  kXR_noErrorYet = 10000
}
 
enum  XStatRespFlags {
  kXR_file = 0 , kXR_xset = 1 , kXR_isDir = 2 , kXR_other = 4 ,
  kXR_offline = 8 , kXR_readable =16 , kXR_writable =32 , kXR_poscpend =64 ,
  kXR_bkpexist =128
}
 
enum  XrdProto::RespType { XrdProto::kXR_FinalResult = 0x00 , XrdProto::kXR_PartialResult = 0x01 , XrdProto::kXR_ProgressInfo = 0x02 }
 

Variables

static const int kXR_ckpBegin = 0
 
static const int kXR_ckpCommit = 1
 
static const int kXR_ckpQuery = 2
 
static const int kXR_ckpRollback = 3
 
static const int kXR_ckpXeq = 4
 
static const int kXR_ckpMinMax = 104857604
 
static const int XrdProto::kXR_pgPageSZ = 4096
 
static const int XrdProto::kXR_pgPageBL = 12
 
static const int XrdProto::kXR_pgUnitSZ = kXR_pgPageSZ + sizeof(kXR_unt32)
 
static const int XrdProto::kXR_pgMaxEpr = 128
 
static const int XrdProto::kXR_pgMaxEos = 256
 
static const kXR_char XrdProto::kXR_AnyPath = 0xff
 
static const int XrdProto::kXR_pgRetry = 0x01
 
static const int XrdProto::rlItemLen = sizeof(read_list)
 
static const int XrdProto::maxRvecln = 16384
 
static const int XrdProto::maxRvecsz = maxRvecln/rlItemLen
 
static const int XrdProto::wlItemLen = sizeof(write_list)
 
static const int XrdProto::maxWvecln = 16384
 
static const int XrdProto::maxWvecsz = maxWvecln/wlItemLen
 
static const int XrdProto::kXR_statusBodyLen = sizeof(ServerResponseBody_Status)
 

Macro Definition Documentation

◆ EAUTH

#define EAUTH   EBADE

◆ EBADRQC

#define EBADRQC   EBADRPC

◆ ENOATTR

#define ENOATTR   ENODATA

◆ kXR_anongpf

#define kXR_anongpf   0x00800000

◆ kXR_attrMeta

#define kXR_attrMeta   0x00000100

◆ kXR_attrProxy

#define kXR_attrProxy   0x00000200

◆ kXR_attrSuper

#define kXR_attrSuper   0x00000400

◆ kXR_attrVirtRdr

#define kXR_attrVirtRdr   0x00000800

◆ kXR_collapseRedir

#define kXR_collapseRedir   0x00002000

◆ kXR_DataServer

#define kXR_DataServer   1

◆ kXR_ecRedir

#define kXR_ecRedir   0x00004000

◆ kXR_gotoTLS

#define kXR_gotoTLS   0x40000000

◆ kXR_haveTLS

#define kXR_haveTLS   0x80000000

◆ kXR_isManager

#define kXR_isManager   0x00000002

◆ kXR_isServer

#define kXR_isServer   0x00000001

◆ kXR_LBalServer

#define kXR_LBalServer   0

◆ kXR_maxReqRetry

#define kXR_maxReqRetry   10

◆ kXR_PROTOCOLVERSION

#define kXR_PROTOCOLVERSION   0x00000511

◆ kXR_PROTOCOLVSTRING

#define kXR_PROTOCOLVSTRING   "5.1.0"

◆ kXR_PROTPGRWVERSION

#define kXR_PROTPGRWVERSION   0x00000511

◆ kXR_PROTSIGNVERSION

#define kXR_PROTSIGNVERSION   0x00000310

◆ kXR_PROTTLSVERSION

#define kXR_PROTTLSVERSION   0x00000500

◆ kXR_PROTXATTVERSION

#define kXR_PROTXATTVERSION   0x00000500

◆ kXR_recoverWrts

#define kXR_recoverWrts   0x00001000

◆ kXR_secCompatible

#define kXR_secCompatible   1

◆ kXR_secIntense

#define kXR_secIntense   3

◆ kXR_secNone

#define kXR_secNone   0

◆ kXR_secOData

#define kXR_secOData   0x01

◆ kXR_secOFrce

#define kXR_secOFrce   0x02

◆ kXR_secPedantic

#define kXR_secPedantic   4

◆ kXR_secStandard

#define kXR_secStandard   2

◆ kXR_secver_0

#define kXR_secver_0   0

◆ kXR_ShortProtRespLen

#define kXR_ShortProtRespLen
Value:
Definition XProtocol.hh:1187
Definition XProtocol.hh:1104

◆ kXR_signIgnore

#define kXR_signIgnore   0

◆ kXR_signLikely

#define kXR_signLikely   1

◆ kXR_signNeeded

#define kXR_signNeeded   2

◆ kXR_supgpf

#define kXR_supgpf   0x00400000

◆ kXR_suppgrw

#define kXR_suppgrw   0x00200000

◆ kXR_supposc

#define kXR_supposc   0x00100000

◆ kXR_tlsAny

#define kXR_tlsAny   0x1f000000

◆ kXR_tlsData

#define kXR_tlsData   0x01000000

◆ kXR_tlsGPF

#define kXR_tlsGPF   0x02000000

◆ kXR_tlsGPFA

#define kXR_tlsGPFA   0x20000000

◆ kXR_tlsLogin

#define kXR_tlsLogin   0x04000000

◆ kXR_tlsSess

#define kXR_tlsSess   0x08000000

◆ kXR_tlsTPC

#define kXR_tlsTPC   0x10000000

Enumeration Type Documentation

◆ XActionCode

Enumerator
kXR_asyncab 
kXR_asyncdi 
kXR_asyncms 
kXR_asyncrd 
kXR_asyncwt 
kXR_asyncav 
kXR_asynunav 
kXR_asyncgo 
kXR_asynresp 

◆ XDirlistRequestOption

Enumerator
kXR_online 
kXR_dstat 
kXR_dcksm 

◆ XErrorCode

enum XErrorCode
Enumerator
kXR_ArgInvalid 
kXR_ArgMissing 
kXR_ArgTooLong 
kXR_FileLocked 
kXR_FileNotOpen 
kXR_FSError 
kXR_InvalidRequest 
kXR_IOError 
kXR_NoMemory 
kXR_NoSpace 
kXR_NotAuthorized 
kXR_NotFound 
kXR_ServerError 
kXR_Unsupported 
kXR_noserver 
kXR_NotFile 
kXR_isDirectory 
kXR_Cancelled 
kXR_ItExists 
kXR_ChkSumErr 
kXR_inProgress 
kXR_overQuota 
kXR_SigVerErr 
kXR_DecryptErr 
kXR_Overloaded 
kXR_fsReadOnly 
kXR_BadPayload 
kXR_AttrNotFound 
kXR_TLSRequired 
kXR_noReplicas 
kXR_AuthFailed 
kXR_Impossible 
kXR_Conflict 
kXR_TooManyErrs 
kXR_ReqTimedOut 
kXR_ERRFENCE 
kXR_noErrorYet 

◆ xfaLimits

enum xfaLimits
Enumerator
kXR_faMaxVars 
kXR_faMaxNlen 
kXR_faMaxVlen 

◆ xfaSubCode

enum xfaSubCode
Enumerator
kXR_fattrDel 
kXR_fattrGet 
kXR_fattrList 
kXR_fattrSet 
kXR_fatrrMaxSC 

◆ XLoginAbility

Enumerator
kXR_nothing 
kXR_fullurl 
kXR_multipr 
kXR_readrdok 
kXR_hasipv64 
kXR_onlyprv4 
kXR_onlyprv6 
kXR_lclfile 
kXR_redirflags 

◆ XLoginAbility2

Enumerator
kXR_empty 
kXR_ecredir 

◆ XLoginCapVer

Enumerator
kXR_lcvnone 
kXR_vermask 
kXR_asyncap 

◆ XLoginVersion

Enumerator
kXR_ver000 
kXR_ver001 
kXR_ver002 
kXR_ver003 
kXR_ver004 
kXR_ver005 

◆ XMkdirOptions

Enumerator
kXR_mknone 
kXR_mkdirpath 

◆ XOpenRequestMode

Enumerator
kXR_ur 
kXR_uw 
kXR_ux 
kXR_gr 
kXR_gw 
kXR_gx 
kXR_or 
kXR_ow 
kXR_ox 

◆ XOpenRequestOption

Enumerator
kXR_compress 
kXR_delete 
kXR_force 
kXR_new 
kXR_open_read 
kXR_open_updt 
kXR_async 
kXR_refresh 
kXR_mkpath 
kXR_prefname 
kXR_open_apnd 
kXR_retstat 
kXR_4dirlist 
kXR_replica 
kXR_posc 
kXR_nowait 
kXR_seqio 
kXR_open_wrto 

◆ XOpenRequestOption2

Enumerator
kXR_dup 
kXR_samefs 

◆ XPrepRequestOption

Enumerator
kXR_cancel 
kXR_notify 
kXR_noerrs 
kXR_stage 
kXR_wmode 
kXR_coloc 
kXR_fresh 
kXR_usetcp 
kXR_evict 

◆ XQueryType

enum XQueryType
Enumerator
kXR_QStats 
kXR_QPrep 
kXR_Qcksum 
kXR_Qxattr 
kXR_Qspace 
kXR_Qckscan 
kXR_Qconfig 
kXR_Qvisa 
kXR_Qopaque 
kXR_Qopaquf 
kXR_Qopaqug 

◆ XRequestTypes

Enumerator
kXR_1stRequest 
kXR_auth 
kXR_query 
kXR_chmod 
kXR_close 
kXR_dirlist 
kXR_gpfile 
kXR_protocol 
kXR_login 
kXR_mkdir 
kXR_mv 
kXR_open 
kXR_ping 
kXR_chkpoint 
kXR_read 
kXR_rm 
kXR_rmdir 
kXR_sync 
kXR_stat 
kXR_set 
kXR_write 
kXR_fattr 
kXR_prepare 
kXR_statx 
kXR_endsess 
kXR_bind 
kXR_readv 
kXR_pgwrite 
kXR_locate 
kXR_truncate 
kXR_sigver 
kXR_pgread 
kXR_writev 
kXR_REQFENCE 

◆ XResponseType

Enumerator
kXR_ok 
kXR_oksofar 
kXR_attn 
kXR_authmore 
kXR_error 
kXR_redirect 
kXR_wait 
kXR_waitresp 
kXR_status 
kXR_noResponsesYet 

◆ XSecCrypto

enum XSecCrypto
Enumerator
kXR_SHA256 
kXR_HashMask 
kXR_rsaKey 

◆ XSecFlags

enum XSecFlags
Enumerator
kXR_nodata 

◆ XSecVersion

Enumerator
kXR_Ver_00 

◆ XStatRequestOption

Enumerator
kXR_vfs 

◆ XStatRespFlags

Enumerator
kXR_file 
kXR_xset 
kXR_isDir 
kXR_other 
kXR_offline 
kXR_readable 
kXR_writable 
kXR_poscpend 
kXR_bkpexist 

◆ XVirtRequestTypes

Enumerator
kXR_virtReadv 

Variable Documentation

◆ kXR_ckpBegin

const int kXR_ckpBegin = 0
static

◆ kXR_ckpCommit

const int kXR_ckpCommit = 1
static

◆ kXR_ckpMinMax

const int kXR_ckpMinMax = 104857604
static

◆ kXR_ckpQuery

const int kXR_ckpQuery = 2
static

◆ kXR_ckpRollback

const int kXR_ckpRollback = 3
static

◆ kXR_ckpXeq

const int kXR_ckpXeq = 4
static