xrootd
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
XrdXrootdProtocol Class Reference

#include <XrdXrootdProtocol.hh>

Inheritance diagram for XrdXrootdProtocol:
Inheritance graph
[legend]
Collaboration diagram for XrdXrootdProtocol:
Collaboration graph
[legend]

Classes

struct  GetDataCtl
 
struct  RD_Table
 

Public Member Functions

XrdSfsXioHandle Claim (const char *buff, int datasz, int minasz=0)
 
void DoIt ()
 
int do_WriteSpan ()
 
XrdProtocolMatch (XrdLink *lp)
 
int Process (XrdLink *lp)
 
int Process2 ()
 
int ProcSig ()
 
void Recycle (XrdLink *lp, int consec, const char *reason)
 
int SendFile (int fildes)
 
int SendFile (XrdOucSFVec *sfvec, int sfvnum)
 
void SetFD (int fildes)
 
int Stats (char *buff, int blen, int do_sync=0)
 
XrdSfsXioHandle Swap (const char *buff, XrdSfsXioHandle h=0)
 
XrdXrootdProtocol operator= (const XrdXrootdProtocol &rhs)=delete
 
 XrdXrootdProtocol ()
 
 ~XrdXrootdProtocol ()
 
- Public Member Functions inherited from XrdProtocol
 XrdProtocol (const char *jname)
 
virtual ~XrdProtocol ()
 
- Public Member Functions inherited from XrdJob
 XrdJob (const char *desc="")
 
virtual ~XrdJob ()
 
- Public Member Functions inherited from XrdSfsDio
 XrdSfsDio ()
 Constructor and destructor. More...
 
virtual ~XrdSfsDio ()
 
- Public Member Functions inherited from XrdSfsXio
 XrdSfsXio (XrdSfsXioImpl &xioimpl)
 
virtual ~XrdSfsXio ()
 Constructor and destructor. More...
 

Static Public Member Functions

static char * Buffer (XrdSfsXioHandle h, int *bsz)
 
static int Configure (char *parms, XrdProtocol_Config *pi)
 
static void Reclaim (XrdSfsXioHandle h)
 
- Static Public Member Functions inherited from XrdSfsXio
static char * Buffer (XrdSfsXioHandle theHand, int *buffsz=0)
 
static void Reclaim (XrdSfsXioHandle theHand)
 

Static Public Attributes

static const int maxStreams = 16
 

Protected Member Functions

void MonAuth ()
 
int SetSF (kXR_char *fhandle, bool seton=false)
 

Static Protected Member Functions

static unsigned int getSID ()
 

Protected Attributes

int numReads
 
int numReadP
 
int numReadV
 
int numSegsV
 
int numWritV
 
int numSegsW
 
int numWrites
 
int numFiles
 
int cumReads
 
int cumReadP
 
int cumReadV
 
int cumSegsV
 
int cumWritV
 
int cumSegsW
 
int cumWrites
 
long long totReadP
 
XrdLinkLink
 
XrdBufferargp
 
XrdXrootdFileTableFTab
 
XrdXrootdMonitor::User Monitor
 
int clientPV
 
int clientRN
 
int reserved
 
short rdType
 
char Status
 
unsigned char CapVer
 
XrdSecEntityClient
 
XrdSecProtocolAuthProt
 
XrdSecEntity Entity
 
XrdSecProtectProtect
 
char * AppName
 
ClientRequest sigReq2Ver
 
SecurityRequest sigReq
 
char sigBuff [64]
 
bool sigNeed
 
bool sigHere
 
bool sigRead
 
bool sigWarn
 
char miscrsv [4]
 
XrdXrootdAioReqmyAioReq
 
char * myBuff
 
int myBlen
 
int myBlast
 
struct XrdXrootdProtocol::GetDataCtl gdCtl
 
int(XrdXrootdProtocol::* Resume )()
 
XrdXrootdFilemyFile
 
XrdXrootdWVInfowvInfo
 
union {
   long long   myOffset
 
   long long   myWVBytes
 
   int   myEInfo [2]
 
}; 
 
int myIOLen
 
int myStalls
 
int hcPrev
 
int hcNext
 
int hcNow
 
int halfBSize
 
XrdSysMutex streamMutex
 
XrdSysSemaphorereTry
 
XrdXrootdProtocolStream [maxStreams]
 
unsigned int mySID
 
bool isActive
 
bool isDead
 
bool isBound
 
bool isNOP
 
XrdXrootdPiopioFirst
 
XrdXrootdPiopioLast
 
XrdXrootdPiopioFree
 
long long bytes2recv
 
long long bytes2send
 
short PathID
 
unsigned short myFlags
 
bool doPgIO
 
bool doWrite
 
bool doWriteC
 
unsigned char rvSeq
 
unsigned char wvSeq
 
char doTLS
 
bool ableTLS
 
bool isTLS
 
int PrepareCount
 
XrdXrootdReqID ReqID
 
ClientRequest Request
 
XrdXrootdResponse Response
 

Static Protected Attributes

static XrdXrootdXPath RPList
 
static XrdXrootdXPath RQList
 
static XrdXrootdXPath XPList
 
static XrdSfsFileSystem * osFS
 
static XrdSfsFileSystem * digFS
 
static XrdSecServiceCIA
 
static XrdSecProtectorDHS
 
static XrdTlsContexttlsCtx
 
static XrdXrootdFileLockLocker
 
static XrdSchedulerSched
 
static XrdBuffManagerBPool
 
static XrdSysErroreDest
 
static const char * myInst
 
static const char * TraceID
 
static int RQLxist
 
static int myPID
 
static int myRole
 
static int myRolf
 
static gid_t myGID
 
static uid_t myUID
 
static int myGNLen
 
static int myUNLen
 
static const char * myGName
 
static const char * myUName
 
static time_t keepT
 
static XrdNetSocketAdminSock
 
static int hailWait
 
static int readWait
 
static int Port
 
static int Window
 
static int tlsPort
 
static char * Notify
 
static const char * myCName
 
static int myCNlen
 
static char isRedir
 
static char JobLCL
 
static char JobCKCGI
 
static XrdXrootdJobJobCKS
 
