|
XRootD
|
#include <XrdXrootdTransit.hh>
Inheritance diagram for XrdXrootdTransit:
Collaboration diagram for XrdXrootdTransit:Public Member Functions | |
| XrdXrootdTransit () | |
| Constructor & Destructor. More... | |
| virtual | ~XrdXrootdTransit () |
| bool | Disc () |
| Handle dismantlement. More... | |
| void | Proceed () |
| Resume processing after a waitresp completion. More... | |
| int | Process (XrdLink *lp) |
| Handle link activation (replaces parent activation). More... | |
| void | Recycle (XrdLink *lp, int consec, const char *reason) |
| Handle link shutdown. More... | |
| void | Redrive () |
| Redrive a request after a wait. More... | |
| bool | Run (const char *xreqP, char *xdataP=0, int xdataL=0) |
| Inject an xrootd request into the protocol stack. More... | |
| int | Send (int rcode, const struct iovec *ioVec, int ioNum, int ioLen) |
| Handle request data response. More... | |
| int | Send (long long offset, int dlen, int fdnum) |
| Handle request sendfile response. More... | |
| int | Send (XrdOucSFVec *sfvec, int sfvnum, int dlen) |
| int | setSF (kXR_char *fhandle, bool seton=false) |
| Set sendfile() enablement. More... | |
| void | SetWait (int wtime, bool notify=false) |
| Set maximum wait time. More... | |
Public Member Functions inherited from XrdXrootd::Bridge | |
| Bridge () | |
| Constructor & Destructor. More... | |
Public Member Functions inherited from XrdXrootdProtocol | |
| XrdXrootdProtocol () | |
| ~XrdXrootdProtocol () | |
| void | aioUpdate (int val) |
| void | aioUpdReq (int val) |
| XrdSfsXioHandle | Claim (const char *buff, int datasz, int minasz=0) override |
| int | do_WriteSpan () |
| void | DoIt () override |
| 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 () |
| XrdProtocol * | Match (XrdLink *lp) override |
| XrdXrootdProtocol | operator= (const XrdXrootdProtocol &rhs)=delete |
| int | Process2 () |
| int | ProcSig () |
| int | SendFile (int fildes) override |
| int | SendFile (XrdOucSFVec *sfvec, int sfvnum) override |
| void | SetFD (int fildes) override |
| int | Stats (char *buff, int blen, int do_sync=0) override |
| void | StreamNOP () |
| XrdSfsXioHandle | Swap (const char *buff, XrdSfsXioHandle h=0) override |
| XrdXrootdProtocol * | VerifyStream (int &rc, int pID, bool lok=true) |
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 | |
| gdCallBack () | |
| virtual | ~gdCallBack () |
| virtual void | gdFail () |
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 XrdXrootdTransit * | Alloc (XrdXrootd::Bridge::Result *respP, XrdLink *linkP, XrdSecEntity *seceP, const char *nameP, const char *protP) |
| Get a new transit object. More... | |
| static int | Attn (XrdLink *lP, short *theSID, int rcode, const struct iovec *ioVec, int ioNum, int ioLen) |
| Handle attention response (i.e. async response) More... | |
| static void | Init (XrdScheduler *schedP, int qMax, int qTTL) |
| Perform one-time initialization. More... | |
| static const char * | ReqTable () |
| Initialize the valid request table. More... | |
Static Public Member Functions inherited from XrdXrootd::Bridge | |
| static Bridge * | Login (Result *rsltP, XrdLink *linkP, XrdSecEntity *seceP, const char *nameP, const char *protP) |
Static Public Member Functions inherited from XrdXrootdProtocol | |
| 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) |
Additional Inherited Members | |
Public Attributes inherited from XrdJob | |
| const char * | Comment |
| XrdJob * | NextJob |
Static Public Attributes inherited from XrdXrootdProtocol | |
| static bool | as_aioOK = true |
| static bool | as_force = false |
| static int | as_maxperlnk = 8 |
| static int | as_maxperreq = 8 |
| static int | as_maxpersrv = 4096 |
| static int | as_maxstalls = 4 |
| static int | as_miniosz = 98304 |
| static int | as_minsfsz = 8192 |
| static bool | as_nosf = false |
| static short | as_okstutter = 1 |
| static int | as_seghalf = 32768 |
| static int | as_segsize = 65536 |
| static bool | as_syncw = false |
| static short | as_timeout = 45 |
| static const int | maxStreams = 16 |
Protected Member Functions inherited from XrdXrootd::Bridge | |
| virtual | ~Bridge () |
Protected Member Functions inherited from XrdXrootdProtocol | |
| void | MonAuth () |
| bool | RequestClose () |
| int | SetSF (kXR_char *fhandle, bool seton=false) |
Static Protected Member Functions inherited from XrdXrootdProtocol | |
| static bool | CloseRequestCb (void *cbarg) |
| static unsigned int | getSID () |
Protected Attributes inherited from XrdXrootdProtocol | |
| bool | ableTLS |
| char * | AppName |
| XrdBuffer * | argp |
| XrdSecProtocol * | AuthProt |
| XrdSysSemaphore * | boundRecycle |
| unsigned char | CapVer |
| XrdSecEntity * | Client |
| int | clientPV |
| int | clientRN |
| bool | CloseRequested |
| int | cumReadP |
| int | cumReads |
| int | cumReadV |
| int | cumSegsV |
| int | cumSegsW |
| int | cumWrites |
| int | cumWritV |
| char | doTLS |
| XrdSysCondVar2 * | endNote |
| XrdSecEntity | Entity |
| XrdXrootdFileTable * | FTab |
| struct XrdXrootdProtocol::GetDataCtl | gdCtl |
| int | halfBSize |
| int | hcNext |
| int | hcNow |
| int | hcPrev |
| XrdXrootd::IOParms | IO |
| bool | isActive |
| bool | isLinkWT |
| bool | isNOP |
| bool | isTLS |
| XrdLink * | Link |
| RAtomic_int | linkAioReq |
| XrdXrootdMonitor::User | Monitor |
| int | myBlast |
| int | myBlen |
| char * | myBuff |
| unsigned int | mySID |
| int | myStalls |
| bool | newPio |
| int | numFiles |
| int | numReadP |
| int | numReads |
| int | numReadV |
| int | numSegsV |
| int | numSegsW |
| int | numWrites |
| int | numWritV |
| short | PathID |
| XrdXrootdPgwCtl * | pgwCtl |
| XrdXrootdPio * | pioFirst |
| XrdXrootdPio * | pioFree |
| XrdXrootdPio * | pioLast |
| bool | pmDone |
| XrdNetPMark::Handle * | pmHandle |
| int | PrepareCount |
| XrdSecProtect * | Protect |
| short | rdType |
| XrdXrootdReqID | ReqID |
| ClientRequest | Request |
| char | reserved [3] |
| XrdXrootdResponse | Response |
| int(XrdXrootdProtocol::* | Resume )() |
| int(XrdXrootdProtocol::* | ResumePio )() |
| XrdSysSemaphore * | reTry |
| unsigned char | rvSeq |
| char | sigBuff [64] |
| bool | sigHere |
| bool | sigNeed |
| bool | sigRead |
| SecurityRequest | sigReq |
| ClientRequest | sigReq2Ver |
| bool | sigWarn |
| char | Status |
| XrdXrootdProtocol * | Stream [maxStreams] |
| XrdSysMutex | streamMutex |
| long long | totReadP |
| XrdSysMutex | unbindMutex |
| XrdXrootdWVInfo * | wvInfo |
| unsigned char | wvSeq |
Static Protected Attributes inherited from XrdXrootdProtocol | |
| static XrdNetSocket * | AdminSock = 0 |
| static XrdBuffManager * | BPool |
| static XrdSecService * | CIA = 0 |
| static bool | CL_Redir = false |
| static XrdSecProtector * | DHS = 0 |
| static XrdSfsFileSystem * | digFS = 0 |
| static XrdSysError & | eDest = XrdXrootd::eLog |
| static uint64_t | fsFeatures = 0 |
| static int | hailWait |
| static int | hcMax = 28657 |
| static bool | isProxy = false |
| static char | isRedir = 0 |
| static char | JobCKCGI =0 |
| static XrdXrootdJob * | JobCKS = 0 |
| static char * | JobCKT = 0 |
| static XrdOucTList * | JobCKTLST = 0 |
| static char | JobLCL = 0 |
| static time_t | keepT = 86400 |
| static bool | LimitError = true |
| static XrdXrootdFileLock * | Locker |
| static int | maxBuffsz |
| static const int | maxPio = 4 |
| static int | maxReadv_ior |
| static int | maxTransz = 262144 |
| static const char * | myCName = 0 |
| static int | myCNlen = 0 |
| static gid_t | myGID = 0 |
| static const char * | myGName = "?" |
| static int | myGNLen = 1 |
| static const char * | myInst = 0 |
| static int | myPID = static_cast<int>(getpid()) |
| static int | myRole = 0 |
| static int | myRolf = 0 |
| static uid_t | myUID = 0 |
| static const char * | myUName = "?" |
| static int | myUNLen = 1 |
| static char * | Notify = 0 |
| static bool | OD_Bypass = false |
| static bool | OD_Redir = false |
| static int | OD_Stall = 33 |
| static XrdSfsFileSystem * | osFS |
| static XrdNetPMark * | PMark = 0 |
| static int | Port |
| static bool | PrepareAlt = false |
| static int | PrepareLimit = -1 |
| static XrdOucReqID * | PrepID = 0 |
| static int | readWait |
| static int | redirIPHold = 8*60*60 |
| static XrdXrootdRedirPI * | RedirPI = 0 |
| 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 struct XrdXrootdProtocol::RD_Table | Route [RD_Num] |
| static struct XrdXrootdProtocol::RC_Table | RouteClient |
| static XrdXrootdXPath | RPList |
| static XrdXrootdXPath | RQList |
| static int | RQLxist = 0 |
| static XrdScheduler * | Sched |
| static XrdXrootdStats * | SI |
| static RAtomic_int | srvrAioOps = {0} |
| static char | tlsCap = 0 |
| static XrdTlsContext * | tlsCtx = 0 |
| static char | tlsNot = 0 |
| static int | tlsPort = 0 |
| static const char * | TraceID = "Protocol" |
| static int | usxMaxNsz = kXR_faMaxNlen |
| static int | usxMaxVsz = kXR_faMaxVlen |
| static char * | usxParms = 0 |
| static int | Window |
| static XrdXrootdXPath | XPList |
Definition at line 55 of file XrdXrootdTransit.hh.
|
inline |
Constructor & Destructor.
Definition at line 162 of file XrdXrootdTransit.hh.
Referenced by Alloc().
Here is the caller graph for this function:
|
inlinevirtual |
Definition at line 169 of file XrdXrootdTransit.hh.
|
static |
Get a new transit object.
Definition at line 77 of file XrdXrootdTransit.cc.
References XrdXrootdTransit(), Init(), and XrdObjectQ< T >::Pop().
Referenced by XrdXrootd::Bridge::Login().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Handle attention response (i.e. async response)
Definition at line 97 of file XrdXrootdTransit.cc.
References XrdXrootdTransPend::bridge, XrdLink::ID, XrdXrootdTransPend::Remove(), and TRACE.
Referenced by XrdXrootdResponse::Send().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Handle dismantlement.
Implements XrdXrootd::Bridge.
Definition at line 175 of file XrdXrootdTransit.cc.
References XrdSysCondVar::Broadcast(), XrdXrootdProtocol::Link, XrdObjectQ< T >::Push(), XrdXrootdProtocol::Recycle(), and XrdLink::setProtocol().
Here is the call graph for this function:
|
static |
Perform one-time initialization.
Definition at line 234 of file XrdXrootdTransit.cc.
References XrdOfsPrepGPIReal::schedP, XrdObjectQ< T >::Set(), TRACE_MEM, and XrdXrootdTrace.
Referenced by Alloc(), and XrdXrootdProtocol::Configure().
Here is the call graph for this function:
Here is the caller graph for this function:| void XrdXrootdTransit::Proceed | ( | ) |
Resume processing after a waitresp completion.
Definition at line 353 of file XrdXrootdTransit.cc.
References XrdLink::Close(), XrdLink::Enable(), XrdXrootdProtocol::Link, and Process().
Here is the call graph for this function:
|
virtual |
Handle link activation (replaces parent activation).
Reimplemented from XrdXrootdProtocol.
Definition at line 372 of file XrdXrootdTransit.cc.
References XrdSysCondVar::Broadcast(), XrdXrootdProtocol::Process(), XrdProtocol::Process(), XrdXrootdProtocol::Process2(), and XrdXrootdProtocol::Resume.
Referenced by Proceed().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Handle link shutdown.
Reimplemented from XrdXrootdProtocol.
Definition at line 422 of file XrdXrootdTransit.cc.
References XrdSysCondVar::Broadcast(), XrdScheduler::Cancel(), XrdXrootdTransPend::Clear(), EMSG, XrdObjectQ< T >::Push(), XrdXrootdProtocol::Recycle(), XrdProtocol::Recycle(), XrdXrootdProtocol::Sched, and TRACEP.
Here is the call graph for this function:| void XrdXrootdTransit::Redrive | ( | void | ) |
Redrive a request after a wait.
Definition at line 472 of file XrdXrootdTransit.cc.
References XrdSysCondVar::Broadcast(), XrdLink::Close(), XrdLink::Enable(), Fatal(), kXR_error, kXR_NoMemory, XrdXrootdProtocol::Link, XrdProtocol::Process(), XrdXrootdProtocol::Process2(), Send(), TRACEP, and XrdSysCondVar::Wait().
Here is the call graph for this function:
|
static |
Initialize the valid request table.
Definition at line 557 of file XrdXrootdTransit.cc.
References kXR_auth, kXR_chmod, kXR_close, kXR_dirlist, KXR_INDEX, kXR_locate, kXR_mkdir, kXR_mv, kXR_open, kXR_prepare, kXR_protocol, kXR_query, kXR_read, kXR_readv, kXR_rm, kXR_rmdir, kXR_set, kXR_stat, kXR_statx, kXR_sync, kXR_truncate, and kXR_write.
|
virtual |
Inject an xrootd request into the protocol stack.
| xreqP | xrootd request header |
| xdataP | xrootd request data (optional) |
| xdataL | xrootd request data length |
Implements XrdXrootd::Bridge.
Definition at line 621 of file XrdXrootdTransit.cc.
References XrdXrootdProtocol::argp, XrdBuffer::buff, ClientRequestHdr::dlen, ClientRequest::header, kXR_ArgInvalid, kXR_auth, kXR_NoMemory, kXR_truncate, kXR_Unsupported, kXR_write, XrdXrootdProtocol::myBlen, XrdXrootdProtocol::myBuff, XrdXrootdProtocol::Process2(), XrdXrootdProtocol::Request, ClientRequestHdr::requestid, XrdXrootdProtocol::Response, XrdXrootdProtocol::Resume, XrdXrootdResponse::Set(), ClientRequestHdr::streamid, and TRACEP.
Here is the call graph for this function:| int XrdXrootdTransit::Send | ( | int | rcode, |
| const struct iovec * | ioVec, | ||
| int | ioNum, | ||
| int | ioLen | ||
| ) |
Handle request data response.
Definition at line 723 of file XrdXrootdTransit.cc.
References XrdXrootd::Bridge::Result::Data(), XrdXrootd::Bridge::Result::Done(), eMsg, XrdXrootd::Bridge::Result::Error(), XrdXrootd::Bridge::Result::Free(), ClientRequest::header, kXR_error, kXR_ok, kXR_oksofar, kXR_redirect, kXR_ServerError, kXR_wait, kXR_waitresp, XrdXrootdProtocol::Link, XrdXrootd::Bridge::Result::Redir(), XrdXrootdProtocol::Request, ClientRequestHdr::requestid, ClientRequestHdr::streamid, and XRD_GETNUM.
Referenced by Redrive(), and XrdXrootdResponse::Send().
Here is the call graph for this function:
Here is the caller graph for this function:| int XrdXrootdTransit::Send | ( | long long | offset, |
| int | dlen, | ||
| int | fdnum | ||
| ) |
Handle request sendfile response.
Definition at line 775 of file XrdXrootdTransit.cc.
References XrdXrootd::Bridge::Result::File(), ClientRequest::header, XrdXrootdProtocol::Link, XrdXrootdProtocol::Request, ClientRequestHdr::requestid, and ClientRequestHdr::streamid.
Here is the call graph for this function:| int XrdXrootdTransit::Send | ( | XrdOucSFVec * | sfvec, |
| int | sfvnum, | ||
| int | dlen | ||
| ) |
Definition at line 789 of file XrdXrootdTransit.cc.
References XrdXrootd::Bridge::Result::File(), ClientRequest::header, XrdXrootdProtocol::Link, XrdXrootdProtocol::Request, ClientRequestHdr::requestid, and ClientRequestHdr::streamid.
Here is the call graph for this function:
|
inlinevirtual |
Set sendfile() enablement.
Implements XrdXrootd::Bridge.
Definition at line 148 of file XrdXrootdTransit.hh.
References XrdXrootdProtocol::SetSF().
Here is the call graph for this function:
|
inlinevirtual |
Set maximum wait time.
Implements XrdXrootd::Bridge.
Definition at line 155 of file XrdXrootdTransit.hh.