XProtocol.hh File Reference

#include "XProtocol/XPtypes.hh"
#include <errno.h>
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  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_Error
struct  ServerResponseBody_Login
struct  ServerResponseBody_Open
struct  ServerResponseBody_pgRead
struct  ServerResponseBody_pgWrite
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  ALIGN_CHECK
class  XProtocol
struct  XProtocol::ServerResponseBody_Attn_asyncdi
struct  XProtocol::ServerResponseBody_Attn_asyncrd
struct  XProtocol::ServerResponseBody_Attn_asyncwt

Namespaces

namespace  XrdProto

Defines

#define kXR_PROTOCOLVERSION   0x00000500
#define kXR_PROTXATTVERSION   0x00000500
#define kXR_PROTTLSVERSION   0x00000500
#define kXR_PROTSIGNVERSION   0x00000310
#define kXR_PROTOCOLVSTRING   "5.0.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_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 EAUTH   EBADE
#define kXR_maxReqRetry   10

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  XDirlistRequestOption { kXR_online = 1, kXR_dstat = 2 }
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
}
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 = 1, kXR_delete = 2, kXR_force = 4, kXR_new = 8,
  kXR_open_read = 16, kXR_open_updt = 32, kXR_async = 64, kXR_refresh = 128,
  kXR_mkpath = 256, kXR_prefname = 256, kXR_open_apnd = 512, kXR_retstat = 1024,
  kXR_4dirlist = 1024, kXR_replica = 2048, kXR_posc = 4096, kXR_nowait = 8192,
  kXR_seqio = 16384, kXR_open_wrto = 32768
}
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_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 XrdProto::kXR_pgPageSZ = 4096
static const int XrdProto::kXR_pgUnitSZ = kXR_pgPageSZ + sizeof(kXR_unt32)
static const kXR_char XrdProto::kXR_AnyPath = 0xff
static const int XrdProto::kXR_pgRetry = 0x01
static const int XrdProto::kXR_statusBodyLen = sizeof(ServerResponseBody_Status)

Define Documentation

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

Enumeration Type Documentation

Enumerator:
kXR_asyncab 
kXR_asyncdi 
kXR_asyncms 
kXR_asyncrd 
kXR_asyncwt 
kXR_asyncav 
kXR_asynunav 
kXR_asyncgo 
kXR_asynresp 
Enumerator:
kXR_online 
kXR_dstat 
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_ERRFENCE 
kXR_noErrorYet 
enum xfaLimits
Enumerator:
kXR_faMaxVars 
kXR_faMaxNlen 
kXR_faMaxVlen 
enum xfaSubCode
Enumerator:
kXR_fattrDel 
kXR_fattrGet 
kXR_fattrList 
kXR_fattrSet 
kXR_fatrrMaxSC 
Enumerator:
kXR_nothing 
kXR_fullurl 
kXR_multipr 
kXR_readrdok 
kXR_hasipv64 
kXR_onlyprv4 
kXR_onlyprv6 
kXR_lclfile 
Enumerator:
kXR_lcvnone 
kXR_vermask 
kXR_asyncap 
Enumerator:
kXR_ver000 
kXR_ver001 
kXR_ver002 
kXR_ver003 
kXR_ver004 
kXR_ver005 
Enumerator:
kXR_mknone 
kXR_mkdirpath 
Enumerator:
kXR_ur 
kXR_uw 
kXR_ux 
kXR_gr 
kXR_gw 
kXR_gx 
kXR_or 
kXR_ow 
kXR_ox 
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 
Enumerator:
kXR_cancel 
kXR_notify 
kXR_noerrs 
kXR_stage 
kXR_wmode 
kXR_coloc 
kXR_fresh 
kXR_usetcp 
kXR_evict 
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 
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 
Enumerator:
kXR_ok 
kXR_oksofar 
kXR_attn 
kXR_authmore 
kXR_error 
kXR_redirect 
kXR_wait 
kXR_waitresp 
kXR_status 
kXR_noResponsesYet 
enum XSecCrypto
Enumerator:
kXR_SHA256 
kXR_HashMask 
kXR_rsaKey 
enum XSecFlags
Enumerator:
kXR_nodata 
Enumerator:
kXR_Ver_00 
Enumerator:
kXR_vfs 
Enumerator:
kXR_file 
kXR_xset 
kXR_isDir 
kXR_other 
kXR_offline 
kXR_readable 
kXR_writable 
kXR_poscpend 
kXR_bkpexist 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 7 Jul 2020 for xrootd by  doxygen 1.6.1