static char * JobCKT
 
static XrdOucTListJobCKTLST
 
static XrdOucReqIDPrepID
 
static uint64_t fsFeatures
 
static struct XrdXrootdProtocol::RD_Table Route [RD_Num]
 
static int OD_Stall
 
static bool OD_Bypass
 
static bool OD_Redir
 
static int usxMaxNsz
 
static int usxMaxVsz
 
static char * usxParms
 
static const char Req_TLSData = 0x01
 
static const char Req_TLSGPFile = 0x02
 
static const char Req_TLSLogin = 0x04
 
static const char Req_TLSSess = 0x08
 
static const char Req_TLSTPC = 0x10
 
static char tlsCap
 
static char tlsNot
 
static int as_maxperlnk
 
static int as_maxperreq
 
static int as_maxpersrv
 
static int as_miniosz
 
static int as_minsfsz
 
static int as_segsize
 
static int as_maxstalls
 
static int as_force
 
static int as_noaio
 
static int as_nosf
 
static int as_syncw
 
static int maxBuffsz
 
static int maxTransz
 
static XrdXrootdStatsSI
 
static int hcMax
 
static const int maxPio = 4
 
static bool PrepareAlt
 
static bool LimitError
 
static int PrepareLimit
 

Private Types

enum  RD_func {
  RD_chmod = 0, RD_chksum, RD_dirlist, RD_locate,
  RD_mkdir, RD_mv, RD_prepare, RD_prepstg,
  RD_rm, RD_rmdir, RD_stat, RD_trunc,
  RD_ovld, RD_open1, RD_open2, RD_open3,
  RD_open4, RD_Num
}
 

Private Member Functions

int do_Auth ()
 
int do_Bind ()
 
int do_ChkPnt ()
 
int do_ChkPntXeq ()
 
int do_Chmod ()
 
int do_CKsum (int canit)
 
int do_CKsum (char *algT, const char *Path, char *Opaque)
 
int do_Close ()
 
int do_Dirlist ()
 
int do_DirStat (XrdSfsDirectory *dp, char *pbuff, char *opaque)
 
int do_Endsess ()
 
int do_FAttr ()
 
int do_gpFile ()
 
int do_Login ()
 
int do_Locate ()
 
int do_Mkdir ()
 
int do_Mv ()
 
int do_Offload (int pathID, bool isWrite, bool ispgio=false)
 
int do_OffloadIO ()
 
int do_Open ()
 
bool do_PgClose (XrdXrootdFile *fP, int &rc)
 
int do_PgRead ()
 
int do_PgRIO ()
 
int do_PgWrite ()
 
int do_PgWIO ()
 
bool do_PgWIORetry (int &rc)
 
bool do_PgWIOSetup (XrdXrootdPgwCtl *pgwCtl)
 
int do_Ping ()
 
int do_Prepare (bool isQuery=false)
 
int do_Protocol ()
 
int do_Qconf ()
 
int do_QconfCX (XrdOucTokenizer &qcargs, char *val)
 
int do_Qfh ()
 
int do_Qopaque (short)
 
int do_Qspace ()
 
int do_Query ()
 
int do_Qxattr ()
 
int do_Read ()
 
int do_ReadV ()
 
int do_ReadAll (int asyncOK=1)
 
int do_ReadNone (int &retc, int &pathID)
 
int do_Rm ()
 
int do_Rmdir ()
 
int do_Set ()
 
int do_Set_Mon (XrdOucTokenizer &setargs)
 
int do_Stat ()
 
int do_Statx ()
 
int do_Sync ()
 
int do_Truncate ()
 
int do_Write ()
 
int do_WriteAll ()
 
int do_WriteCont ()
 
int do_WriteNone ()
 
int do_WriteNone (int pathid, XErrorCode ec=kXR_noErrorYet, const char *emsg=0)
 
int do_WriteNoneMsg ()
 
int do_WriteV ()
 
int do_WriteVec ()
 
int aio_Error (const char *op, int ecode)
 
int aio_Read ()
 
int aio_Write ()
 
int aio_WriteAll ()
 
int aio_WriteCont ()
 
void Assign (const XrdXrootdProtocol &rhs)
 
void Cleanup ()
 
int fsError (int rc, char opc, XrdOucErrInfo &myError, const char *Path, char *Cgi)
 
int fsOvrld (char opc, const char *Path, char *Cgi)
 
int fsRedirNoEnt (const char *eMsg, char *Cgi, int popt)
 
int getBuff (const int isRead, int Quantum)
 
char * getCksType (char *opaque, char *cspec=0, int cslen=0)
 
int getData (const char *dtype, char *buff, int blen)
 
int getData (int(XrdXrootdProtocol::*CallBack)(), const char *dtype, struct iovec *iov, int iovn)
 
int getDataIovCont ()
 
int getPathID (bool isRead)
 
bool logLogin (bool xauth=false)
 
void Reset ()
 
int rpEmsg (const char *op, char *fn)
 
int vpEmsg (const char *op, char *fn)
 
int StatGen (struct stat &buf, char *xxBuff, int xxLen, bool xa=false)
 
int ProcFAttr (char *faPath, char *faCgi, char *faArgs, int faALen, int faCode, bool doAChk)
 
int XeqFADel (XrdSfsFACtl &ctl, char *faVars, int faVLen)
 
int XeqFAGet (XrdSfsFACtl &ctl, char *faVars, int faVLen)
 
int XeqFALsd (XrdSfsFACtl &ctl)
 
int XeqFALst (XrdSfsFACtl &ctl)
 
int XeqFASet (XrdSfsFACtl &ctl, char *faVars, int faVLen)
 

Static Private Member Functions

static int CheckSum (XrdOucStream *, char **, int)
 
static int Config (const char *fn)
 
static bool ConfigMon (XrdProtocol_Config *pi, XrdOucEnv &xrootdEnv)
 
static int ConfigSecurity (XrdOucEnv &xEnv, const char *cfn)
 
static int mapMode (int mode)
 
static int rpCheck (char *fn, char **opaque)
 
static int CheckTLS (const char *tlsProt)
 
