xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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  RC_Table
 
struct  RD_Table
 

Public Member Functions

void aioUpdate (int val)
 
void aioUpdReq (int val)
 
XrdSfsXioHandle Claim (const char *buff, int datasz, int minasz=0)
 
void DoIt ()
 
int do_WriteSpan ()
 
int getData (gdCallBack *gdcbP, const char *dtype, char *buff, int blen)
 
int getData (gdCallBack *gdcbP, const char *dtype, struct iovec *iov, int iovn)
 
int getDump (const char *dtype, int dlen)
 
int getPathID ()
 
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)
 
void StreamNOP ()
 
XrdSfsXioHandle Swap (const char *buff, XrdSfsXioHandle h=0)
 
XrdXrootdProtocolVerifyStream (int &rc, int pID, bool lok=true)
 
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 XrdXrootd::gdCallBack
virtual void gdFail ()
 
 gdCallBack ()
 
virtual ~gdCallBack ()
 
- 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
 
static int as_maxperlnk
 
static int as_maxperreq
 
static int as_maxpersrv
 
static int as_miniosz
 
static int as_minsfsz
 
static int as_seghalf
 
static int as_segsize
 
static int as_maxstalls
 
static short as_okstutter
 
static short as_timeout
 
static bool as_force
 
static bool as_aioOK
 
static bool as_nosf
 
static bool as_syncw
 

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
 
int myStalls
 
long long totReadP
 
XrdLinkLink
 
XrdBufferargp
 
XrdXrootdFileTableFTab
 
XrdXrootdMonitor::User Monitor
 
XrdNetPMark::HandlepmHandle
 
int clientPV
 
int clientRN
 
bool pmDone
 
char reserved [3]
 
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
 
RAtomic_int linkAioReq
 
XrdXrootdPgwCtlpgwCtl
 
char * myBuff
 
int myBlen
 
int myBlast
 
struct
XrdXrootdProtocol::GetDataCtl 
gdCtl
 
XrdXrootdWVInfowvInfo
 
int(XrdXrootdProtocol::* ResumePio )()
 
int(XrdXrootdProtocol::* Resume )()
 
XrdXrootd::IOParms IO
 
int hcPrev
 
int hcNext
 
int hcNow
 
int halfBSize
 
XrdSysMutex unbindMutex
 
XrdSysMutex streamMutex
 
XrdSysSemaphorereTry
 
XrdSysCondVar2endNote
 
XrdXrootdProtocolStream [maxStreams]
 
unsigned int mySID
 
bool isActive
 
bool isLinkWT
 
bool isNOP
 
bool isDead
 
XrdXrootdPiopioFirst
 
XrdXrootdPiopioLast
 
XrdXrootdPiopioFree
 
short PathID
 
bool newPio
 
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 XrdNetPMarkPMark
 
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 struct
XrdXrootdProtocol::RC_Table 
RouteClient
 
static int OD_Stall
 
static bool OD_Bypass
 
static bool OD_Redir
 
static bool CL_Redir
 
static bool isProxy
 
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 maxBuffsz
 
static int maxTransz
 
static XrdXrootdStatsSI
 
static RAtomic_int srvrAioOps
 
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_client, 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(XrdXrootdProtocol::*Invoke)(), int pathID)
 
int do_OffloadIO ()
 
int do_Open ()
 
bool do_PgClose (XrdXrootdFile *fP, int &rc)
 
int do_PgRead ()
 
int do_PgRIO ()
 
int do_PgWrite ()
 
bool do_PgWAIO (int &rc)
 
int do_PgWIO ()
 
int do_PgWIO (bool isFresh)
 
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 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_WriteAio ()
 
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 gdDone () override
 
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 getDataCont ()
 
int getDataIovCont ()
 
