xrootd
XrdXrootdProtocol.hh
Go to the documentation of this file.
1 #ifndef __XROOTD_PROTOCOL_H__
2 #define __XROOTD_PROTOCOL_H__
3 /******************************************************************************/
4 /* */
5 /* X r d X r o o t d P r o t o c o l . h h */
6 /* */
7 /* (c) 2004 by the Board of Trustees of the Leland Stanford, Jr., University */
8 /* Produced by Andrew Hanushevsky for Stanford University under contract */
9 /* DE-AC02-76-SFO0515 with the Department of Energy */
10 /* */
11 /* This file is part of the XRootD software suite. */
12 /* */
13 /* XRootD is free software: you can redistribute it and/or modify it under */
14 /* the terms of the GNU Lesser General Public License as published by the */
15 /* Free Software Foundation, either version 3 of the License, or (at your */
16 /* option) any later version. */
17 /* */
18 /* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20 /* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21 /* License for more details. */
22 /* */
23 /* You should have received a copy of the GNU Lesser General Public License */
24 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25 /* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26 /* */
27 /* The copyright holder's institutional names and contributor's names may not */
28 /* be used to endorse or promote products derived from this software without */
29 /* specific prior written permission of the institution or contributor. */
30 /******************************************************************************/
31 
32 #include <stdlib.h>
33 #include <unistd.h>
34 #include <sys/types.h>
35 
36 #include "XrdSys/XrdSysError.hh"
37 #include "XrdSys/XrdSysPthread.hh"
38 #include "XrdSys/XrdSysRAtomic.hh"
40 #include "XrdSfs/XrdSfsDio.hh"
41 #include "XrdSfs/XrdSfsXioImpl.hh"
42 
43 #include "Xrd/XrdObject.hh"
44 #include "Xrd/XrdProtocol.hh"
48 #include "XProtocol/XProtocol.hh"
49 
50 /******************************************************************************/
51 /* D e f i n e s */
52 /******************************************************************************/
53 
54 #define ROOTD_PQ 2012
55 
56 #define XRD_LOGGEDIN 1
57 #define XRD_NEED_AUTH 2
58 #define XRD_BOUNDPATH 8
59 
60 #ifndef __GNUC__
61 #define __attribute__(x)
62 #endif
63 
64 /******************************************************************************/
65 /* x r d _ P r o t o c o l _ X R o o t d */
66 /******************************************************************************/
67 
68 class XrdNetSocket;
69 class XrdOucEnv;
70 class XrdOucErrInfo;
71 class XrdOucReqID;
72 class XrdOucStream;
73 class XrdOucTList;
74 class XrdOucTokenizer;
75 class XrdSecProtect;
76 class XrdSecProtector;
77 class XrdSfsDirectory;
78 class XrdSfsFACtl;
79 class XrdSfsFileSystem;
80 class XrdSecProtocol;
81 class XrdBuffer;
82 class XrdLink;
83 class XrdTlsContext;
84 class XrdXrootdFile;
85 class XrdXrootdFileLock;
86 class XrdXrootdFileTable;
87 class XrdXrootdJob;
88 class XrdXrootdMonitor;
89 class XrdXrootdPgwCtl;
90 class XrdXrootdPio;
91 class XrdXrootdStats;
92 class XrdXrootdWVInfo;
93 class XrdXrootdXPath;
94 
95 /******************************************************************************/
96 /* N a m e s p a c e X r d X r o o t d */
97 /******************************************************************************/
98 
99 namespace XrdXrootd
100 {
101 /******************************************************************************/
102 /* g d C a l l B a c k */
103 /******************************************************************************/
104 
105 class gdCallBack // Used for new style getData() with callback
106 {
107 public:
108 
109 // Called when getData with a buffer successfully completed with a suspension.
110 // A direct return is made if there was no suspension. Return values and action:
111 // >1 If getData with a buffer was called while in the callback, the operation
112 // is performed with a subsequent callback. Otherwise, a fatal error results.
113 // =0 Variable discard holds the number of bytes to be discarded from the
114 // from the socket (default 0). Return is made to link-level.
115 // <0 Considered a fatal link error.
116 //
117 virtual int gdDone() = 0;
118 
119 // Called when a fatal link error occurs during reading.
120 //
121 virtual void gdFail() {} // Called when a link failure occurs
122 
124 virtual ~gdCallBack() {}
125 };
126 
127 /******************************************************************************/
128 /* I O P a r m s */
129 /******************************************************************************/
130 
131 struct IOParms
132 {
134 union {
135 long long Offset;
136 long long WVBytes;
137 int EInfo[2];
138  };
139 int IOLen;
140 unsigned short Flags;
141 char reserved;
142 char Mode;
143 static const int useBasic = 0;
144 static const int useMMap = 1;
145 static const int useSF = 2;
146 };
147 }
148 
149 /******************************************************************************/
150 /* C l a s s X r d X r o o t d P r o t o c o l */
151 /******************************************************************************/
152 
154  public XrdSfsDio, public XrdSfsXio
155 {
156 friend class XrdXrootdAdmin;
157 public:
158 
159  void aioUpdate(int val) {srvrAioOps += val;}
160 
161  void aioUpdReq(int val) {linkAioReq += val;}
162 
163 static char *Buffer(XrdSfsXioHandle h, int *bsz); // XrdSfsXio
164 
165 XrdSfsXioHandle Claim(const char *buff, int datasz, int minasz=0);// XrdSfsXio
166 
167 static int Configure(char *parms, XrdProtocol_Config *pi);
168 
169  void DoIt() {(*this.*Resume)();}
170 
172 
173  int getData(gdCallBack *gdcbP, const char *dtype,
174  char *buff, int blen);
175 
176  int getData(gdCallBack *gdcbP, const char *dtype,
177  struct iovec *iov, int iovn);
178 
179  int getDump(const char *dtype, int dlen);
180 
181  int getPathID() {return PathID;}
182 
184 
185  int Process(XrdLink *lp); // Sync: Job->Link.DoIt->Process
186 
187  int Process2();
188 
189  int ProcSig();
190 
191  void Recycle(XrdLink *lp, int consec, const char *reason);
192 
193 static void Reclaim(XrdSfsXioHandle h); // XrdSfsXio
194 
195  int SendFile(int fildes); // XrdSfsDio
196 
197  int SendFile(XrdOucSFVec *sfvec, int sfvnum); // XrdSfsDio
198 
199  void SetFD(int fildes); // XrdSfsDio
200 
201  int Stats(char *buff, int blen, int do_sync=0);
202 
203  void StreamNOP();
204 
205 XrdSfsXioHandle Swap(const char *buff, XrdSfsXioHandle h=0); // XrdSfsXio
206 
207 XrdXrootdProtocol *VerifyStream(int &rc, int pID, bool lok=true);
208 
212 
213 static const int maxStreams = 16;
214 
215 // async configuration values (referenced outside this class)
216 //
217 static int as_maxperlnk; // Max async requests per link
218 static int as_maxperreq; // Max async ops per request
219 static int as_maxpersrv; // Max async ops per server
220 static int as_miniosz; // Min async request size
221 static int as_minsfsz; // Min sendf request size
222 static int as_seghalf;
223 static int as_segsize; // Aio quantum (optimal)
224 static int as_maxstalls; // Maximum stalls we will tolerate
225 static short as_okstutter; // Allowable stutters per transfer unit
226 static short as_timeout; // request timeout (usually < stream timeout)
227 static bool as_force; // aio to be forced
228 static bool as_aioOK; // aio is enabled
229 static bool as_nosf; // sendfile is disabled
230 static bool as_syncw; // writes to be synchronous
231 
232 private:
233 
234 // Note that Route[] structure (below) must have RD_Num elements!
235 //
240 
241  int do_Auth();
242  int do_Bind();
243  int do_ChkPnt();
245  int do_Chmod();
246  int do_CKsum(int canit);
247  int do_CKsum(char *algT, const char *Path, char *Opaque);
248  int do_Close();
249  int do_Dirlist();
250  int do_DirStat(XrdSfsDirectory *dp, char *pbuff, char *opaque);
251  int do_Endsess();
252  int do_FAttr();
253  int do_gpFile();
254  int do_Login();
255  int do_Locate();
256  int do_Mkdir();
257  int do_Mv();
258  int do_Offload(int (XrdXrootdProtocol::*Invoke)(), int pathID);
260  int do_Open();
261  bool do_PgClose(XrdXrootdFile *fP, int &rc);
262  int do_PgRead();
263  int do_PgRIO();
264  int do_PgWrite();
265  bool do_PgWAIO(int &rc);
266  int do_PgWIO();
267  int do_PgWIO(bool isFresh);
268  bool do_PgWIORetry(int &rc);
270  int do_Ping();
271  int do_Prepare(bool isQuery=false);
272  int do_Protocol();
273  int do_Qconf();
274  int do_QconfCX(XrdOucTokenizer &qcargs, char *val);
275  int do_Qfh();
276  int do_Qopaque(short);
277  int do_Qspace();
278  int do_Query();
279  int do_Qxattr();
280  int do_Read();
281  int do_ReadV();
282  int do_ReadAll();
283  int do_ReadNone(int &retc, int &pathID);
284  int do_Rm();
285  int do_Rmdir();
286  int do_Set();
288  int do_Stat();
289  int do_Statx();
290  int do_Sync();
291  int do_Truncate();
292  int do_Write();
293  int do_WriteAio();
294  int do_WriteAll();
298  const char *emsg=0);
300  int do_WriteV();
301  int do_WriteVec();
302 
303  int gdDone() override {return do_PgWIO(false);}
304 
305  void Assign(const XrdXrootdProtocol &rhs);
306 static int CheckSum(XrdOucStream *, char **, int);
307  void Cleanup();
308 static int Config(const char *fn);
309 static bool ConfigMon(XrdProtocol_Config *pi, XrdOucEnv &xrootdEnv);
310 static int ConfigSecurity(XrdOucEnv &xEnv, const char *cfn);
311  int fsError(int rc, char opc, XrdOucErrInfo &myError,
312  const char *Path, char *Cgi);
313  int fsOvrld(char opc, const char *Path, char *Cgi);
314  int fsRedirNoEnt(const char *eMsg, char *Cgi, int popt);
315  int getBuff(const int isRead, int Quantum);
316  char *getCksType(char *opaque, char *cspec=0, int cslen=0);
317  int getData(const char *dtype, char *buff, int blen);
318  int getDataCont();
320  int getDumpCont();
321  bool logLogin(bool xauth=false);
322 static int mapMode(int mode);
323  void Reset();
324 static int rpCheck(char *fn, char **opaque);
325  int rpEmsg(const char *op, char *fn);
326  int vpEmsg(const char *op, char *fn);
327 static int CheckTLS(const char *tlsProt);
328 static bool ConfigFS(XrdOucEnv &xEnv, const char *cfn);
329 static bool ConfigFS(const char *path, XrdOucEnv &xEnv, const char *cfn);
330 static bool ConfigGStream(XrdOucEnv &myEnv, XrdOucEnv *urEnv);
331 static int Squash(char *);
332  int StatGen(struct stat &buf, char *xxBuff, int xxLen, bool xa=false);
336 static int xdig(XrdOucStream &Config);
337 static int xexp(XrdOucStream &Config);
338 static int xexpdo(char *path, int popt=0);
339 static int xfsl(XrdOucStream &Config);
340 static int xfsL(XrdOucStream &Config, char *val, int lix);
341 static int xfso(XrdOucStream &Config);
342 static int xgpf(XrdOucStream &Config);
343 static int xprep(XrdOucStream &Config);
344 static int xlog(XrdOucStream &Config);
345 static int xmon(XrdOucStream &Config);
346 static char *xmondest(const char *what, char *val);
348 static bool xmongsend(XrdOucStream &Config, char *val, char *&dest,
349  int &opt, int &fmt, int &hdr);
350 static int xred(XrdOucStream &Config);
351 static bool xred_php(char *val, char *hP[2], int rPort[2]);
352 static void xred_set(RD_func func, char *rHost[2], int rPort[2]);
353 static bool xred_xok(int func, char *rHost[2], int rPort[2]);
354 static int xsecl(XrdOucStream &Config);
355 static int xtls(XrdOucStream &Config);
356 static int xtlsr(XrdOucStream &Config);
359 
360  int ProcFAttr(char *faPath, char *faCgi, char *faArgs,
361  int faALen, int faCode, bool doAChk);
362  int XeqFADel(XrdSfsFACtl &ctl, char *faVars, int faVLen);
363  int XeqFAGet(XrdSfsFACtl &ctl, char *faVars, int faVLen);
366  int XeqFASet(XrdSfsFACtl &ctl, char *faVars, int faVLen);
367 
370 
371 protected:
372 
373 static unsigned int getSID();
374 
375  void MonAuth();
376  int SetSF(kXR_char *fhandle, bool seton=false);
377 
378 static XrdXrootdXPath RPList; // Redirected paths
379 static XrdXrootdXPath RQList; // Redirected paths for ENOENT
380 static XrdXrootdXPath XPList; // Exported paths
381 static XrdSfsFileSystem *osFS; // The filesystem
382 static XrdSfsFileSystem *digFS; // The filesystem (digFS)
383 static XrdSecService *CIA; // Authentication Server
384 static XrdSecProtector *DHS; // Protection Server
385 static XrdTlsContext *tlsCtx; // Protection Server TLS available
386 static XrdXrootdFileLock *Locker; // File lock handler
387 static XrdScheduler *Sched; // System scheduler
388 static XrdBuffManager *BPool; // Buffer manager
389 static XrdSysError &eDest; // Error message handler
390 static const char *myInst;
391 static const char *TraceID;
392 static int RQLxist; // Something is present in RQList
393 static int myPID;
394 static int myRole; // Role for kXR_protocol (>= 2.9.7)
395 static int myRolf; // Role for kXR_protocol (< 2.9.7)
396 
397 static gid_t myGID;
398 static uid_t myUID;
399 static int myGNLen;
400 static int myUNLen;
401 static const char *myGName;
402 static const char *myUName;
403 static time_t keepT;
404 
405 // Admin control area
406 //
408 
409 // Processing configuration values
410 //
411 static int hailWait;
412 static int readWait;
413 static int Port;
414 static int Window;
415 static int tlsPort;
416 static char *Notify;
417 static const char *myCName;
418 static int myCNlen;
419 static char isRedir;
420 static char JobLCL;
421 static char JobCKCGI;
423 static char *JobCKT;
426 static uint64_t fsFeatures;
427 
428 // Static redirection
429 //
430 static struct RD_Table {char *Host[2];
431  unsigned short Port[2];
432  short RDSz[2];} Route[RD_Num];
433 static int OD_Stall;
434 static bool OD_Bypass;
435 static bool OD_Redir;
436 
437 static bool isProxy;
438 
439 // Extended attributes
440 //
441 static int usxMaxNsz;
442 static int usxMaxVsz;
443 static char *usxParms;
444 
445 // TLS configuration
446 //
447 static const char Req_TLSData = 0x01;
448 static const char Req_TLSGPFile= 0x02;
449 static const char Req_TLSLogin = 0x04;
450 static const char Req_TLSSess = 0x08;
451 static const char Req_TLSTPC = 0x10;
452 
453 static char tlsCap; // TLS requirements for capable clients
454 static char tlsNot; // TLS requirements for incapable clients
455 
456 // Buffer configuration
457 //
458 static int maxBuffsz; // Maximum buffer size we can have
459 static int maxTransz; // Maximum transfer size we can have
460 
461 // Statistical area
462 //
464 int numReads; // Count for kXR_read
465 int numReadP; // Count for kXR_read pre-preads
466 int numReadV; // Count for kkR_readv
467 int numSegsV; // Count for kkR_readv segmens
468 int numWritV; // Count for kkR_write
469 int numSegsW; // Count for kkR_writev segmens
470 int numWrites; // Count
471 int numFiles; // Count
472 
473 int cumReads; // Count less numReads
474 int cumReadP; // Count less numReadP
475 int cumReadV; // Count less numReadV
476 int cumSegsV; // Count less numSegsV
477 int cumWritV; // Count less numWritV
478 int cumSegsW; // Count less numSegsW
479 int cumWrites; // Count less numWrites
480 int myStalls; // Number of stalls
481 long long totReadP; // Bytes
482 
483 // Data local to each protocol/link combination
484 //
489 int clientPV; // Protocol version + capabilities
490 int clientRN; // Release as maj.min.patch (1 byte each).
492 short rdType;
493 char Status;
494 unsigned char CapVer;
495 
496 // Authentication area
497 //
502 char *AppName;
503 
504 // Request signing area
505 //
506 ClientRequest sigReq2Ver; // Request to verify
507 SecurityRequest sigReq; // Signature request
508 char sigBuff[64]; // Signature payload SHA256 + blowfish
509 bool sigNeed; // Signature target present
510 bool sigHere; // Signature request present
511 bool sigRead; // Signature being read
512 bool sigWarn; // Once for unneeded signature
513 
514 // Async I/O area, these need to be atomic
515 //
516 RAtomic_int linkAioReq; // Aio requests inflight for link
517 static RAtomic_int srvrAioOps; // Aio operations inflight for server
518 
519 // Buffer information, used to drive getData(), and (*Resume)()
520 //
522 char *myBuff;
523 int myBlen;
525 
527 {
529 int iovNow;
530 union {int iovNum;
531  int BuffLen;
532  };
533 bool useCB;
534 char Status;
535 unsigned char stalls;
537 union {struct iovec *iovVec;
538  char *Buffer;
539  };
540 const char *ioDType;
542 
543 static const int inNone = 0;
544 static const int inCallBk = 1;
545 static const int inData = 2;
546 static const int inDataIov = 3;
547 static const int inDump = 4;
548 
549 static const int Active = 1; // linkWait: thread is waiting for link
550 static const int Terminate = 3; // linkWait: thread should immediately exit
551 
553 
555 int (XrdXrootdProtocol::*ResumePio)(); //Used by Offload
558 
559 // Buffer resize control area
560 //
561 static int hcMax;
562  int hcPrev;
563  int hcNext;
564  int hcNow;
566 
567 // This area is used for parallel streams
568 //
569 XrdSysMutex unbindMutex; // If locked always before streamMutex
574 unsigned int mySID;
575 bool isActive;
576 bool isLinkWT;
577 bool isNOP;
578 bool isDead;
579 
580 static const int maxPio = 4;
584 
585 short PathID; // Path for this protocol object
586 bool newPio; // True when initially scheduled
587 unsigned char rvSeq;
588 unsigned char wvSeq;
589 
590 char doTLS; // TLS requirements for client
591 bool ableTLS; // T->Client is able to use TLS
592 bool isTLS; // T->Client using TLS on control stream
593 
594 // Track usage limts.
595 //
596 static bool PrepareAlt; // Use alternate prepare handling
597 static bool LimitError; // Indicates that hitting a limit should result in an error response.
598  // If false, when possible, silently ignore errors.
600 static int PrepareLimit;
601 
602 // Buffers to handle client requests
603 //
607 };
608 #endif
XrdXrootdProtocol::hcNext
int hcNext
Definition: XrdXrootdProtocol.hh:563
XrdXrootd::IOParms::useBasic
static const int useBasic
Definition: XrdXrootdProtocol.hh:143
XrdXrootdJob
Definition: XrdXrootdJob.hh:52
XrdXrootdProtocol::isActive
bool isActive
Definition: XrdXrootdProtocol.hh:575
XrdXrootdProtocol::do_PgWAIO
bool do_PgWAIO(int &rc)
XrdXrootdProtocol::RD_mv
@ RD_mv
Definition: XrdXrootdProtocol.hh:237
XrdXrootdProtocol::reserved
int reserved
Definition: XrdXrootdProtocol.hh:491
XrdXrootdProtocol::isDead
bool isDead
Definition: XrdXrootdProtocol.hh:578
XrdSecInterface.hh
XrdXrootdProtocol::do_gpFile
int do_gpFile()
XrdXrootdProtocol::fsOvrld
int fsOvrld(char opc, const char *Path, char *Cgi)
XrdXrootdProtocol::Cleanup
void Cleanup()
XrdXrootdProtocol::argp
XrdBuffer * argp
Definition: XrdXrootdProtocol.hh:486
XrdXrootdProtocol::GetDataCtl
Definition: XrdXrootdProtocol.hh:527
XrdXrootdProtocol::GetDataCtl::ioDType
const char * ioDType
Definition: XrdXrootdProtocol.hh:540
XrdSfsXio
Definition: XrdSfsXio.hh:55
XrdXrootdProtocol::myUNLen
static int myUNLen
Definition: XrdXrootdProtocol.hh:400
XrdXrootdProtocol::as_nosf
static bool as_nosf
Definition: XrdXrootdProtocol.hh:229
XrdXrootdProtocol::do_QconfCX
int do_QconfCX(XrdOucTokenizer &qcargs, char *val)
XrdXrootdProtocol::Req_TLSSess
static const char Req_TLSSess
Definition: XrdXrootdProtocol.hh:450
XrdXrootdProtocol::JobLCL
static char JobLCL
Definition: XrdXrootdProtocol.hh:420
XrdXrootdProtocol::hcNow
int hcNow
Definition: XrdXrootdProtocol.hh:564
XrdXrootdProtocol::as_timeout
static short as_timeout
Definition: XrdXrootdProtocol.hh:226
XrdXrootd::IOParms::EInfo
int EInfo[2]
Definition: XrdXrootdProtocol.hh:137
XrdXrootdMonitor.hh
XrdXrootdProtocol::RD_open1
@ RD_open1
Definition: XrdXrootdProtocol.hh:239
XrdXrootdProtocol::do_PgClose
bool do_PgClose(XrdXrootdFile *fP, int &rc)
XrdXrootdProtocol::do_PgRead
int do_PgRead()
XrdXrootdProtocol::cumWrites
int cumWrites
Definition: XrdXrootdProtocol.hh:479
XrdXrootdProtocol::xmongsend
static bool xmongsend(XrdOucStream &Config, char *val, char *&dest, int &opt, int &fmt, int &hdr)
XrdXrootdProtocol::cumSegsV
int cumSegsV
Definition: XrdXrootdProtocol.hh:476
XrdXrootdProtocol::ProcSig
int ProcSig()
XrdXrootdProtocol::DHS
static XrdSecProtector * DHS
Definition: XrdXrootdProtocol.hh:384
XrdXrootdProtocol::do_Qopaque
int do_Qopaque(short)
XrdXrootdProtocol::Link
XrdLink * Link
Definition: XrdXrootdProtocol.hh:485
XrdSysMutex
Definition: XrdSysPthread.hh:165
XrdXrootdProtocol::gdDone
int gdDone() override
Definition: XrdXrootdProtocol.hh:303
XrdXrootdProtocol::as_miniosz
static int as_miniosz
Definition: XrdXrootdProtocol.hh:220
XrdXrootdProtocol::Request
ClientRequest Request
Definition: XrdXrootdProtocol.hh:605
XrdXrootdProtocol::Protect
XrdSecProtect * Protect
Definition: XrdXrootdProtocol.hh:501
XrdXrootdProtocol::Monitor
XrdXrootdMonitor::User Monitor
Definition: XrdXrootdProtocol.hh:488
XrdXrootdProtocol::as_maxperreq
static int as_maxperreq
Definition: XrdXrootdProtocol.hh:218
XrdXrootdProtocol::RD_func
RD_func
Definition: XrdXrootdProtocol.hh:236
XrdXrootdProtocol::rdType
short rdType
Definition: XrdXrootdProtocol.hh:492
XrdXrootdProtocol::xfsL
static int xfsL(XrdOucStream &Config, char *val, int lix)
XrdXrootdProtocol::OD_Stall
static int OD_Stall
Definition: XrdXrootdProtocol.hh:433
XrdSysPthread.hh
XrdSfsFileSystem
Definition: XrdSfsInterface.hh:841
XrdXrootdProtocol::sigNeed
bool sigNeed
Definition: XrdXrootdProtocol.hh:509
XrdXrootdMonitor
Definition: XrdXrootdMonitor.hh:76
XrdXrootdProtocol::do_PgWIORetry
bool do_PgWIORetry(int &rc)
XrdXrootdProtocol::Swap
XrdSfsXioHandle Swap(const char *buff, XrdSfsXioHandle h=0)
XrdXrootdProtocol::xsecl
static int xsecl(XrdOucStream &Config)
XrdXrootdProtocol::do_PgWIOSetup
bool do_PgWIOSetup(XrdXrootdPgwCtl *pgwCtl)
XrdXrootdProtocol::Locker
static XrdXrootdFileLock * Locker
Definition: XrdXrootdProtocol.hh:386
XrdXrootdProtocol::do_PgWIO
int do_PgWIO(bool isFresh)
XrdXrootdProtocol::JobCKS
static XrdXrootdJob * JobCKS
Definition: XrdXrootdProtocol.hh:422
XrdXrootdProtocol::RQList
static XrdXrootdXPath RQList
Definition: XrdXrootdProtocol.hh:379
XrdXrootdProtocol::Stats
int Stats(char *buff, int blen, int do_sync=0)
XrdXrootdProtocol::BPool
static XrdBuffManager * BPool
Definition: XrdXrootdProtocol.hh:388
XrdXrootdProtocol::myBuff
char * myBuff
Definition: XrdXrootdProtocol.hh:522
XrdXrootdProtocol::sigWarn
bool sigWarn
Definition: XrdXrootdProtocol.hh:512
XrdXrootdProtocol::hailWait
static int hailWait
Definition: XrdXrootdProtocol.hh:411
XrdObject.hh
XrdXrootdProtocol::getCksType
char * getCksType(char *opaque, char *cspec=0, int cslen=0)
XrdXrootdProtocol::do_DirStat
int do_DirStat(XrdSfsDirectory *dp, char *pbuff, char *opaque)
XrdXrootdPgwCtl
Definition: XrdXrootdPgwCtl.hh:42
XrdXrootdProtocol::GetDataCtl::inNone
static const int inNone
Definition: XrdXrootdProtocol.hh:543
XrdXrootdProtocol::GetDataCtl::Status
char Status
Definition: XrdXrootdProtocol.hh:534
XrdXrootdProtocol::pioLast
XrdXrootdPio * pioLast
Definition: XrdXrootdProtocol.hh:582
XrdXrootdProtocol::hcMax
static int hcMax
Definition: XrdXrootdProtocol.hh:561
XrdObject< XrdXrootdProtocol >
XrdXrootdProtocol::JobCKT
static char * JobCKT
Definition: XrdXrootdProtocol.hh:423
XrdXrootdProtocol::RD_prepare
@ RD_prepare
Definition: XrdXrootdProtocol.hh:237
XrdXrootdProtocol::do_Stat
int do_Stat()
XrdXrootdProtocol::ConfigFS
static bool ConfigFS(const char *path, XrdOucEnv &xEnv, const char *cfn)
XrdXrootdProtocol::PrepareAlt
static bool PrepareAlt
Definition: XrdXrootdProtocol.hh:596
XrdXrootdProtocol::OD_Redir
static bool OD_Redir
Definition: XrdXrootdProtocol.hh:435
XrdXrootdProtocol::do_Rmdir
int do_Rmdir()
XrdXrootdProtocol::Recycle
void Recycle(XrdLink *lp, int consec, const char *reason)
XrdBuffManager
Definition: XrdBuffer.hh:72
XrdXrootdProtocol::ConfigGStream
static bool ConfigGStream(XrdOucEnv &myEnv, XrdOucEnv *urEnv)
XrdXrootdProtocol::PathID
short PathID
Definition: XrdXrootdProtocol.hh:585
XrdXrootdProtocol::wvInfo
XrdXrootdWVInfo * wvInfo
Definition: XrdXrootdProtocol.hh:554
XrdXrootdProtocol::Process
int Process(XrdLink *lp)
XrdXrootdXPath
Definition: XrdXrootdXPath.hh:43
XrdXrootdProtocol::Resume
int(XrdXrootdProtocol::* Resume)()
Definition: XrdXrootdProtocol.hh:556
XrdXrootdProtocol::RD_locate
@ RD_locate
Definition: XrdXrootdProtocol.hh:236
XrdXrootdProtocol::srvrAioOps
static RAtomic_int srvrAioOps
Definition: XrdXrootdProtocol.hh:517
XrdXrootdProtocol::Notify
static char * Notify
Definition: XrdXrootdProtocol.hh:416
kXR_char
unsigned char kXR_char
Definition: XPtypes.hh:65
XrdXrootdProtocol::CapVer
unsigned char CapVer
Definition: XrdXrootdProtocol.hh:494
XrdXrootdProtocol::do_Close
int do_Close()
XrdXrootdProtocol::getBuff
int getBuff(const int isRead, int Quantum)
XrdSecService
Definition: XrdSecInterface.hh:552
XrdXrootdProtocol::do_WriteNoneMsg
int do_WriteNoneMsg()
XrdXrootdProtocol::RD_ovld
@ RD_ovld
Definition: XrdXrootdProtocol.hh:238
XrdXrootdProtocol::RD_prepstg
@ RD_prepstg
Definition: XrdXrootdProtocol.hh:237
XrdXrootdProtocol::gdCtl
struct XrdXrootdProtocol::GetDataCtl gdCtl
XrdXrootdProtocol::xtlsr
static int xtlsr(XrdOucStream &Config)
XrdSfsXioHandle
class XrdBuffer * XrdSfsXioHandle
Definition: XrdSfsXio.hh:46
XrdXrootdProtocol::clientPV
int clientPV
Definition: XrdXrootdProtocol.hh:489
XrdXrootdProtocol::Squash
static int Squash(char *)
XrdXrootdProtocol::GetDataCtl::lenPart
int lenPart
Definition: XrdXrootdProtocol.hh:528
XrdXrootdReqID
Definition: XrdXrootdReqID.hh:36
XrdProtocol_Config
Definition: XrdProtocol.hh:56
XrdXrootdResponse
Definition: XrdXrootdResponse.hh:49
XrdXrootdProtocol::myUID
static uid_t myUID
Definition: XrdXrootdProtocol.hh:398
XrdXrootdProtocol::sigRead
bool sigRead
Definition: XrdXrootdProtocol.hh:511
XrdXrootdProtocol::XeqFASet
int XeqFASet(XrdSfsFACtl &ctl, char *faVars, int faVLen)
XrdXrootdProtocol::Assign
void Assign(const XrdXrootdProtocol &rhs)
XErrorCode
XErrorCode
Definition: XProtocol.hh:980
XrdXrootdProtocol::Claim
XrdSfsXioHandle Claim(const char *buff, int datasz, int minasz=0)
XrdXrootdProtocol::eDest
static XrdSysError & eDest
Definition: XrdXrootdProtocol.hh:389
XrdXrootdProtocol::myGID
static gid_t myGID
Definition: XrdXrootdProtocol.hh:397
XrdSysCondVar2
Definition: XrdSysPthread.hh:300
XrdXrootdProtocol::isNOP
bool isNOP
Definition: XrdXrootdProtocol.hh:577
XrdXrootdProtocol::getData
int getData(const char *dtype, char *buff, int blen)
XrdXrootdProtocol::Port
static int Port
Definition: XrdXrootdProtocol.hh:413
XrdXrootdProtocol::MonAuth
void MonAuth()
XrdXrootdProtocol::maxBuffsz
static int maxBuffsz
Definition: XrdXrootdProtocol.hh:458
XrdXrootdProtocol::do_Locate
int do_Locate()
XrdXrootdProtocol::as_maxpersrv
static int as_maxpersrv
Definition: XrdXrootdProtocol.hh:219
XrdXrootdProtocol::clientRN
int clientRN
Definition: XrdXrootdProtocol.hh:490
XrdXrootdProtocol::ProtStack
static XrdObjectQ< XrdXrootdProtocol > ProtStack
Definition: XrdXrootdProtocol.hh:368
XrdXrootdProtocol::SetSF
int SetSF(kXR_char *fhandle, bool seton=false)
XrdXrootdProtocol::sigHere
bool sigHere
Definition: XrdXrootdProtocol.hh:510
XrdXrootdProtocol::AdminSock
static XrdNetSocket * AdminSock
Definition: XrdXrootdProtocol.hh:407
XrdXrootdStats
Definition: XrdXrootdStats.hh:40
XrdXrootdProtocol::as_syncw
static bool as_syncw
Definition: XrdXrootdProtocol.hh:230
XrdXrootdProtocol::xapath
static int xapath(XrdOucStream &Config)
XrdXrootdProtocol::xmondest
static char * xmondest(const char *what, char *val)
XrdXrootdProtocol::Reclaim
static void Reclaim(XrdSfsXioHandle h)
XrdXrootdProtocol::GetDataCtl::iovNow
int iovNow
Definition: XrdXrootdProtocol.hh:529
XrdXrootdProtocol::xasync
static int xasync(XrdOucStream &Config)
XrdXrootdProtocol::xred_xok
static bool xred_xok(int func, char *rHost[2], int rPort[2])
XProtocol.hh
XrdXrootdProtocol::rvSeq
unsigned char rvSeq
Definition: XrdXrootdProtocol.hh:587
XrdXrootdProtocol::ConfigMon
static bool ConfigMon(XrdProtocol_Config *pi, XrdOucEnv &xrootdEnv)
XrdXrootdPio
Definition: XrdXrootdPio.hh:40
XrdOucStream
Definition: XrdOucStream.hh:47
XrdXrootdProtocol::numWrites
int numWrites
Definition: XrdXrootdProtocol.hh:470
XrdXrootd::gdCallBack::~gdCallBack
virtual ~gdCallBack()
Definition: XrdXrootdProtocol.hh:124
XrdXrootdProtocol::xlimit
static int xlimit(XrdOucStream &Config)
XrdXrootdProtocol::cumReadP
int cumReadP
Definition: XrdXrootdProtocol.hh:474
XrdXrootdProtocol::VerifyStream
XrdXrootdProtocol * VerifyStream(int &rc, int pID, bool lok=true)
XrdXrootdProtocol::fsError
int fsError(int rc, char opc, XrdOucErrInfo &myError, const char *Path, char *Cgi)
XrdXrootdProtocol::do_PgWIO
int do_PgWIO()
XrdXrootdProtocol::RQLxist
static int RQLxist
Definition: XrdXrootdProtocol.hh:392
XrdXrootdProtocol::myBlast
int myBlast
Definition: XrdXrootdProtocol.hh:524
XrdXrootdReqID.hh
XrdXrootdProtocol::GetDataCtl::linkWait
RAtomic_uchar linkWait
Definition: XrdXrootdProtocol.hh:536
XrdXrootdProtocol::RD_mkdir
@ RD_mkdir
Definition: XrdXrootdProtocol.hh:236
XrdXrootdProtocol::unbindMutex
XrdSysMutex unbindMutex
Definition: XrdXrootdProtocol.hh:569
XrdXrootdProtocol::numReadV
int numReadV
Definition: XrdXrootdProtocol.hh:466
XrdXrootdProtocol::tlsPort
static int tlsPort
Definition: XrdXrootdProtocol.hh:415
XrdTlsContext
Definition: XrdTlsContext.hh:37
XrdXrootdProtocol::getPathID
int getPathID()
Definition: XrdXrootdProtocol.hh:181
XrdXrootdProtocol::usxMaxVsz
static int usxMaxVsz
Definition: XrdXrootdProtocol.hh:442
XrdXrootdProtocol::do_Endsess
int do_Endsess()
XrdSysRAtomic.hh
XrdXrootdProtocol::~XrdXrootdProtocol
~XrdXrootdProtocol()
Definition: XrdXrootdProtocol.hh:211
XrdXrootdProtocol::myPID
static int myPID
Definition: XrdXrootdProtocol.hh:393
XrdXrootdProtocol::numFiles
int numFiles
Definition: XrdXrootdProtocol.hh:471
XrdXrootdProtocol::isProxy
static bool isProxy
Definition: XrdXrootdProtocol.hh:437
XrdProtocol.hh
XrdXrootdProtocol::xtls
static int xtls(XrdOucStream &Config)
XrdXrootdProtocol::ConfigSecurity
static int ConfigSecurity(XrdOucEnv &xEnv, const char *cfn)
XrdXrootdProtocol::do_CKsum
int do_CKsum(char *algT, const char *Path, char *Opaque)
XrdXrootdProtocol::StatGen
int StatGen(struct stat &buf, char *xxBuff, int xxLen, bool xa=false)
XrdXrootdProtocol::as_aioOK
static bool as_aioOK
Definition: XrdXrootdProtocol.hh:228
XrdXrootdProtocol::GetDataCtl::inDump
static const int inDump
Definition: XrdXrootdProtocol.hh:547
XrdXrootdProtocol::xprep
static int xprep(XrdOucStream &Config)
XrdXrootd::gdCallBack::gdDone
virtual int gdDone()=0
XrdXrootdFileTable
Definition: XrdXrootdFile.hh:162
XrdXrootdProtocol::TraceID
static const char * TraceID
Definition: XrdXrootdProtocol.hh:391
XrdXrootdProtocol::CIA
static XrdSecService * CIA
Definition: XrdXrootdProtocol.hh:383
XrdXrootdProtocol::sigBuff
char sigBuff[64]
Definition: XrdXrootdProtocol.hh:508
XrdXrootdProtocol::do_WriteCont
int do_WriteCont()
XrdXrootdProtocol::do_Offload
int do_Offload(int(XrdXrootdProtocol::*Invoke)(), int pathID)
XrdXrootdProtocol::do_Truncate
int do_Truncate()
XrdXrootdProtocol::aioUpdate
void aioUpdate(int val)
Definition: XrdXrootdProtocol.hh:159
XrdXrootdProtocol::do_Write
int do_Write()
XrdXrootdProtocol::LimitError
static bool LimitError
Definition: XrdXrootdProtocol.hh:597
XrdXrootdProtocol::RPList
static XrdXrootdXPath RPList
Definition: XrdXrootdProtocol.hh:378
XrdXrootdProtocol::RD_open3
@ RD_open3
Definition: XrdXrootdProtocol.hh:239
XrdXrootd::IOParms::useSF
static const int useSF
Definition: XrdXrootdProtocol.hh:145
XrdXrootdProtocol::do_Mv
int do_Mv()
XrdXrootdProtocol::AuthProt
XrdSecProtocol * AuthProt
Definition: XrdXrootdProtocol.hh:499
XrdXrootdProtocol::aioUpdReq
void aioUpdReq(int val)
Definition: XrdXrootdProtocol.hh:161
XrdXrootdProtocol::numSegsV
int numSegsV
Definition: XrdXrootdProtocol.hh:467
XrdXrootdProtocol::do_Qfh
int do_Qfh()
XrdXrootdProtocol::myRole
static int myRole
Definition: XrdXrootdProtocol.hh:394
XrdSfsDirectory
Definition: XrdSfsInterface.hh:239
XrdXrootdProtocol::Buffer
static char * Buffer(XrdSfsXioHandle h, int *bsz)
XrdXrootdProtocol::OD_Bypass
static bool OD_Bypass
Definition: XrdXrootdProtocol.hh:434
XrdXrootdProtocol::isLinkWT
bool isLinkWT
Definition: XrdXrootdProtocol.hh:576
XrdXrootdProtocol::ResumePio
int(XrdXrootdProtocol::* ResumePio)()
Definition: XrdXrootdProtocol.hh:555
XrdXrootdWVInfo
Definition: XrdXrootdWVInfo.hh:35
XrdXrootd::IOParms
Definition: XrdXrootdProtocol.hh:132
XrdXrootdProtocol::XrdXrootdProtocol
XrdXrootdProtocol()
XrdXrootdProtocol::sigReq
SecurityRequest sigReq
Definition: XrdXrootdProtocol.hh:507
XrdXrootdProtocol::GetDataCtl::Buffer
char * Buffer
Definition: XrdXrootdProtocol.hh:538
XrdSysSemaphore
Definition: XrdSysPthread.hh:438
XrdXrootdProtocol::ableTLS
bool ableTLS
Definition: XrdXrootdProtocol.hh:591
XrdObjectQ< XrdXrootdProtocol >
XrdXrootdProtocol::numReadP
int numReadP
Definition: XrdXrootdProtocol.hh:465
XrdXrootd::IOParms::File
XrdXrootdFile * File
Definition: XrdXrootdProtocol.hh:133
XrdXrootdProtocol::getData
int getData(gdCallBack *gdcbP, const char *dtype, char *buff, int blen)
XrdXrootdProtocol::ReqID
XrdXrootdReqID ReqID
Definition: XrdXrootdProtocol.hh:604
XrdXrootdProtocol::do_Bind
int do_Bind()
XrdOucEnv
Definition: XrdOucEnv.hh:42
kXR_noErrorYet
@ kXR_noErrorYet
Definition: XProtocol.hh:1017
XrdXrootdProtocol::do_Auth
int do_Auth()
XrdXrootdProtocol::GetDataCtl::Terminate
static const int Terminate
Definition: XrdXrootdProtocol.hh:550
XrdXrootdProtocol::myInst
static const char * myInst
Definition: XrdXrootdProtocol.hh:390
XrdXrootdProtocol::xlog
static int xlog(XrdOucStream &Config)
ClientRequest
Definition: XProtocol.hh:836
XrdXrootdProtocol::vpEmsg
int vpEmsg(const char *op, char *fn)
XrdXrootdProtocol::getDataIovCont
int getDataIovCont()
XrdXrootdProtocol::isTLS
bool isTLS
Definition: XrdXrootdProtocol.hh:592
XrdXrootdProtocol::do_Dirlist
int do_Dirlist()
XrdXrootdProtocol::do_PgWrite
int do_PgWrite()
XrdXrootdProtocol::doTLS
char doTLS
Definition: XrdXrootdProtocol.hh:590
XrdXrootdProtocol::RD_Table::Host
char * Host[2]
Definition: XrdXrootdProtocol.hh:430
XrdXrootdProtocol::do_Read
int do_Read()
XrdXrootdProtocol::do_Sync
int do_Sync()
XrdXrootdProtocol::readWait
static int readWait
Definition: XrdXrootdProtocol.hh:412
XrdXrootdProtocol::do_WriteAll
int do_WriteAll()
XrdXrootdProtocol::FTab
XrdXrootdFileTable * FTab
Definition: XrdXrootdProtocol.hh:487
XrdXrootdProtocol::xexpdo
static int xexpdo(char *path, int popt=0)
XrdXrootdProtocol::as_segsize
static int as_segsize
Definition: XrdXrootdProtocol.hh:223
XrdScheduler
Definition: XrdScheduler.hh:46
XrdXrootdProtocol::SendFile
int SendFile(XrdOucSFVec *sfvec, int sfvnum)
XrdXrootd::IOParms::useMMap
static const int useMMap
Definition: XrdXrootdProtocol.hh:144
XrdXrootdProtocol::XeqFALst
int XeqFALst(XrdSfsFACtl &ctl)
SecurityRequest
Definition: XProtocol.hh:871
XrdXrootdProtocol::GetDataCtl::inDataIov
static const int inDataIov
Definition: XrdXrootdProtocol.hh:546
XrdXrootdProtocol::do_ChkPntXeq
int do_ChkPntXeq()
XrdXrootdProtocol::maxPio
static const int maxPio
Definition: XrdXrootdProtocol.hh:580
XrdXrootdProtocol::ProcFAttr
int ProcFAttr(char *faPath, char *faCgi, char *faArgs, int faALen, int faCode, bool doAChk)
XrdXrootdProtocol::xdig
static int xdig(XrdOucStream &Config)
XrdXrootdProtocol::cumWritV
int cumWritV
Definition: XrdXrootdProtocol.hh:477
XrdXrootdProtocol::do_Qspace
int do_Qspace()
XrdXrootdProtocol::as_okstutter
static short as_okstutter
Definition: XrdXrootdProtocol.hh:225
XrdXrootdProtocol::myBlen
int myBlen
Definition: XrdXrootdProtocol.hh:523
XrdXrootdProtocol::do_Set
int do_Set()
XrdXrootdFileLock
Definition: XrdXrootdFileLock.hh:33
XrdXrootdProtocol::SI
static XrdXrootdStats * SI
Definition: XrdXrootdProtocol.hh:463
XrdXrootdProtocol::numSegsW
int numSegsW
Definition: XrdXrootdProtocol.hh:469
XrdXrootdProtocol::RD_rm
@ RD_rm
Definition: XrdXrootdProtocol.hh:237
XrdXrootdProtocol::do_Chmod
int do_Chmod()
XrdXrootdProtocol::maxTransz
static int maxTransz
Definition: XrdXrootdProtocol.hh:459
XrdXrootdProtocol::mySID
unsigned int mySID
Definition: XrdXrootdProtocol.hh:574
XrdXrootdProtocol::CheckSum
static int CheckSum(XrdOucStream *, char **, int)
XrdXrootdProtocol::RD_trunc
@ RD_trunc
Definition: XrdXrootdProtocol.hh:238
XrdXrootdProtocol::do_ReadNone
int do_ReadNone(int &retc, int &pathID)
XrdXrootdProtocol::osFS
static XrdSfsFileSystem * osFS
Definition: XrdXrootdProtocol.hh:381
XrdXrootdProtocol::Config
static int Config(const char *fn)
XrdXrootdProtocol::xexp
static int xexp(XrdOucStream &Config)
XrdXrootdProtocol::digFS
static XrdSfsFileSystem * digFS
Definition: XrdXrootdProtocol.hh:382
XrdXrootdProtocol::CheckTLS
static int CheckTLS(const char *tlsProt)
iov
Definition: XrdOucIOVec.hh:65
XrdXrootdProtocol::do_Qxattr
int do_Qxattr()
XrdXrootdProtocol::linkAioReq
RAtomic_int linkAioReq
Definition: XrdXrootdProtocol.hh:516
XrdXrootdProtocol::xmongs
static int xmongs(XrdOucStream &Config)
XrdXrootdProtocol::RD_stat
@ RD_stat
Definition: XrdXrootdProtocol.hh:238
XrdXrootdProtocol::SetFD
void SetFD(int fildes)
XrdXrootdProtocol::getSID
static unsigned int getSID()
XrdXrootdProtocol::as_minsfsz
static int as_minsfsz
Definition: XrdXrootdProtocol.hh:221
XrdSecProtect
Definition: XrdSecProtect.hh:56
XrdXrootdProtocol::Route
static struct XrdXrootdProtocol::RD_Table Route[RD_Num]
XrdOucReqID
Definition: XrdOucReqID.hh:42
XrdXrootd
Definition: XrdXrootdBridge.hh:55
XrdNetSocket
Definition: XrdNetSocket.hh:48
XrdSfsXioImpl.hh
XrdXrootdProtocol::as_seghalf
static int as_seghalf
Definition: XrdXrootdProtocol.hh:222
XrdXrootdProtocol::as_maxstalls
static int as_maxstalls
Definition: XrdXrootdProtocol.hh:224
XrdXrootdProtocol::numReads
int numReads
Definition: XrdXrootdProtocol.hh:464
XrdXrootdProtocol::cumReads
int cumReads
Definition: XrdXrootdProtocol.hh:473
XrdXrootdProtocol::xgpf
static int xgpf(XrdOucStream &Config)
XrdXrootdResponse.hh
XrdXrootdProtocol::do_Query
int do_Query()
XrdXrootdProtocol::do_Ping
int do_Ping()
XrdXrootdProtocol::PrepareLimit
static int PrepareLimit
Definition: XrdXrootdProtocol.hh:600
XrdSecProtector
Definition: XrdSecProtector.hh:73
XrdXrootdProtocol::do_WriteVec
int do_WriteVec()
XrdXrootdProtocol::xred
static int xred(XrdOucStream &Config)
XrdXrootdProtocol::do_Rm
int do_Rm()
XrdXrootdProtocol::XPList
static XrdXrootdXPath XPList
Definition: XrdXrootdProtocol.hh:380
XrdXrootdProtocol::GetDataCtl::Active
static const int Active
Definition: XrdXrootdProtocol.hh:549
XrdXrootdProtocol::GetDataCtl::inData
static const int inData
Definition: XrdXrootdProtocol.hh:545
XrdXrootdProtocol::GetDataCtl::iovVec
struct iovec * iovVec
Definition: XrdXrootdProtocol.hh:537
XrdSecProtocol
Definition: XrdSecInterface.hh:131
XrdXrootdProtocol::IO
XrdXrootd::IOParms IO
Definition: XrdXrootdProtocol.hh:557
XrdXrootdProtocol::do_OffloadIO
int do_OffloadIO()
XrdXrootdProtocol::do_Login
int do_Login()
XrdXrootdProtocol::reTry
XrdSysSemaphore * reTry
Definition: XrdXrootdProtocol.hh:571
XrdXrootdProtocol::GetDataCtl::stalls
unsigned char stalls
Definition: XrdXrootdProtocol.hh:535
XrdXrootdProtocol::getDump
int getDump(const char *dtype, int dlen)
XrdXrootd::IOParms::reserved
char reserved
Definition: XrdXrootdProtocol.hh:141
XrdXrootdProtocol::xfso
static int xfso(XrdOucStream &Config)
XrdXrootdProtocol::cumReadV
int cumReadV
Definition: XrdXrootdProtocol.hh:475
XrdXrootdProtocol::do_Protocol
int do_Protocol()
XrdSfsFACtl
Definition: XrdSfsFAttr.hh:73
XrdXrootd::IOParms::WVBytes
long long WVBytes
Definition: XrdXrootdProtocol.hh:136
XrdXrootdProtocol::pgwCtl
XrdXrootdPgwCtl * pgwCtl
Definition: XrdXrootdProtocol.hh:521
XrdXrootdFile
Definition: XrdXrootdFile.hh:101
XrdXrootd::gdCallBack
Definition: XrdXrootdProtocol.hh:106
XrdXrootdProtocol::myCName
static const char * myCName
Definition: XrdXrootdProtocol.hh:417
XrdXrootdProtocol::Configure
static int Configure(char *parms, XrdProtocol_Config *pi)
XrdXrootdProtocol::Entity
XrdSecEntity Entity
Definition: XrdXrootdProtocol.hh:500
XrdXrootd::IOParms::Flags
unsigned short Flags
Definition: XrdXrootdProtocol.hh:140
XrdXrootdProtocol::Req_TLSGPFile
static const char Req_TLSGPFile
Definition: XrdXrootdProtocol.hh:448
XrdXrootdProtocol::xtrace
static int xtrace(XrdOucStream &Config)
XrdXrootdProtocol::do_Statx
int do_Statx()
XrdXrootdProtocol::myCNlen
static int myCNlen
Definition: XrdXrootdProtocol.hh:418
XrdXrootdProtocol::getData
int getData(gdCallBack *gdcbP, const char *dtype, struct iovec *iov, int iovn)
XrdXrootdProtocol::newPio
bool newPio
Definition: XrdXrootdProtocol.hh:586
XrdXrootdProtocol::xcksum
static int xcksum(XrdOucStream &Config)
XrdXrootdProtocol::pioFirst
XrdXrootdPio * pioFirst
Definition: XrdXrootdProtocol.hh:581
XrdXrootdProtocol::JobCKCGI
static char JobCKCGI
Definition: XrdXrootdProtocol.hh:421
XrdXrootdProtocol::RD_rmdir
@ RD_rmdir
Definition: XrdXrootdProtocol.hh:237
XrdXrootdProtocol::GetDataCtl::useCB
bool useCB
Definition: XrdXrootdProtocol.hh:533
XrdXrootd::gdCallBack::gdFail
virtual void gdFail()
Definition: XrdXrootdProtocol.hh:121
XrdXrootdProtocol::do_Prepare
int do_Prepare(bool isQuery=false)
XrdXrootdProtocol::do_WriteSpan
int do_WriteSpan()
XrdXrootdProtocol::Client
XrdSecEntity * Client
Definition: XrdXrootdProtocol.hh:498
XrdXrootdProtocol::myGNLen
static int myGNLen
Definition: XrdXrootdProtocol.hh:399
XrdXrootdProtocol::RD_Table::RDSz
short RDSz[2]
Definition: XrdXrootdProtocol.hh:432
XrdXrootdProtocol::GetDataCtl::inCallBk
static const int inCallBk
Definition: XrdXrootdProtocol.hh:544
XrdXrootdProtocol::getDataCont
int getDataCont()
XrdXrootdProtocol::usxParms
static char * usxParms
Definition: XrdXrootdProtocol.hh:443
XrdXrootdProtocol::Window
static int Window
Definition: XrdXrootdProtocol.hh:414
XrdProtocol
Definition: XrdProtocol.hh:125
XrdXrootdProtocol::rpEmsg
int rpEmsg(const char *op, char *fn)
XrdXrootdProtocol::xmon
static int xmon(XrdOucStream &Config)
XrdXrootdProtocol::logLogin
bool logLogin(bool xauth=false)
XrdXrootdProtocol::PrepareCount
int PrepareCount
Definition: XrdXrootdProtocol.hh:599
XrdXrootdProtocol::hcPrev
int hcPrev
Definition: XrdXrootdProtocol.hh:562
XrdSfsDio
Definition: XrdSfsDio.hh:47
XrdXrootdProtocol::GetDataCtl::CallBack
XrdXrootd::gdCallBack * CallBack
Definition: XrdXrootdProtocol.hh:541
XrdXrootdProtocol::myRolf
static int myRolf
Definition: XrdXrootdProtocol.hh:395
XrdXrootdProtocol::fsFeatures
static uint64_t fsFeatures
Definition: XrdXrootdProtocol.hh:426
XrdXrootd::IOParms::Offset
long long Offset
Definition: XrdXrootdProtocol.hh:135
XrdXrootdProtocol::do_Mkdir
int do_Mkdir()
XrdSecEntity
Definition: XrdSecEntity.hh:64
XrdXrootdProtocol::GetDataCtl::iovNum
int iovNum
Definition: XrdXrootdProtocol.hh:530
XrdXrootdProtocol::Sched
static XrdScheduler * Sched
Definition: XrdXrootdProtocol.hh:387
XrdOucErrInfo
Definition: XrdOucErrInfo.hh:101
XrdBuffer
Definition: XrdBuffer.hh:42
XrdXrootdProtocol::do_WriteV
int do_WriteV()
XrdXrootdProtocol
Definition: XrdXrootdProtocol.hh:155
XrdXrootdProtocol::ConfigFS
static bool ConfigFS(XrdOucEnv &xEnv, const char *cfn)
XrdXrootdProtocol::GetDataCtl::BuffLen
int BuffLen
Definition: XrdXrootdProtocol.hh:531
XrdXrootdProtocol::Stream
XrdXrootdProtocol * Stream[maxStreams]
Definition: XrdXrootdProtocol.hh:573
XrdXrootdProtocol::RD_Num
@ RD_Num
Definition: XrdXrootdProtocol.hh:239
stat
#define stat(a, b)
Definition: XrdPosix.hh:96
XrdXrootdProtocol::xred_set
static void xred_set(RD_func func, char *rHost[2], int rPort[2])
XrdXrootdProtocol::StreamNOP
void StreamNOP()
XrdXrootdProtocol::tlsCtx
static XrdTlsContext * tlsCtx
Definition: XrdXrootdProtocol.hh:385
XrdXrootdProtocol::do_CKsum
int do_CKsum(int canit)
XrdOucSFVec
Definition: XrdOucSFVec.hh:43
XrdXrootdProtocol::Status
char Status
Definition: XrdXrootdProtocol.hh:493
XrdXrootdProtocol::do_WriteNone
int do_WriteNone(int pathid, XErrorCode ec=kXR_noErrorYet, const char *emsg=0)
XrdXrootdProtocol::fsRedirNoEnt
int fsRedirNoEnt(const char *eMsg, char *Cgi, int popt)
XrdXrootdProtocol::Process2
int Process2()
XrdXrootdProtocol::RD_dirlist
@ RD_dirlist
Definition: XrdXrootdProtocol.hh:236
XrdXrootdProtocol::halfBSize
int halfBSize
Definition: XrdXrootdProtocol.hh:565
XrdXrootdProtocol::keepT
static time_t keepT
Definition: XrdXrootdProtocol.hh:403
XrdOucTokenizer
Definition: XrdOucTokenizer.hh:33
XrdXrootdProtocol::numWritV
int numWritV
Definition: XrdXrootdProtocol.hh:468
XrdXrootdProtocol::PrepID
static XrdOucReqID * PrepID
Definition: XrdXrootdProtocol.hh:425
XrdXrootdProtocol::myGName
static const char * myGName
Definition: XrdXrootdProtocol.hh:401
XrdXrootdProtocol::do_PgRIO
int do_PgRIO()
XrdXrootdProtocol::xred_php
static bool xred_php(char *val, char *hP[2], int rPort[2])
XrdSysError
Definition: XrdSysError.hh:90
XrdXrootdProtocol::do_WriteAio
int do_WriteAio()
XrdXrootd::IOParms::Mode
char Mode
Definition: XrdXrootdProtocol.hh:142
XrdXrootdProtocol::do_WriteNone
int do_WriteNone()
XrdSfsDio.hh
XrdXrootdProtocol::ProtLink
XrdObject< XrdXrootdProtocol > ProtLink
Definition: XrdXrootdProtocol.hh:369
XrdXrootdProtocol::Req_TLSTPC
static const char Req_TLSTPC
Definition: XrdXrootdProtocol.hh:451
XrdXrootdProtocol::as_force
static bool as_force
Definition: XrdXrootdProtocol.hh:227
XrdXrootdProtocol::RD_chmod
@ RD_chmod
Definition: XrdXrootdProtocol.hh:236
XrdXrootdProtocol::do_ReadV
int do_ReadV()
XrdXrootdProtocol::Reset
void Reset()
XrdXrootdProtocol::Req_TLSData
static const char Req_TLSData
Definition: XrdXrootdProtocol.hh:447
XrdXrootdProtocol::tlsNot
static char tlsNot
Definition: XrdXrootdProtocol.hh:454
XrdXrootdProtocol::XeqFADel
int XeqFADel(XrdSfsFACtl &ctl, char *faVars, int faVLen)
XrdXrootdProtocol::do_ReadAll
int do_ReadAll()
XrdXrootdProtocol::pioFree
XrdXrootdPio * pioFree
Definition: XrdXrootdProtocol.hh:583
XrdXrootdProtocol::operator=
XrdXrootdProtocol operator=(const XrdXrootdProtocol &rhs)=delete
XrdXrootdProtocol::do_Set_Mon
int do_Set_Mon(XrdOucTokenizer &setargs)
XrdXrootdProtocol::isRedir
static char isRedir
Definition: XrdXrootdProtocol.hh:419
XrdXrootdProtocol::Match
XrdProtocol * Match(XrdLink *lp)
XrdXrootdProtocol::rpCheck
static int rpCheck(char *fn, char **opaque)
XrdXrootdProtocol::XeqFAGet
int XeqFAGet(XrdSfsFACtl &ctl, char *faVars, int faVLen)
XrdXrootdProtocol::myStalls
int myStalls
Definition: XrdXrootdProtocol.hh:480
XrdXrootdProtocol::DoIt
void DoIt()
Definition: XrdXrootdProtocol.hh:169
XrdXrootdMonitor::User
Definition: XrdXrootdMonitor.hh:170
XrdXrootdProtocol::do_FAttr
int do_FAttr()
XrdXrootdProtocol::usxMaxNsz
static int usxMaxNsz
Definition: XrdXrootdProtocol.hh:441
XrdXrootdProtocol::maxStreams
static const int maxStreams
Definition: XrdXrootdProtocol.hh:213
XrdXrootdProtocol::getDumpCont
int getDumpCont()
XrdXrootdProtocol::sigReq2Ver
ClientRequest sigReq2Ver
Definition: XrdXrootdProtocol.hh:506
XrdSys::RAtomic< int >
XrdXrootd::gdCallBack::gdCallBack
gdCallBack()
Definition: XrdXrootdProtocol.hh:123
XrdOucTList
Definition: XrdOucTList.hh:42
XrdXrootdProtocol::endNote
XrdSysCondVar2 * endNote
Definition: XrdXrootdProtocol.hh:572
XrdXrootdProtocol::tlsCap
static char tlsCap
Definition: XrdXrootdProtocol.hh:453
XrdXrootdProtocol::RD_open4
@ RD_open4
Definition: XrdXrootdProtocol.hh:239
XrdXrootdProtocol::RD_chksum
@ RD_chksum
Definition: XrdXrootdProtocol.hh:236
XrdXrootdProtocol::mapMode
static int mapMode(int mode)
XrdXrootdProtocol::cumSegsW
int cumSegsW
Definition: XrdXrootdProtocol.hh:478
XrdXrootdProtocol::Req_TLSLogin
static const char Req_TLSLogin
Definition: XrdXrootdProtocol.hh:449
XrdXrootdProtocol::RD_Table
Definition: XrdXrootdProtocol.hh:430
XrdXrootdProtocol::XeqFALsd
int XeqFALsd(XrdSfsFACtl &ctl)
XrdXrootdProtocol::Response
XrdXrootdResponse Response
Definition: XrdXrootdProtocol.hh:606
XrdXrootdProtocol::xfsl
static int xfsl(XrdOucStream &Config)
XrdXrootdProtocol::do_Qconf
int do_Qconf()
XrdXrootdProtocol::RD_Table::Port
unsigned short Port[2]
Definition: XrdXrootdProtocol.hh:431
XrdXrootd::IOParms::IOLen
int IOLen
Definition: XrdXrootdProtocol.hh:139
XrdXrootdProtocol::streamMutex
XrdSysMutex streamMutex
Definition: XrdXrootdProtocol.hh:570
XrdXrootdProtocol::SendFile
int SendFile(int fildes)
XrdXrootdProtocol::JobCKTLST
static XrdOucTList * JobCKTLST
Definition: XrdXrootdProtocol.hh:424
XrdXrootdProtocol::wvSeq
unsigned char wvSeq
Definition: XrdXrootdProtocol.hh:588
XrdXrootdProtocol::myUName
static const char * myUName
Definition: XrdXrootdProtocol.hh:402
XrdXrootdProtocol::AppName
char * AppName
Definition: XrdXrootdProtocol.hh:502
XrdXrootdProtocol::totReadP
long long totReadP
Definition: XrdXrootdProtocol.hh:481
XrdXrootdAdmin
Definition: XrdXrootdAdmin.hh:44
XrdXrootdProtocol::do_ChkPnt
int do_ChkPnt()
XrdSysError.hh
XrdXrootdProtocol::do_Open
int do_Open()
XrdXrootdProtocol::as_maxperlnk
static int as_maxperlnk
Definition: XrdXrootdProtocol.hh:217
XrdXrootdProtocol::RD_open2
@ RD_open2
Definition: XrdXrootdProtocol.hh:239