static bool ConfigFS (XrdOucEnv &xEnv, const char *cfn)
 
static bool ConfigFS (const char *path, XrdOucEnv &xEnv, const char *cfn)
 
static bool ConfigGStream (XrdOucEnv &myEnv, XrdOucEnv *urEnv)
 
static int Squash (char *)
 
static int xapath (XrdOucStream &Config)
 
static int xasync (XrdOucStream &Config)
 
static int xcksum (XrdOucStream &Config)
 
static int xdig (XrdOucStream &Config)
 
static int xexp (XrdOucStream &Config)
 
static int xexpdo (char *path, int popt=0)
 
static int xfsl (XrdOucStream &Config)
 
static int xfsL (XrdOucStream &Config, char *val, int lix)
 
static int xfso (XrdOucStream &Config)
 
static int xgpf (XrdOucStream &Config)
 
static int xprep (XrdOucStream &Config)
 
static int xlog (XrdOucStream &Config)
 
static int xmon (XrdOucStream &Config)
 
static char * xmondest (const char *what, char *val)
 
static int xmongs (XrdOucStream &Config)
 
static bool xmongsend (XrdOucStream &Config, char *val, char *&dest, int &opt, int &fmt, int &hdr)
 
static int xred (XrdOucStream &Config)
 
static bool xred_php (char *val, char *hP[2], int rPort[2])
 
static void xred_set (RD_func func, char *rHost[2], int rPort[2])
 
static bool xred_xok (int func, char *rHost[2], int rPort[2])
 
static int xsecl (XrdOucStream &Config)
 
static int xtls (XrdOucStream &Config)
 
static int xtlsr (XrdOucStream &Config)
 
static int xtrace (XrdOucStream &Config)
 
static int xlimit (XrdOucStream &Config)
 

Private Attributes

XrdObject< XrdXrootdProtocolProtLink
 

Static Private Attributes

static XrdObjectQ< XrdXrootdProtocolProtStack
 

Friends

class XrdXrootdAdmin
 
class XrdXrootdAioReq
 

Additional Inherited Members

- Public Attributes inherited from XrdJob
XrdJobNextJob
 
const char * Comment
 

Member Enumeration Documentation

◆ RD_func

Enumerator
RD_chmod 
RD_chksum 
RD_dirlist 
RD_locate 
RD_mkdir 
RD_mv 
RD_prepare 
RD_prepstg 
RD_rm 
RD_rmdir 
RD_stat 
RD_trunc 
RD_ovld 
RD_open1 
RD_open2 
RD_open3 
RD_open4 
RD_Num 

Constructor & Destructor Documentation

◆ XrdXrootdProtocol()

XrdXrootdProtocol::XrdXrootdProtocol ( )

◆ ~XrdXrootdProtocol()

XrdXrootdProtocol::~XrdXrootdProtocol ( )
inline

References Cleanup().

Member Function Documentation

◆ aio_Error()

int XrdXrootdProtocol::aio_Error ( const char *  op,
int  ecode 
)
private

◆ aio_Read()

int XrdXrootdProtocol::aio_Read ( )
private

◆ aio_Write()

int XrdXrootdProtocol::aio_Write ( )
private

◆ aio_WriteAll()

int XrdXrootdProtocol::aio_WriteAll ( )
private

◆ aio_WriteCont()

int XrdXrootdProtocol::aio_WriteCont ( )
private

◆ Assign()

void XrdXrootdProtocol::Assign ( const XrdXrootdProtocol rhs)
private

◆ Buffer()

static char* XrdXrootdProtocol::Buffer ( XrdSfsXioHandle  h,
int *  bsz 
)
static

◆ CheckSum()

static int XrdXrootdProtocol::CheckSum ( XrdOucStream ,
char **  ,
int   
)
staticprivate

◆ CheckTLS()

static int XrdXrootdProtocol::CheckTLS ( const char *  tlsProt)
staticprivate

◆ Claim()

XrdSfsXioHandle XrdXrootdProtocol::Claim ( const char *  curBuff,
int  datasz,
int  minasz = 0 
)
virtual

Claim ownership of the current buffer if it is memory effecient to do so.

Parameters
curBuff- The address of the current buffer. It must match the the buffer that was most recently passed to the caller.
datasz- Number of useful bytes in the buffer (i.e. write size).
minasz- Minimum buffer size that would be allocated to copy data.
Returns
!0 The buffer handle of the current buffer is returned along with ownership rights.
=0 Too much memory would be wasted by transferring ownership (errno == 0) or an error ocurred (errno != 0). When an error see Swap() below for possible types of errors.

Implements XrdSfsXio.

◆ Cleanup()

void XrdXrootdProtocol::Cleanup ( )
private

Referenced by ~XrdXrootdProtocol().

◆ Config()

static int XrdXrootdProtocol::Config ( const char *  fn)
staticprivate

◆ ConfigFS() [1/2]

static bool XrdXrootdProtocol::ConfigFS ( XrdOucEnv xEnv,
const char *  cfn 
)
staticprivate

◆ ConfigFS() [2/2]

static bool XrdXrootdProtocol::ConfigFS ( const char *  path,
XrdOucEnv xEnv,
const char *  cfn 
)
staticprivate

◆ ConfigGStream()

static bool XrdXrootdProtocol::ConfigGStream ( XrdOucEnv myEnv,
XrdOucEnv urEnv 
)
staticprivate

◆ ConfigMon()

static bool XrdXrootdProtocol::ConfigMon ( XrdProtocol_Config pi,
XrdOucEnv xrootdEnv 
)
staticprivate

◆ ConfigSecurity()

static int XrdXrootdProtocol::ConfigSecurity ( XrdOucEnv xEnv,
const char *  cfn 
)
staticprivate

◆ Configure()

static int XrdXrootdProtocol::Configure ( char *  parms,
XrdProtocol_Config pi 
)
static

◆ do_Auth()

int XrdXrootdProtocol::do_Auth ( )
private

◆ do_Bind()

int XrdXrootdProtocol::do_Bind ( )
private

◆ do_ChkPnt()

int XrdXrootdProtocol::do_ChkPnt ( )
private

◆ do_ChkPntXeq()