int getDumpCont ()
 
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 xbif (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 int xred_clnt (XrdOucStream &Config, char *hP[2], int rPort[2])
 
static bool xred_php (char *val, char *hP[2], int rPort[2], const char *what, bool optport=false)
 
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
< XrdXrootdProtocol
ProtStack
 

Friends

class XrdXrootdAdmin
 

Additional Inherited Members

- Public Attributes inherited from XrdJob
XrdJobNextJob
 
const char * Comment
 

Member Enumeration Documentation

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_client 
RD_open1 
RD_open2 
RD_open3 
RD_open4 
RD_Num 

Constructor & Destructor Documentation

XrdXrootdProtocol::XrdXrootdProtocol ( )
XrdXrootdProtocol::~XrdXrootdProtocol ( )
inline

References Cleanup().

Member Function Documentation

void XrdXrootdProtocol::aioUpdate ( int  val)
inline

References srvrAioOps.

void XrdXrootdProtocol::aioUpdReq ( int  val)
inline

References linkAioReq.

void XrdXrootdProtocol::Assign ( const XrdXrootdProtocol rhs)
private
static char* XrdXrootdProtocol::Buffer ( XrdSfsXioHandle  h,
int *  bsz 
)
static
static int XrdXrootdProtocol::CheckSum ( XrdOucStream ,
char **  ,
int   
)
staticprivate
static int XrdXrootdProtocol::CheckTLS ( const char *  tlsProt)
staticprivate
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.

void XrdXrootdProtocol::Cleanup ( )
private

Referenced by ~XrdXrootdProtocol().

static int XrdXrootdProtocol::Config ( const char *  fn)
staticprivate
static bool XrdXrootdProtocol::ConfigFS ( XrdOucEnv xEnv,
const char *  cfn 
)
staticprivate
static bool XrdXrootdProtocol::ConfigFS ( const char *  path,
XrdOucEnv xEnv,
const char *  cfn 
)
staticprivate
static bool XrdXrootdProtocol::ConfigGStream ( XrdOucEnv myEnv,
XrdOucEnv urEnv 
)
staticprivate
static bool XrdXrootdProtocol::ConfigMon ( XrdProtocol_Config pi,
XrdOucEnv xrootdEnv 
)
staticprivate
static int XrdXrootdProtocol::ConfigSecurity ( XrdOucEnv xEnv,
const char *  cfn 
)
staticprivate
static int XrdXrootdProtocol::Configure ( char *  parms,
XrdProtocol_Config pi 
)
static
int XrdXrootdProtocol::do_Auth ( )
private
int XrdXrootdProtocol::do_Bind ( )
private
int XrdXrootdProtocol::do_ChkPnt ( )
private
int XrdXrootdProtocol::do_ChkPntXeq ( )
private
int XrdXrootdProtocol::do_Chmod ( )
private
int XrdXrootdProtocol::do_CKsum ( int  canit)
private
int XrdXrootdProtocol::do_CKsum ( char *  algT,
const char *  Path,
char *  Opaque 
)
private
int XrdXrootdProtocol::do_Close ( )
private
int XrdXrootdProtocol::do_Dirlist ( )
private
int XrdXrootdProtocol::do_DirStat ( XrdSfsDirectory dp,
char *  pbuff,
char *  opaque 
)
private
int XrdXrootdProtocol::do_Endsess ( )
private
int XrdXrootdProtocol::do_FAttr ( )
private
int XrdXrootdProtocol::do_gpFile ( )
private
int XrdXrootdProtocol::do_Locate ( )
private
int XrdXrootdProtocol::do_Login ( )
private
int XrdXrootdProtocol::do_Mkdir ( )
private
int XrdXrootdProtocol::do_Mv ( )
private
int XrdXrootdProtocol::do_Offload ( int(XrdXrootdProtocol::*)()  Invoke,
int  pathID 
)
private
int XrdXrootdProtocol::do_OffloadIO ( )
private
int XrdXrootdProtocol::do_Open ( )
private
bool XrdXrootdProtocol::do_PgClose ( XrdXrootdFile fP,
int &  rc 
)
private
int XrdXrootdProtocol::do_PgRead ( )
private
int XrdXrootdProtocol::do_PgRIO ( )
private
bool XrdXrootdProtocol::do_PgWAIO ( int &  rc)
private
int XrdXrootdProtocol::do_PgWIO ( )
private

Referenced by gdDone().

int XrdXrootdProtocol::do_PgWIO ( bool  isFresh)
private
bool XrdXrootdProtocol::do_PgWIORetry ( int &  rc)
private
bool XrdXrootdProtocol::do_PgWIOSetup ( XrdXrootdPgwCtl pgwCtl)
private
int XrdXrootdProtocol::do_PgWrite ( )
private
int XrdXrootdProtocol::do_Ping ( )
private
int XrdXrootdProtocol::do_Prepare ( bool  isQuery = false)
private
int XrdXrootdProtocol::do_Protocol ( )
private
int XrdXrootdProtocol::do_Qconf ( )
private
int XrdXrootdProtocol::do_QconfCX ( XrdOucTokenizer qcargs,
char *  val 
)
private
int XrdXrootdProtocol::do_Qfh ( )
private
int XrdXrootdProtocol::do_Qopaque ( short  )
private
int XrdXrootdProtocol::do_Qspace ( )
private
int XrdXrootdProtocol::do_Query ( )
private
int XrdXrootdProtocol::do_Qxattr ( )
private
int XrdXrootdProtocol::do_Read ( )
private
int XrdXrootdProtocol::do_ReadAll ( )
private
int XrdXrootdProtocol::do_ReadNone ( int &  retc,
int &  pathID 
)
private
int XrdXrootdProtocol::do_ReadV ( )
private
int XrdXrootdProtocol::do_Rm ( )
private
int XrdXrootdProtocol::do_Rmdir ( )
private
int XrdXrootdProtocol::do_Set ( )
private
int XrdXrootdProtocol::do_Set_Mon ( XrdOucTokenizer setargs)
private
int XrdXrootdProtocol::do_Stat ( )
private
int XrdXrootdProtocol::do_Statx ( )
private
int XrdXrootdProtocol::do_Sync ( )
private
int XrdXrootdProtocol::do_Truncate ( )
private
int XrdXrootdProtocol::do_Write ( )
private
int XrdXrootdProtocol::do_WriteAio ( )
private
int XrdXrootdProtocol::do_WriteAll ( )
private
int XrdXrootdProtocol::do_WriteCont ( )
private
int XrdXrootdProtocol::do_WriteNone ( )
private
int XrdXrootdProtocol::do_WriteNone ( int  pathid,
XErrorCode  ec = kXR_noErrorYet,
const char *  emsg = 0 
)
private
int XrdXrootdProtocol::do_WriteNoneMsg ( )
private
int XrdXrootdProtocol::do_WriteSpan ( )
int XrdXrootdProtocol::do_WriteV ( )
private
int XrdXrootdProtocol::do_WriteVec ( )
private
void XrdXrootdProtocol::DoIt ( )
inlinevirtual

Implements XrdJob.

References Resume.

int XrdXrootdProtocol::fsError ( int  rc,
char  opc,
XrdOucErrInfo myError,
const char *  Path,
char *  Cgi 
)
private
int XrdXrootdProtocol::fsOvrld ( char  opc,
const char *  Path,
char *  Cgi 
)
private
int XrdXrootdProtocol::fsRedirNoEnt ( const char *  eMsg,
char *  Cgi,
int  popt 
)
private
int XrdXrootdProtocol::gdDone ( )
inlineoverrideprivatevirtual

Implements XrdXrootd::gdCallBack.

References do_PgWIO().

int XrdXrootdProtocol::getBuff ( const int  isRead,
int  Quantum 
)
private
char* XrdXrootdProtocol::getCksType ( char *  opaque,
char *  cspec = 0,
int  cslen = 0 
)
private
int XrdXrootdProtocol::getData ( gdCallBack gdcbP,
const char *  dtype,
char *  buff,
int  blen 
)
int XrdXrootdProtocol::getData ( gdCallBack gdcbP,
const char *  dtype,
struct iovec *  iov,
int  iovn 
)
int XrdXrootdProtocol::getData ( const char *  dtype,
char *  buff,
int  blen 
)
private
int XrdXrootdProtocol::getDataCont ( )
private
int XrdXrootdProtocol::getDataIovCont ( )
private
int XrdXrootdProtocol::getDump ( const char *  dtype,
int  dlen 
)
int XrdXrootdProtocol::getDumpCont ( )
private
int XrdXrootdProtocol::getPathID ( )
inline

References PathID.

static unsigned int XrdXrootdProtocol::getSID ( )
staticprotected
bool XrdXrootdProtocol::logLogin ( bool  xauth = false)
private
static int XrdXrootdProtocol::mapMode ( int  mode)
staticprivate
XrdProtocol* XrdXrootdProtocol::Match ( XrdLink lp)
virtual

Implements XrdProtocol.

void XrdXrootdProtocol::MonAuth ( )
protected
XrdXrootdProtocol XrdXrootdProtocol::operator= ( const XrdXrootdProtocol rhs)
delete
int XrdXrootdProtocol::Process ( XrdLink lp)
virtual

Implements XrdProtocol.

Reimplemented in XrdXrootdTransit.

int XrdXrootdProtocol::Process2 ( )
int XrdXrootdProtocol::ProcFAttr ( char *  faPath,
char *  faCgi,
char *  faArgs,
int  faALen,
int  faCode,
bool  doAChk 
)
private
int XrdXrootdProtocol::ProcSig ( )
static void XrdXrootdProtocol::Reclaim ( XrdSfsXioHandle  h)
static
void XrdXrootdProtocol::Recycle ( XrdLink lp,
int  consec,
const char *  reason 
)
virtual

Implements XrdProtocol.

Reimplemented in XrdXrootdTransit.

void XrdXrootdProtocol::Reset ( )
private
static int XrdXrootdProtocol::rpCheck ( char *  fn,
char **  opaque 
)
staticprivate
int XrdXrootdProtocol::rpEmsg ( const char *  op,
char *  fn 
)
private
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.

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.

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.

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

Referenced by XrdXrootdTransit::setSF().

static int XrdXrootdProtocol::Squash ( char *  )
staticprivate
int XrdXrootdProtocol::StatGen ( struct stat buf,
char *  xxBuff,
int  xxLen,
bool  xa = false 
)
private
int XrdXrootdProtocol::Stats ( char *  buff,
int  blen,
int  do_sync = 0 
)
virtual

Implements XrdProtocol.

void XrdXrootdProtocol::StreamNOP ( )
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.

XrdXrootdProtocol* XrdXrootdProtocol::VerifyStream ( int &  rc,
int  pID,
bool  lok = true 
)
int XrdXrootdProtocol::vpEmsg ( const char *  op,
char *  fn 
)
private
static int XrdXrootdProtocol::xapath ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xasync ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xbif ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xcksum ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xdig ( XrdOucStream Config)
staticprivate
int XrdXrootdProtocol::XeqFADel ( XrdSfsFACtl ctl,
char *  faVars,
int  faVLen 
)
private
int XrdXrootdProtocol::XeqFAGet ( XrdSfsFACtl ctl,
char *  faVars,
int  faVLen 
)
private
int XrdXrootdProtocol::XeqFALsd ( XrdSfsFACtl ctl)
private
int XrdXrootdProtocol::XeqFALst ( XrdSfsFACtl ctl)
private
int XrdXrootdProtocol::XeqFASet ( XrdSfsFACtl ctl,
char *  faVars,
int  faVLen 
)
private
static int XrdXrootdProtocol::xexp ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xexpdo ( char *  path,
int  popt = 0 
)
staticprivate
static int XrdXrootdProtocol::xfsl ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xfsL ( XrdOucStream Config,
char *  val,
int  lix 
)
staticprivate
static int XrdXrootdProtocol::xfso ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xgpf ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xlimit ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xlog ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xmon ( XrdOucStream Config)
staticprivate
static char* XrdXrootdProtocol::xmondest ( const char *  what,
char *  val 
)
staticprivate
static int XrdXrootdProtocol::xmongs ( XrdOucStream Config)
staticprivate
static bool XrdXrootdProtocol::xmongsend ( XrdOucStream Config,
char *  val,
char *&  dest,
int &  opt,
int &  fmt,
int &  hdr 
)
staticprivate
static int XrdXrootdProtocol::xprep ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xred ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xred_clnt ( XrdOucStream Config,
char *  hP[2],
int  rPort[2] 
)
staticprivate
static bool XrdXrootdProtocol::xred_php ( char *  val,
char *  hP[2],
int  rPort[2],
const char *  what,
bool  optport = false 
)
staticprivate
static void XrdXrootdProtocol::xred_set ( RD_func  func,
char *  rHost[2],
int  rPort[2] 
)
staticprivate
static bool XrdXrootdProtocol::xred_xok ( int  func,
char *  rHost[2],
int  rPort[2] 
)
staticprivate
static int XrdXrootdProtocol::xsecl ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xtls ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xtlsr ( XrdOucStream Config)
staticprivate
static int XrdXrootdProtocol::xtrace ( XrdOucStream Config)
staticprivate

Friends And Related Function Documentation

friend class XrdXrootdAdmin
friend

Member Data Documentation

bool XrdXrootdProtocol::ableTLS
protected
XrdNetSocket* XrdXrootdProtocol::AdminSock
staticprotected
char* XrdXrootdProtocol::AppName
protected
XrdBuffer* XrdXrootdProtocol::argp
protected
bool XrdXrootdProtocol::as_aioOK
static
bool XrdXrootdProtocol::as_force
static
int XrdXrootdProtocol::as_maxperlnk
static
int XrdXrootdProtocol::as_maxperreq
static
int XrdXrootdProtocol::as_maxpersrv
static
int XrdXrootdProtocol::as_maxstalls
static
int XrdXrootdProtocol::as_miniosz
static
int XrdXrootdProtocol::as_minsfsz
static
bool XrdXrootdProtocol::as_nosf
static
short XrdXrootdProtocol::as_okstutter
static
int XrdXrootdProtocol::as_seghalf
static
int XrdXrootdProtocol::as_segsize
static
bool XrdXrootdProtocol::as_syncw
static
short XrdXrootdProtocol::as_timeout
static
XrdSecProtocol* XrdXrootdProtocol::AuthProt
protected
XrdBuffManager* XrdXrootdProtocol::BPool
staticprotected
unsigned char XrdXrootdProtocol::CapVer
protected
XrdSecService* XrdXrootdProtocol::CIA
staticprotected
bool XrdXrootdProtocol::CL_Redir
staticprotected
XrdSecEntity* XrdXrootdProtocol::Client
protected
int XrdXrootdProtocol::clientPV
protected
int XrdXrootdProtocol::clientRN
protected
int XrdXrootdProtocol::cumReadP
protected
int XrdXrootdProtocol::cumReads
protected
int XrdXrootdProtocol::cumReadV
protected
int XrdXrootdProtocol::cumSegsV
protected
int XrdXrootdProtocol::cumSegsW
protected
int XrdXrootdProtocol::cumWrites
protected
int XrdXrootdProtocol::cumWritV
protected
XrdSecProtector* XrdXrootdProtocol::DHS
staticprotected
XrdSfsFileSystem* XrdXrootdProtocol::digFS
staticprotected
char XrdXrootdProtocol::doTLS
protected
XrdSysError& XrdXrootdProtocol::eDest
staticprotected
XrdSysCondVar2* XrdXrootdProtocol::endNote
protected
XrdSecEntity XrdXrootdProtocol::Entity
protected
uint64_t XrdXrootdProtocol::fsFeatures
staticprotected
XrdXrootdFileTable* XrdXrootdProtocol::FTab
protected
struct XrdXrootdProtocol::GetDataCtl XrdXrootdProtocol::gdCtl
protected
int XrdXrootdProtocol::hailWait
staticprotected
int XrdXrootdProtocol::halfBSize
protected
int XrdXrootdProtocol::hcMax
staticprotected
int XrdXrootdProtocol::hcNext
protected
int XrdXrootdProtocol::hcNow
protected
int XrdXrootdProtocol::hcPrev
protected
XrdXrootd::IOParms XrdXrootdProtocol::IO
protected
bool XrdXrootdProtocol::isActive
protected
bool XrdXrootdProtocol::isDead
protected
bool XrdXrootdProtocol::isLinkWT
protected
bool XrdXrootdProtocol::isNOP
protected
bool XrdXrootdProtocol::isProxy
staticprotected
char XrdXrootdProtocol::isRedir
staticprotected
bool XrdXrootdProtocol::isTLS
protected
char XrdXrootdProtocol::JobCKCGI
staticprotected
XrdXrootdJob* XrdXrootdProtocol::JobCKS
staticprotected
char* XrdXrootdProtocol::JobCKT
staticprotected
XrdOucTList* XrdXrootdProtocol::JobCKTLST
staticprotected
char XrdXrootdProtocol::JobLCL
staticprotected
time_t XrdXrootdProtocol::keepT
staticprotected
bool XrdXrootdProtocol::LimitError
staticprotected
XrdLink* XrdXrootdProtocol::Link
protected
RAtomic_int XrdXrootdProtocol::linkAioReq
protected

Referenced by aioUpdReq().

XrdXrootdFileLock* XrdXrootdProtocol::Locker
staticprotected
int XrdXrootdProtocol::maxBuffsz
staticprotected
const int XrdXrootdProtocol::maxPio = 4
staticprotected
const int XrdXrootdProtocol::maxStreams = 16
static
int XrdXrootdProtocol::maxTransz
staticprotected
XrdXrootdMonitor::User XrdXrootdProtocol::Monitor
protected
int XrdXrootdProtocol::myBlast
protected
int XrdXrootdProtocol::myBlen
protected
char* XrdXrootdProtocol::myBuff
protected
const char* XrdXrootdProtocol::myCName
staticprotected
int XrdXrootdProtocol::myCNlen
staticprotected
gid_t XrdXrootdProtocol::myGID
staticprotected
const char* XrdXrootdProtocol::myGName
staticprotected
int XrdXrootdProtocol::myGNLen
staticprotected
const char* XrdXrootdProtocol::myInst
staticprotected
int XrdXrootdProtocol::myPID
staticprotected
int XrdXrootdProtocol::myRole
staticprotected
int XrdXrootdProtocol::myRolf
staticprotected
unsigned int XrdXrootdProtocol::mySID
protected
int XrdXrootdProtocol::myStalls
protected
uid_t XrdXrootdProtocol::myUID
staticprotected
const char* XrdXrootdProtocol::myUName
staticprotected
int XrdXrootdProtocol::myUNLen
staticprotected
bool XrdXrootdProtocol::newPio
protected
char* XrdXrootdProtocol::Notify
staticprotected
int XrdXrootdProtocol::numFiles
protected
int XrdXrootdProtocol::numReadP
protected
int XrdXrootdProtocol::numReads
protected
int XrdXrootdProtocol::numReadV
protected
int XrdXrootdProtocol::numSegsV
protected
int XrdXrootdProtocol::numSegsW
protected
int XrdXrootdProtocol::numWrites
protected
int XrdXrootdProtocol::numWritV
protected
bool XrdXrootdProtocol::OD_Bypass
staticprotected
bool XrdXrootdProtocol::OD_Redir
staticprotected
int XrdXrootdProtocol::OD_Stall
staticprotected
XrdSfsFileSystem* XrdXrootdProtocol::osFS
staticprotected
short XrdXrootdProtocol::PathID
protected

Referenced by getPathID().

XrdXrootdPgwCtl* XrdXrootdProtocol::pgwCtl
protected
XrdXrootdPio* XrdXrootdProtocol::pioFirst
protected
XrdXrootdPio* XrdXrootdProtocol::pioFree
protected
XrdXrootdPio* XrdXrootdProtocol::pioLast
protected
XrdNetPMark* XrdXrootdProtocol::PMark
staticprotected
bool XrdXrootdProtocol::pmDone
protected
XrdNetPMark::Handle* XrdXrootdProtocol::pmHandle
protected
int XrdXrootdProtocol::Port
staticprotected
bool XrdXrootdProtocol::PrepareAlt
staticprotected
int XrdXrootdProtocol::PrepareCount
protected
int XrdXrootdProtocol::PrepareLimit
staticprotected
XrdOucReqID* XrdXrootdProtocol::PrepID
staticprotected
XrdSecProtect* XrdXrootdProtocol::Protect
protected
XrdObject<XrdXrootdProtocol> XrdXrootdProtocol::ProtLink
private
XrdObjectQ<XrdXrootdProtocol> XrdXrootdProtocol::ProtStack
staticprivate
short XrdXrootdProtocol::rdType
protected
int XrdXrootdProtocol::readWait
staticprotected
const char XrdXrootdProtocol::Req_TLSData = 0x01
staticprotected
const char XrdXrootdProtocol::Req_TLSGPFile = 0x02
staticprotected
const char XrdXrootdProtocol::Req_TLSLogin = 0x04
staticprotected
const char XrdXrootdProtocol::Req_TLSSess = 0x08
staticprotected
const char XrdXrootdProtocol::Req_TLSTPC = 0x10
staticprotected
XrdXrootdReqID XrdXrootdProtocol::ReqID
protected
ClientRequest XrdXrootdProtocol::Request
protected
char XrdXrootdProtocol::reserved[3]
protected
XrdXrootdResponse XrdXrootdProtocol::Response
protected
int(XrdXrootdProtocol::* XrdXrootdProtocol::Resume)()
protected

Referenced by DoIt().

int(XrdXrootdProtocol::* XrdXrootdProtocol::ResumePio)()
protected
XrdSysSemaphore* XrdXrootdProtocol::reTry
protected
struct XrdXrootdProtocol::RD_Table XrdXrootdProtocol::Route[RD_Num]
staticprotected
struct XrdXrootdProtocol::RC_Table XrdXrootdProtocol::RouteClient
staticprotected
XrdXrootdXPath XrdXrootdProtocol::RPList
staticprotected
XrdXrootdXPath XrdXrootdProtocol::RQList
staticprotected
int XrdXrootdProtocol::RQLxist
staticprotected
unsigned char XrdXrootdProtocol::rvSeq
protected
XrdScheduler* XrdXrootdProtocol::Sched
staticprotected
XrdXrootdStats* XrdXrootdProtocol::SI
staticprotected
char XrdXrootdProtocol::sigBuff[64]
protected
bool XrdXrootdProtocol::sigHere
protected
bool XrdXrootdProtocol::sigNeed
protected
bool XrdXrootdProtocol::sigRead
protected
SecurityRequest XrdXrootdProtocol::sigReq
protected
ClientRequest XrdXrootdProtocol::sigReq2Ver
protected
bool XrdXrootdProtocol::sigWarn
protected
RAtomic_int XrdXrootdProtocol::srvrAioOps
staticprotected

Referenced by aioUpdate().

char XrdXrootdProtocol::Status
protected
XrdXrootdProtocol* XrdXrootdProtocol::Stream[maxStreams]
protected
XrdSysMutex XrdXrootdProtocol::streamMutex
protected
char XrdXrootdProtocol::tlsCap
staticprotected
XrdTlsContext* XrdXrootdProtocol::tlsCtx
staticprotected
char XrdXrootdProtocol::tlsNot
staticprotected
int XrdXrootdProtocol::tlsPort
staticprotected
long long XrdXrootdProtocol::totReadP
protected
const char* XrdXrootdProtocol::TraceID
staticprotected
XrdSysMutex XrdXrootdProtocol::unbindMutex
protected
int XrdXrootdProtocol::usxMaxNsz
staticprotected
int XrdXrootdProtocol::usxMaxVsz
staticprotected
char* XrdXrootdProtocol::usxParms
staticprotected
int XrdXrootdProtocol::Window
staticprotected
XrdXrootdWVInfo* XrdXrootdProtocol::wvInfo
protected
unsigned char XrdXrootdProtocol::wvSeq
protected
XrdXrootdXPath XrdXrootdProtocol::XPList
staticprotected

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