![]() |
XRootD
|
#include <XrdXrootdTransit.hh>
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... | |
![]() | |
Bridge () | |
Constructor & Destructor. More... | |
![]() | |
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) |
![]() | |
XrdProtocol (const char *jname) | |
virtual | ~XrdProtocol () |
![]() | |
XrdJob (const char *desc="") | |
virtual | ~XrdJob () |
![]() | |
gdCallBack () | |
virtual | ~gdCallBack () |
virtual void | gdFail () |
![]() | |
XrdSfsDio () | |
Constructor and destructor. More... | |
virtual | ~XrdSfsDio () |
![]() | |
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 Bridge * | Login (Result *rsltP, XrdLink *linkP, XrdSecEntity *seceP, const char *nameP, const char *protP) |
![]() | |
static char * | Buffer (XrdSfsXioHandle h, int *bsz) |
static int | Configure (char *parms, XrdProtocol_Config *pi) |
static void | Reclaim (XrdSfsXioHandle h) |
![]() | |
static char * | Buffer (XrdSfsXioHandle theHand, int *buffsz=0) |
static void | Reclaim (XrdSfsXioHandle theHand) |
Additional Inherited Members | |
![]() | |
const char * | Comment |
XrdJob * | NextJob |
![]() | |
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 |
![]() | |
virtual | ~Bridge () |
![]() | |
void | MonAuth () |
int | SetSF (kXR_char *fhandle, bool seton=false) |
![]() | |
static unsigned int | getSID () |
![]() | |
bool | ableTLS |
char * | AppName |
XrdBuffer * | argp |
XrdSecProtocol * | AuthProt |
unsigned char | CapVer |
XrdSecEntity * | Client |
int | clientPV |
int | clientRN |
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 | isDead |
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 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 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 52 of file XrdXrootdTransit.hh.
|
inline |
Constructor & Destructor.
Definition at line 159 of file XrdXrootdTransit.hh.
Referenced by Alloc().
|
inlinevirtual |
Definition at line 165 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().
|
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().
|
virtual |
Handle dismantlement.
Implements XrdXrootd::Bridge.
Definition at line 162 of file XrdXrootdTransit.cc.
References AtomicBeg, AtomicEnd, AtomicInc, XrdXrootdProtocol::Link, XrdObjectQ< T >::Push(), XrdXrootdProtocol::Recycle(), and XrdLink::setProtocol().
|
static |
Perform one-time initialization.
Definition at line 216 of file XrdXrootdTransit.cc.
References XrdOfsPrepGPIReal::schedP, XrdObjectQ< T >::Set(), TRACE_MEM, and XrdXrootdTrace.
Referenced by Alloc(), and XrdXrootdProtocol::Configure().
void XrdXrootdTransit::Proceed | ( | ) |
Resume processing after a waitresp completion.
Definition at line 334 of file XrdXrootdTransit.cc.
References XrdLink::Close(), XrdLink::Enable(), XrdXrootdProtocol::Link, and Process().
|
virtual |
Handle link activation (replaces parent activation).
Reimplemented from XrdXrootdProtocol.
Definition at line 353 of file XrdXrootdTransit.cc.
References AtomicBeg, AtomicEnd, AtomicZAP, XrdXrootdProtocol::Process(), XrdProtocol::Process(), XrdXrootdProtocol::Process2(), and XrdXrootdProtocol::Resume.
Referenced by Proceed().
|
virtual |
Handle link shutdown.
Reimplemented from XrdXrootdProtocol.
Definition at line 404 of file XrdXrootdTransit.cc.
References AtomicBeg, AtomicEnd, AtomicInc, XrdScheduler::Cancel(), XrdXrootdTransPend::Clear(), XrdObjectQ< T >::Push(), XrdXrootdProtocol::Recycle(), XrdProtocol::Recycle(), and XrdXrootdProtocol::Sched.
void XrdXrootdTransit::Redrive | ( | void | ) |
Redrive a request after a wait.
Definition at line 444 of file XrdXrootdTransit.cc.
References AtomicBeg, AtomicEnd, AtomicZAP, XrdLink::Close(), XrdLink::Enable(), kXR_error, kXR_NoMemory, XrdXrootdProtocol::Link, XrdProtocol::Process(), XrdXrootdProtocol::Process2(), and Send().
|
static |
Initialize the valid request table.
Definition at line 501 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 565 of file XrdXrootdTransit.cc.
References XrdXrootdProtocol::argp, AtomicBeg, AtomicEnd, AtomicInc, 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.
int XrdXrootdTransit::Send | ( | int | rcode, |
const struct iovec * | ioVec, | ||
int | ioNum, | ||
int | ioLen | ||
) |
Handle request data response.
Definition at line 669 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().
int XrdXrootdTransit::Send | ( | long long | offset, |
int | dlen, | ||
int | fdnum | ||
) |
Handle request sendfile response.
Definition at line 721 of file XrdXrootdTransit.cc.
References XrdXrootd::Bridge::Result::File(), ClientRequest::header, XrdXrootdProtocol::Link, XrdXrootdProtocol::Request, ClientRequestHdr::requestid, and ClientRequestHdr::streamid.
int XrdXrootdTransit::Send | ( | XrdOucSFVec * | sfvec, |
int | sfvnum, | ||
int | dlen | ||
) |
Definition at line 735 of file XrdXrootdTransit.cc.
References XrdXrootd::Bridge::Result::File(), ClientRequest::header, XrdXrootdProtocol::Link, XrdXrootdProtocol::Request, ClientRequestHdr::requestid, and ClientRequestHdr::streamid.
|
inlinevirtual |
Set sendfile() enablement.
Implements XrdXrootd::Bridge.
Definition at line 145 of file XrdXrootdTransit.hh.
References XrdXrootdProtocol::SetSF().
|
inlinevirtual |
Set maximum wait time.
Implements XrdXrootd::Bridge.
Definition at line 152 of file XrdXrootdTransit.hh.