int XrdXrootdProtocol::do_ChkPntXeq ( )
private

◆ do_Chmod()

int XrdXrootdProtocol::do_Chmod ( )
private

◆ do_CKsum() [1/2]

int XrdXrootdProtocol::do_CKsum ( int  canit)
private

◆ do_CKsum() [2/2]

int XrdXrootdProtocol::do_CKsum ( char *  algT,
const char *  Path,
char *  Opaque 
)
private

◆ do_Close()

int XrdXrootdProtocol::do_Close ( )
private

◆ do_Dirlist()

int XrdXrootdProtocol::do_Dirlist ( )
private

◆ do_DirStat()

int XrdXrootdProtocol::do_DirStat ( XrdSfsDirectory dp,
char *  pbuff,
char *  opaque 
)
private

◆ do_Endsess()

int XrdXrootdProtocol::do_Endsess ( )
private

◆ do_FAttr()

int XrdXrootdProtocol::do_FAttr ( )
private

◆ do_gpFile()

int XrdXrootdProtocol::do_gpFile ( )
private

◆ do_Locate()

int XrdXrootdProtocol::do_Locate ( )
private

◆ do_Login()

int XrdXrootdProtocol::do_Login ( )
private

◆ do_Mkdir()

int XrdXrootdProtocol::do_Mkdir ( )
private

◆ do_Mv()

int XrdXrootdProtocol::do_Mv ( )
private

◆ do_Offload()

int XrdXrootdProtocol::do_Offload ( int  pathID,
bool  isWrite,
bool  ispgio = false 
)
private

◆ do_OffloadIO()

int XrdXrootdProtocol::do_OffloadIO ( )
private

◆ do_Open()

int XrdXrootdProtocol::do_Open ( )
private

◆ do_PgClose()

bool XrdXrootdProtocol::do_PgClose ( XrdXrootdFile fP,
int &  rc 
)
private

◆ do_PgRead()

int XrdXrootdProtocol::do_PgRead ( )
private

◆ do_PgRIO()

int XrdXrootdProtocol::do_PgRIO ( )
private

◆ do_PgWIO()

int XrdXrootdProtocol::do_PgWIO ( )
private

◆ do_PgWIORetry()

bool XrdXrootdProtocol::do_PgWIORetry ( int &  rc)
private

◆ do_PgWIOSetup()

bool XrdXrootdProtocol::do_PgWIOSetup ( XrdXrootdPgwCtl pgwCtl)
private

◆ do_PgWrite()

int XrdXrootdProtocol::do_PgWrite ( )
private

◆ do_Ping()

int XrdXrootdProtocol::do_Ping ( )
private

◆ do_Prepare()

int XrdXrootdProtocol::do_Prepare ( bool  isQuery = false)
private

◆ do_Protocol()

int XrdXrootdProtocol::do_Protocol ( )
private

◆ do_Qconf()

int XrdXrootdProtocol::do_Qconf ( )
private

◆ do_QconfCX()

int XrdXrootdProtocol::do_QconfCX ( XrdOucTokenizer qcargs,
char *  val 
)
private

◆ do_Qfh()

int XrdXrootdProtocol::do_Qfh ( )
private

◆ do_Qopaque()

int XrdXrootdProtocol::do_Qopaque ( short  )
private

◆ do_Qspace()

int XrdXrootdProtocol::do_Qspace ( )
private

◆ do_Query()

int XrdXrootdProtocol::do_Query ( )
private

◆ do_Qxattr()

int XrdXrootdProtocol::do_Qxattr ( )
private

◆ do_Read()

int XrdXrootdProtocol::do_Read ( )
private

◆ do_ReadAll()

int XrdXrootdProtocol::do_ReadAll ( int  asyncOK = 1)
private

◆ do_ReadNone()

int XrdXrootdProtocol::do_ReadNone ( int &  retc,
int &  pathID 
)
private

◆ do_ReadV()

int XrdXrootdProtocol::do_ReadV ( )
private

◆ do_Rm()

int XrdXrootdProtocol::do_Rm ( )
private

◆ do_Rmdir()

int XrdXrootdProtocol::do_Rmdir ( )
private

◆ do_Set()

int XrdXrootdProtocol::do_Set ( )
private

◆ do_Set_Mon()

int XrdXrootdProtocol::do_Set_Mon ( XrdOucTokenizer setargs)
private

◆ do_Stat()

int XrdXrootdProtocol::do_Stat ( )
private

◆ do_Statx()

int XrdXrootdProtocol::do_Statx ( )
private

◆ do_Sync()

int XrdXrootdProtocol::do_Sync ( )
private

◆ do_Truncate()

int XrdXrootdProtocol::do_Truncate ( )
private

◆ do_Write()

int XrdXrootdProtocol::do_Write ( )
private

◆ do_WriteAll()

int XrdXrootdProtocol::do_WriteAll ( )
private

◆ do_WriteCont()

int XrdXrootdProtocol::do_WriteCont ( )
private

◆ do_WriteNone() [1/2]

int XrdXrootdProtocol::do_WriteNone ( )
private

◆ do_WriteNone() [2/2]

int XrdXrootdProtocol::do_WriteNone ( int  pathid,
XErrorCode  ec = kXR_noErrorYet,
const char *  emsg = 0 
)
private

◆ do_WriteNoneMsg()

int XrdXrootdProtocol::do_WriteNoneMsg ( )
private

◆ do_WriteSpan()

int XrdXrootdProtocol::do_WriteSpan ( )

◆ do_WriteV()

int XrdXrootdProtocol::do_WriteV ( )
private

◆ do_WriteVec()

int XrdXrootdProtocol::do_WriteVec ( )
private

◆ DoIt()

void XrdXrootdProtocol::DoIt ( )
inlinevirtual

Implements XrdJob.

References Resume.

◆ fsError()

int XrdXrootdProtocol::fsError ( int  rc,
char  opc,
XrdOucErrInfo myError,
const char *  Path,
char *  Cgi 
)
private

◆ fsOvrld()

int XrdXrootdProtocol::fsOvrld ( char  opc,
const char *  Path,
char *  Cgi 
)
private

◆ fsRedirNoEnt()

int XrdXrootdProtocol::fsRedirNoEnt ( const char *  eMsg,
char *  Cgi,
int  popt 
)
private

◆ getBuff()

int XrdXrootdProtocol::getBuff ( const int  isRead,
int  Quantum 
)
private

◆ getCksType()

char* XrdXrootdProtocol::getCksType ( char *  opaque,
char *  cspec = 0,
int  cslen = 0 
)
private

◆ getData() [1/2]

int XrdXrootdProtocol::getData ( const char *  dtype,
char *  buff,
int  blen 
)
private

◆ getData() [2/2]

int XrdXrootdProtocol::getData ( int(XrdXrootdProtocol::*)()  CallBack,
const char *  dtype,
struct iovec *  iov,
int  iovn 
)
private

◆ getDataIovCont()

int XrdXrootdProtocol::getDataIovCont ( )
private

◆ getPathID()

int XrdXrootdProtocol::getPathID ( bool  isRead)
private

◆ getSID()

static unsigned int XrdXrootdProtocol::getSID ( )
staticprotected

◆ logLogin()

bool XrdXrootdProtocol::logLogin ( bool  xauth = false)
private

◆ mapMode()

static int XrdXrootdProtocol::mapMode ( int  mode)
staticprivate

◆ Match()

XrdProtocol* XrdXrootdProtocol::Match ( XrdLink lp)
virtual

Implements XrdProtocol.

◆ MonAuth()

void XrdXrootdProtocol::MonAuth ( )
protected

◆ operator=()

XrdXrootdProtocol XrdXrootdProtocol::operator= ( const XrdXrootdProtocol rhs)
delete

◆ Process()

int XrdXrootdProtocol::Process ( XrdLink lp)
virtual

Implements XrdProtocol.

Reimplemented in XrdXrootdTransit.

◆ Process2()

int XrdXrootdProtocol::Process2 ( )

◆ ProcFAttr()

int XrdXrootdProtocol::ProcFAttr ( char *  faPath,
char *  faCgi,
char *  faArgs,
int  faALen,
int  faCode,
bool  doAChk 
)
private

◆ ProcSig()

int XrdXrootdProtocol::ProcSig ( )

◆ Reclaim()

static void XrdXrootdProtocol::Reclaim ( XrdSfsXioHandle  h)
static

◆ Recycle()

void XrdXrootdProtocol::Recycle ( XrdLink lp,
int  consec,
const char *  reason 
)
virtual

Implements XrdProtocol.

Reimplemented in XrdXrootdTransit.

◆ Reset()

void XrdXrootdProtocol::Reset ( )
private

◆ rpCheck()

static int XrdXrootdProtocol::rpCheck ( char *  fn,
char **  opaque 
)
staticprivate

◆ rpEmsg()

int XrdXrootdProtocol::rpEmsg ( const char *  op,
char *  fn 
)
private

◆ SendFile() [1/2]

int XrdXrootdProtocol::SendFile ( int  fildes)
virtual

Send data to a client using the sendfile() system interface.

Parameters
fildes- The file descriptor to use to effect a sendfile() for all of the requested data. The original offset and length are used relative to this file descriptor.
Returns
>0 - data has been sent in a previous call. This is indicative of a logic error in SendData() as only one call is allowed.
=0 - data has been sent.
<0 - A fatal transmission error occurred. SendData() should return SFS_ERROR to force the connection to be closed.

Implements XrdSfsDio.

◆ SendFile() [2/2]

int XrdXrootdProtocol::SendFile ( XrdOucSFVec sfvec,
int  sfvnum 
)
virtual

Send data to a client using the sendfile() system interface.

Parameters
sfvec- One or more XrdOucSFVec elements describing what should be transferred. The first element of the vector must be available for use by the interface for proper framing. That is, start filling in elements at sfvec[1] and sfvnum should be the count of elements filled in plus 1.
sfvnum- total number of elements in sfvec and includes the first unused element. There is a maximum number of elements that the vector may have; defined inside XrdOucSFVec.
Returns
>0 - either data has been sent in a previous call or the total amount of data in sfvec is greater than the original request. This is indicative of a SendData() logic error.
=0 - data has been sent.
<0 - A fatal transmission error occurred. SendData() should return SFS_ERROR to force the connection to be closed.

Implements XrdSfsDio.

◆ SetFD()

void XrdXrootdProtocol::SetFD ( int  fildes)
virtual

Change the file descriptor setting and, consequently, interface processing.

Parameters
fildes- The file descriptor to use in the future, as follows: < 0 - Disable sendfile and always use read(). >= 0 - Enable sendfile and always use sendfile() w/o invoking this interface (i.e. fast path).

Implements XrdSfsDio.

◆ SetSF()

int XrdXrootdProtocol::SetSF ( kXR_char fhandle,
bool  seton = false 
)
protected

Referenced by XrdXrootdTransit::setSF().

◆ Squash()

static int XrdXrootdProtocol::Squash ( char *  )
staticprivate

◆ StatGen()

int XrdXrootdProtocol::StatGen ( struct stat buf,
char *  xxBuff,
int  xxLen,
bool  xa = false 
)
private

◆ Stats()

int XrdXrootdProtocol::Stats ( char *  buff,
int  blen,
int  do_sync = 0 
)
virtual

Implements XrdProtocol.

◆ Swap()

XrdSfsXioHandle XrdXrootdProtocol::Swap ( const char *  curBuff,
XrdSfsXioHandle  oldHand = 0 
)
virtual

Swap the current I/O buffer

Parameters
curBuff- The address of the current buffer. It must match the the buffer that was most recently passed to the caller.
oldHand- The handle associated with a buffer returned by a previous call to Swap(). A value of zero indicates that the caller is taking control of the buffer but has no replacement buffer.
Returns
!0 The buffer handle of the current buffer is returned along with ownership rights. If oldHand was not nil, the caller's ownership of the associated buffer is reclaimed.
=0 An error occurred and nothing has changed; errno holds the reason for the error. Typically, EINVAL - curBuff doe not match current buffer. ENOBUFS - not enough memory to give up buffer. ENOTSUP - unsupported context for call.

Implements XrdSfsXio.

◆ vpEmsg()

int XrdXrootdProtocol::vpEmsg ( const char *  op,
char *  fn 
)
private

◆ xapath()

static int XrdXrootdProtocol::xapath ( XrdOucStream Config)
staticprivate

◆ xasync()

static int XrdXrootdProtocol::xasync ( XrdOucStream Config)
staticprivate

◆ xcksum()

static int XrdXrootdProtocol::xcksum ( XrdOucStream Config)
staticprivate

◆ xdig()

static int XrdXrootdProtocol::xdig ( XrdOucStream Config)
staticprivate

◆ XeqFADel()

int XrdXrootdProtocol::XeqFADel ( XrdSfsFACtl ctl,
char *  faVars,
int  faVLen 
)
private

◆ XeqFAGet()

int XrdXrootdProtocol::XeqFAGet ( XrdSfsFACtl ctl,
char *  faVars,
int  faVLen 
)
private

◆ XeqFALsd()

int XrdXrootdProtocol::XeqFALsd ( XrdSfsFACtl ctl)
private

◆ XeqFALst()

int XrdXrootdProtocol::XeqFALst ( XrdSfsFACtl ctl)
private

◆ XeqFASet()

int XrdXrootdProtocol::XeqFASet ( XrdSfsFACtl ctl,
char *  faVars,
int  faVLen 
)
private

◆ xexp()

static int XrdXrootdProtocol::xexp ( XrdOucStream Config)
staticprivate

◆ xexpdo()

static int XrdXrootdProtocol::xexpdo ( char *  path,
int  popt = 0 
)
staticprivate

◆ xfsl()

static int XrdXrootdProtocol::xfsl ( XrdOucStream Config)
staticprivate

◆ xfsL()

static int XrdXrootdProtocol::xfsL ( XrdOucStream Config,
char *  val,
int  lix 
)
staticprivate

◆ xfso()

static int XrdXrootdProtocol::xfso ( XrdOucStream Config)
staticprivate

◆ xgpf()

static int XrdXrootdProtocol::xgpf ( XrdOucStream Config)
staticprivate

◆ xlimit()

static int XrdXrootdProtocol::xlimit ( XrdOucStream Config)
staticprivate

◆ xlog()

static int XrdXrootdProtocol::xlog ( XrdOucStream Config)
staticprivate

◆ xmon()

static int XrdXrootdProtocol::xmon ( XrdOucStream Config)
staticprivate

◆ xmondest()

static char* XrdXrootdProtocol::xmondest ( const char *  what,
char *  val 
)
staticprivate

◆ xmongs()

static int XrdXrootdProtocol::xmongs ( XrdOucStream Config)
staticprivate

◆ xmongsend()

static bool XrdXrootdProtocol::xmongsend ( XrdOucStream Config,
char *  val,
char *&  dest,
int &  opt,
int &  fmt,
int &  hdr 
)
staticprivate

◆ xprep()

static int XrdXrootdProtocol::xprep ( XrdOucStream Config)
staticprivate

◆ xred()

static int XrdXrootdProtocol::xred ( XrdOucStream Config)
staticprivate

◆ xred_php()

static bool XrdXrootdProtocol::xred_php ( char *  val,
char *  hP[2],
int  rPort[2] 
)
staticprivate

◆ xred_set()

static void XrdXrootdProtocol::xred_set ( RD_func  func,
char *  rHost[2],
int  rPort[2] 
)
staticprivate

◆ xred_xok()

static bool XrdXrootdProtocol::xred_xok ( int  func,
char *  rHost[2],
int  rPort[2] 
)
staticprivate

◆ xsecl()

static int XrdXrootdProtocol::xsecl ( XrdOucStream Config)
staticprivate

◆ xtls()

static int XrdXrootdProtocol::xtls ( XrdOucStream Config)
staticprivate

◆ xtlsr()

static int XrdXrootdProtocol::xtlsr ( XrdOucStream Config)
staticprivate

◆ xtrace()

static int XrdXrootdProtocol::xtrace ( XrdOucStream Config)
staticprivate

Friends And Related Function Documentation

◆ XrdXrootdAdmin

friend class XrdXrootdAdmin
friend

◆ XrdXrootdAioReq

friend class XrdXrootdAioReq
friend

Member Data Documentation

◆ @159

union { ... }

◆ ableTLS

bool XrdXrootdProtocol::ableTLS
protected

◆ AdminSock

XrdNetSocket* XrdXrootdProtocol::AdminSock
staticprotected

◆ AppName

char* XrdXrootdProtocol::AppName
protected

◆ argp

XrdBuffer* XrdXrootdProtocol::argp
protected

◆ as_force

int XrdXrootdProtocol::as_force
staticprotected

◆ as_maxperlnk

int XrdXrootdProtocol::as_maxperlnk
staticprotected

◆ as_maxperreq

int XrdXrootdProtocol::as_maxperreq
staticprotected

◆ as_maxpersrv

int XrdXrootdProtocol::as_maxpersrv
staticprotected

◆ as_maxstalls

int XrdXrootdProtocol::as_maxstalls
staticprotected

◆ as_miniosz

int XrdXrootdProtocol::as_miniosz
staticprotected

◆ as_minsfsz

int XrdXrootdProtocol::as_minsfsz
staticprotected

◆ as_noaio

int XrdXrootdProtocol::as_noaio
staticprotected

◆ as_nosf

int XrdXrootdProtocol::as_nosf
staticprotected

◆ as_segsize

int XrdXrootdProtocol::as_segsize
staticprotected

◆ as_syncw

int XrdXrootdProtocol::as_syncw
staticprotected

◆ AuthProt

XrdSecProtocol* XrdXrootdProtocol::AuthProt
protected

◆ BPool

XrdBuffManager* XrdXrootdProtocol::BPool
staticprotected

◆ bytes2recv

long long XrdXrootdProtocol::bytes2recv
protected

◆ bytes2send

long long XrdXrootdProtocol::bytes2send
protected

◆ CapVer

unsigned char XrdXrootdProtocol::CapVer
protected

◆ CIA

XrdSecService* XrdXrootdProtocol::CIA
staticprotected

◆ Client

XrdSecEntity* XrdXrootdProtocol::Client
protected

◆ clientPV

int XrdXrootdProtocol::clientPV
protected

◆ clientRN

int XrdXrootdProtocol::clientRN
protected

◆ cumReadP

int XrdXrootdProtocol::cumReadP
protected

◆ cumReads

int XrdXrootdProtocol::cumReads
protected

◆ cumReadV

int XrdXrootdProtocol::cumReadV
protected

◆ cumSegsV

int XrdXrootdProtocol::cumSegsV
protected

◆ cumSegsW

int XrdXrootdProtocol::cumSegsW
protected

◆ cumWrites

int XrdXrootdProtocol::cumWrites
protected

◆ cumWritV

int XrdXrootdProtocol::cumWritV
protected

◆ DHS

XrdSecProtector* XrdXrootdProtocol::DHS
staticprotected

◆ digFS

XrdSfsFileSystem* XrdXrootdProtocol::digFS
staticprotected

◆ doPgIO

bool XrdXrootdProtocol::doPgIO
protected

◆ doTLS

char XrdXrootdProtocol::doTLS
protected

◆ doWrite

bool XrdXrootdProtocol::doWrite
protected

◆ doWriteC

bool XrdXrootdProtocol::doWriteC
protected

◆ eDest

XrdSysError& XrdXrootdProtocol::eDest
staticprotected

◆ Entity

XrdSecEntity XrdXrootdProtocol::Entity
protected

◆ fsFeatures

uint64_t XrdXrootdProtocol::fsFeatures
staticprotected

◆ FTab

XrdXrootdFileTable* XrdXrootdProtocol::FTab
protected

◆ gdCtl

struct XrdXrootdProtocol::GetDataCtl XrdXrootdProtocol::gdCtl
protected

◆ hailWait

int XrdXrootdProtocol::hailWait
staticprotected

◆ halfBSize

int XrdXrootdProtocol::halfBSize
protected

◆ hcMax

int XrdXrootdProtocol::hcMax
staticprotected

◆ hcNext

int XrdXrootdProtocol::hcNext
protected

◆ hcNow

int XrdXrootdProtocol::hcNow
protected

◆ hcPrev

int XrdXrootdProtocol::hcPrev
protected

◆ isActive

bool XrdXrootdProtocol::isActive
protected

◆ isBound

bool XrdXrootdProtocol::isBound
protected

◆ isDead

bool XrdXrootdProtocol::isDead
protected

◆ isNOP

bool XrdXrootdProtocol::isNOP
protected

◆ isRedir

char XrdXrootdProtocol::isRedir
staticprotected

◆ isTLS

bool XrdXrootdProtocol::isTLS
protected

◆ JobCKCGI

char XrdXrootdProtocol::JobCKCGI
staticprotected

◆ JobCKS

XrdXrootdJob* XrdXrootdProtocol::JobCKS
staticprotected

◆ JobCKT

char* XrdXrootdProtocol::JobCKT
staticprotected

◆ JobCKTLST

XrdOucTList* XrdXrootdProtocol::JobCKTLST
staticprotected

◆ JobLCL

char XrdXrootdProtocol::JobLCL
staticprotected

◆ keepT

time_t XrdXrootdProtocol::keepT
staticprotected

◆ LimitError

bool XrdXrootdProtocol::LimitError
staticprotected

◆ Link

XrdLink* XrdXrootdProtocol::Link
protected

◆ Locker

XrdXrootdFileLock* XrdXrootdProtocol::Locker
staticprotected

◆ maxBuffsz

int XrdXrootdProtocol::maxBuffsz
staticprotected

◆ maxPio

const int XrdXrootdProtocol::maxPio = 4
staticprotected

◆ maxStreams

const int XrdXrootdProtocol::maxStreams = 16
static

◆ maxTransz

int XrdXrootdProtocol::maxTransz
staticprotected

◆ miscrsv

char XrdXrootdProtocol::miscrsv[4]
protected

◆ Monitor

XrdXrootdMonitor::User XrdXrootdProtocol::Monitor
protected

◆ myAioReq

XrdXrootdAioReq* XrdXrootdProtocol::myAioReq
protected

◆ myBlast

int XrdXrootdProtocol::myBlast
protected

◆ myBlen

int XrdXrootdProtocol::myBlen
protected

◆ myBuff

char* XrdXrootdProtocol::myBuff
protected

◆ myCName

const char* XrdXrootdProtocol::myCName
staticprotected

◆ myCNlen

int XrdXrootdProtocol::myCNlen
staticprotected

◆ myEInfo

int XrdXrootdProtocol::myEInfo[2]

◆ myFile

XrdXrootdFile* XrdXrootdProtocol::myFile
protected

◆ myFlags

unsigned short XrdXrootdProtocol::myFlags
protected

◆ myGID

gid_t XrdXrootdProtocol::myGID
staticprotected

◆ myGName

const char* XrdXrootdProtocol::myGName
staticprotected

◆ myGNLen

int XrdXrootdProtocol::myGNLen
staticprotected

◆ myInst

const char* XrdXrootdProtocol::myInst
staticprotected

◆ myIOLen

int XrdXrootdProtocol::myIOLen
protected

◆ myOffset

long long XrdXrootdProtocol::myOffset

◆ myPID

int XrdXrootdProtocol::myPID
staticprotected

◆ myRole

int XrdXrootdProtocol::myRole
staticprotected

◆ myRolf

int XrdXrootdProtocol::myRolf
staticprotected

◆ mySID

unsigned int XrdXrootdProtocol::mySID
protected

◆ myStalls

int XrdXrootdProtocol::myStalls
protected

◆ myUID

uid_t XrdXrootdProtocol::myUID
staticprotected

◆ myUName

const char* XrdXrootdProtocol::myUName
staticprotected

◆ myUNLen

int XrdXrootdProtocol::myUNLen
staticprotected

◆ myWVBytes

long long XrdXrootdProtocol::myWVBytes

◆ Notify

char* XrdXrootdProtocol::Notify
staticprotected

◆ numFiles

int XrdXrootdProtocol::numFiles
protected

◆ numReadP

int XrdXrootdProtocol::numReadP
protected

◆ numReads

int XrdXrootdProtocol::numReads
protected

◆ numReadV

int XrdXrootdProtocol::numReadV
protected

◆ numSegsV

int XrdXrootdProtocol::numSegsV
protected

◆ numSegsW

int XrdXrootdProtocol::numSegsW
protected

◆ numWrites

int XrdXrootdProtocol::numWrites
protected

◆ numWritV

int XrdXrootdProtocol::numWritV
protected

◆ OD_Bypass

bool XrdXrootdProtocol::OD_Bypass
staticprotected

◆ OD_Redir

bool XrdXrootdProtocol::OD_Redir
staticprotected

◆ OD_Stall

int XrdXrootdProtocol::OD_Stall
staticprotected

◆ osFS

XrdSfsFileSystem* XrdXrootdProtocol::osFS
staticprotected

◆ PathID

short XrdXrootdProtocol::PathID
protected

◆ pioFirst

XrdXrootdPio* XrdXrootdProtocol::pioFirst
protected

◆ pioFree

XrdXrootdPio* XrdXrootdProtocol::pioFree
protected

◆ pioLast

XrdXrootdPio* XrdXrootdProtocol::pioLast
protected

◆ Port

int XrdXrootdProtocol::Port
staticprotected

◆ PrepareAlt

bool XrdXrootdProtocol::PrepareAlt
staticprotected

◆ PrepareCount

int XrdXrootdProtocol::PrepareCount
protected

◆ PrepareLimit

int XrdXrootdProtocol::PrepareLimit
staticprotected

◆ PrepID

XrdOucReqID* XrdXrootdProtocol::PrepID
staticprotected

◆ Protect

XrdSecProtect* XrdXrootdProtocol::Protect
protected

◆ ProtLink

XrdObject<XrdXrootdProtocol> XrdXrootdProtocol::ProtLink
private

◆ ProtStack

XrdObjectQ<XrdXrootdProtocol> XrdXrootdProtocol::ProtStack
staticprivate

◆ rdType

short XrdXrootdProtocol::rdType
protected

◆ readWait

int XrdXrootdProtocol::readWait
staticprotected

◆ Req_TLSData

const char XrdXrootdProtocol::Req_TLSData = 0x01
staticprotected

◆ Req_TLSGPFile

const char XrdXrootdProtocol::Req_TLSGPFile = 0x02
staticprotected

◆ Req_TLSLogin

const char XrdXrootdProtocol::Req_TLSLogin = 0x04
staticprotected

◆ Req_TLSSess

const char XrdXrootdProtocol::Req_TLSSess = 0x08
staticprotected

◆ Req_TLSTPC

const char XrdXrootdProtocol::Req_TLSTPC = 0x10
staticprotected

◆ ReqID

XrdXrootdReqID XrdXrootdProtocol::ReqID
protected

◆ Request

ClientRequest XrdXrootdProtocol::Request
protected

◆ reserved

int XrdXrootdProtocol::reserved
protected

◆ Response

XrdXrootdResponse XrdXrootdProtocol::Response
protected

◆ Resume

int(XrdXrootdProtocol::* XrdXrootdProtocol::Resume) ()
protected

Referenced by DoIt().

◆ reTry

XrdSysSemaphore* XrdXrootdProtocol::reTry
protected

◆ Route

struct XrdXrootdProtocol::RD_Table XrdXrootdProtocol::Route[RD_Num]
staticprotected

◆ RPList

XrdXrootdXPath XrdXrootdProtocol::RPList
staticprotected

◆ RQList

XrdXrootdXPath XrdXrootdProtocol::RQList
staticprotected

◆ RQLxist

int XrdXrootdProtocol::RQLxist
staticprotected

◆ rvSeq

unsigned char XrdXrootdProtocol::rvSeq
protected

◆ Sched

XrdScheduler* XrdXrootdProtocol::Sched
staticprotected

◆ SI

XrdXrootdStats* XrdXrootdProtocol::SI
staticprotected

◆ sigBuff

char XrdXrootdProtocol::sigBuff[64]
protected

◆ sigHere

bool XrdXrootdProtocol::sigHere
protected

◆ sigNeed

bool XrdXrootdProtocol::sigNeed
protected

◆ sigRead

bool XrdXrootdProtocol::sigRead
protected

◆ sigReq

SecurityRequest XrdXrootdProtocol::sigReq
protected

◆ sigReq2Ver

ClientRequest XrdXrootdProtocol::sigReq2Ver
protected

◆ sigWarn

bool XrdXrootdProtocol::sigWarn
protected

◆ Status

char XrdXrootdProtocol::Status
protected

◆ Stream

XrdXrootdProtocol* XrdXrootdProtocol::Stream[maxStreams]
protected

◆ streamMutex

XrdSysMutex XrdXrootdProtocol::streamMutex
protected

◆ tlsCap

char XrdXrootdProtocol::tlsCap
staticprotected

◆ tlsCtx

XrdTlsContext* XrdXrootdProtocol::tlsCtx
staticprotected

◆ tlsNot

char XrdXrootdProtocol::tlsNot
staticprotected

◆ tlsPort

int XrdXrootdProtocol::tlsPort
staticprotected

◆ totReadP

long long XrdXrootdProtocol::totReadP
protected

◆ TraceID

const char* XrdXrootdProtocol::TraceID
staticprotected

◆ usxMaxNsz

int XrdXrootdProtocol::usxMaxNsz
staticprotected

◆ usxMaxVsz

int XrdXrootdProtocol::usxMaxVsz
staticprotected

◆ usxParms

char* XrdXrootdProtocol::usxParms
staticprotected

◆ Window

int XrdXrootdProtocol::Window
staticprotected

◆ wvInfo

XrdXrootdWVInfo* XrdXrootdProtocol::wvInfo
protected

◆ wvSeq

unsigned char XrdXrootdProtocol::wvSeq
protected

◆ XPList

XrdXrootdXPath XrdXrootdProtocol::XPList
staticprotected

The documentation for this class was generated from the following file: