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"
39#include "XrdSfs/XrdSfsDio.hh"
40
41#include "Xrd/XrdObject.hh"
42#include "Xrd/XrdProtocol.hh"
47
48/******************************************************************************/
49/* D e f i n e s */
50/******************************************************************************/
51
52#define ROOTD_PQ 2012
53
54#define XRD_LOGGEDIN 1
55#define XRD_NEED_AUTH 2
56#define XRD_ADMINUSER 4
57#define XRD_BOUNDPATH 8
58
59#ifndef __GNUC__
60#define __attribute__(x)
61#endif
62
63/******************************************************************************/
64/* x r d _ P r o t o c o l _ X R o o t d */
65/******************************************************************************/
66
67class XrdNetSocket;
68class XrdOucEnv;
69class XrdOucErrInfo;
70class XrdOucReqID;
71class XrdOucStream;
72class XrdOucTList;
73class XrdOucTokenizer;
74class XrdOucTrace;
75class XrdSecProtect;
76class XrdSecProtector;
77class XrdSfsDirectory;
79class XrdSecProtocol;
80class XrdBuffer;
81class XrdLink;
82class XrdXrootdAioReq;
83class XrdXrootdFile;
86class XrdXrootdJob;
88class XrdXrootdPio;
89class XrdXrootdStats;
90class XrdXrootdWVInfo;
91class XrdXrootdXPath;
92
94{
95friend class XrdXrootdAdmin;
96friend class XrdXrootdAioReq;
97public:
98
99static int Configure(char *parms, XrdProtocol_Config *pi);
100
101 void DoIt() {(*this.*Resume)();}
102
104
106
107 int Process(XrdLink *lp); // Sync: Job->Link.DoIt->Process
108
109 int Process2();
110
111 int ProcSig();
112
113 void Recycle(XrdLink *lp, int consec, const char *reason);
114
115 int SendFile(int fildes);
116
117 int SendFile(XrdOucSFVec *sfvec, int sfvnum);
118
119 void SetFD(int fildes);
120
121 int Stats(char *buff, int blen, int do_sync=0);
122
123static int StatGen(struct stat &buf, char *xxBuff);
124
125// XrdXrootdProtocol operator =(const XrdXrootdProtocol &rhs) = delete;
129
130private:
131
132// Note that Route[] structure (below) must have RD_Num elements!
133//
138
139 int do_Admin();
140 int do_Auth();
141 int do_Bind();
142 int do_Chmod();
143 int do_CKsum(int canit);
144 int do_CKsum(char *algT, const char *Path, char *Opaque);
145 int do_Close();
147 int do_DirStat(XrdSfsDirectory *dp, char *pbuff, char *opaque);
150 int do_Login();
152 int do_Mkdir();
153 int do_Mv();
154 int do_Offload(int pathID, int isRead);
156 int do_Open();
157 int do_Ping();
158 int do_Prepare(bool isQuery=false);
161 int do_Qconf();
162 int do_Qfh();
163 int do_Qopaque(short);
165 int do_Query();
167 int do_Read();
168 int do_ReadV();
169 int do_ReadAll(int asyncOK=1);
170 int do_ReadNone(int &retc, int &pathID);
171 int do_Rm();
172 int do_Rmdir();
173 int do_Set();
175 int do_Stat();
176 int do_Statx();
177 int do_Sync();
179 int do_Write();
185
186 int aio_Error(const char *op, int ecode);
187 int aio_Read();
191
192 void Assign(const XrdXrootdProtocol &rhs);
193static int CheckSum(XrdOucStream *, char **, int);
194 void Cleanup();
195static int Config(const char *fn);
196static int ConfigSecurity(XrdOucEnv &xEnv, const char *cfn);
197 int fsError(int rc, char opc, XrdOucErrInfo &myError,
198 const char *Path, char *Cgi);
199 int fsOvrld(char opc, const char *Path, char *Cgi);
200 int fsRedirNoEnt(const char *eMsg, char *Cgi, int popt);
201 int getBuff(const int isRead, int Quantum);
202 int getData(const char *dtype, char *buff, int blen);
203 void logLogin(bool xauth=false);
204static int mapMode(int mode);
205static void PidFile();
206 void Reset();
207static int rpCheck(char *fn, char **opaque);
208 int rpEmsg(const char *op, char *fn);
209 int vpEmsg(const char *op, char *fn);
210static int Squash(char *);
216static int xexpdo(char *path, int popt=0);
218static int xfsL(XrdOucStream &Config, char *val, int lix);
225static bool xred_php(char *val, char *hP[2], int rPort[2]);
226static void xred_set(RD_func func, char *rHost[2], int rPort[2]);
227static bool xred_xok(int func, char *rHost[2], int rPort[2]);
231
234
235protected:
236
237 void MonAuth();
238 int SetSF(kXR_char *fhandle, bool seton=false);
239
240static XrdXrootdXPath RPList; // Redirected paths
241static XrdXrootdXPath RQList; // Redirected paths for ENOENT
242static XrdXrootdXPath XPList; // Exported paths
243static XrdSfsFileSystem *osFS; // The filesystem
244static XrdSfsFileSystem *digFS; // The filesystem (digFS)
245static XrdSecService *CIA; // Authentication Server
246static XrdSecProtector *DHS; // Protection Server
247static XrdXrootdFileLock *Locker; // File lock handler
248static XrdScheduler *Sched; // System scheduler
249static XrdBuffManager *BPool; // Buffer manager
250static XrdSysError eDest; // Error message handler
251static const char *myInst;
252static const char *TraceID;
253static char *pidPath;
254static int RQLxist; // Something is present in RQList
255static int myPID;
256static int myRole; // Role for kXR_protocol (>= 2.9.7)
257static int myRolf; // Role for kXR_protocol (< 2.9.7)
258
259// Admin control area
260//
262
263// Processing configuration values
264//
265static int hailWait;
266static int readWait;
267static int Port;
268static int Window;
269static int WANPort;
270static int WANWindow;
271static char *SecLib;
272static char *FSLib[2];
273static int FSLvn[2];
274static char *digLib; // Normally zero for now
275static char *digParm;
276static char *Notify;
277static const char *myCName;
278static int myCNlen;
279static char isRedir;
280static char JobLCL;
281static char JobCKCGI;
283static char *JobCKT;
286
287// Static redirection
288//
289static struct RD_Table {char *Host[2];
290 unsigned short Port[2];
291 short RDSz[2];} Route[RD_Num];
292static int OD_Stall;
293static bool OD_Bypass;
294static bool OD_Redir;
295
296// async configuration values
297//
298static int as_maxperlnk; // Max async requests per link
299static int as_maxperreq; // Max async ops per request
300static int as_maxpersrv; // Max async ops per server
301static int as_miniosz; // Min async request size
302static int as_minsfsz; // Min sendf request size
303static int as_segsize; // Aio quantum (optimal)
304static int as_maxstalls; // Maximum stalls we will tolerate
305static int as_force; // aio to be forced
306static int as_noaio; // aio is disabled
307static int as_nosf; // sendfile is disabled
308static int as_syncw; // writes to be synchronous
309static int maxBuffsz; // Maximum buffer size we can have
310static int maxTransz; // Maximum transfer size we can have
311static const int maxRvecsz = 1024; // Maximum read vector size
312static const int maxWvecsz = 1024; // Maximum writ vector size
313
314// Statistical area
315//
317int numReads; // Count for kXR_read
318int numReadP; // Count for kXR_read pre-preads
319int numReadV; // Count for kkR_readv
320int numSegsV; // Count for kkR_readv segmens
321int numWritV; // Count for kkR_write
322int numSegsW; // Count for kkR_writev segmens
323int numWrites; // Count
324int numFiles; // Count
325
326int cumReads; // Count less numReads
327int cumReadP; // Count less numReadP
328int cumReadV; // Count less numReadV
329int cumSegsV; // Count less numSegsV
330int cumWritV; // Count less numWritV
331int cumSegsW; // Count less numSegsW
332int cumWrites; // Count less numWrites
333long long totReadP; // Bytes
334
335// Data local to each protocol/link combination
336//
343int reserved; // In R5 clientPV will include clientRN
344short rdType;
346unsigned char CapVer;
347
348// Authentication area
349//
354
355ClientRequest sigReq2Ver; // Request to verify
356SecurityRequest sigReq; // Signature request
357char sigBuff[64]; // Signature payload SHA256 + blowfish
358bool sigNeed; // Signature target present
359bool sigHere; // Signature request present
360bool sigRead; // Signature being read
361bool sigWarn; // Once for unneeded signature
362
363// Buffer information, used to drive DoIt(), getData(), and (*Resume)()
364//
366char *myBuff;
371XrdXrootdWVInfo *wvInfo;
372union {
373long long myOffset;
374long long myWVBytes;
375int myEInfo[2];
376 };
379
380// Buffer resize control area
381//
382static int hcMax;
385 int hcNow;
387
388// This area is used for parallel streams
389//
390static const int maxStreams = 16;
394unsigned int mySID;
398char isNOP;
399
400static const int maxPio = 4;
404
405short PathID;
408unsigned char rvSeq;
409unsigned char wvSeq;
410
411// Track usage limts.
412//
413static bool PrepareAlt; // Use alternate prepare handling
414static bool LimitError; // Indicates that hitting a limit should result in an error response.
415 // If false, when possible, silently ignore errors.
417static int PrepareLimit;
418
419// Buffers to handle client requests
420//
424};
425#endif
unsigned char kXR_char
Definition: XPtypes.hh:65
#define stat(a, b)
Definition: XrdPosix.hh:96
Definition: XrdBuffer.hh:75
Definition: XrdBuffer.hh:42
Definition: XrdNetSocket.hh:48
Definition: XrdOucEnv.hh:42
Definition: XrdOucErrInfo.hh:100
Definition: XrdOucReqID.hh:42
Definition: XrdOucStream.hh:46
Definition: XrdOucTList.hh:42
Definition: XrdOucTokenizer.hh:33
Definition: XrdOucTrace.hh:36
Definition: XrdProtocol.hh:55
Definition: XrdProtocol.hh:117
Definition: XrdScheduler.hh:45
Definition: XrdSecEntity.hh:52
Definition: XrdSecProtect.hh:56
Definition: XrdSecProtector.hh:73
Definition: XrdSecInterface.hh:131
Definition: XrdSecInterface.hh:536
Definition: XrdSfsDio.hh:47
Definition: XrdSfsInterface.hh:995
Definition: XrdSfsInterface.hh:210
Definition: XrdSysError.hh:90
Definition: XrdSysPthread.hh:166
Definition: XrdSysPthread.hh:404
Definition: XrdXrootdAdmin.hh:44
Definition: XrdXrootdAio.hh:99
static int Quantum
Definition: XrdXrootdAio.hh:146
Definition: XrdXrootdFileLock.hh:33
Definition: XrdXrootdFile.hh:149
Definition: XrdXrootdFile.hh:98
Definition: XrdXrootdJob.hh:52
Definition: XrdXrootdMonitor.hh:132
Definition: XrdXrootdMonitor.hh:72
Definition: XrdXrootdPio.hh:39
Definition: XrdXrootdProtocol.hh:94
XrdSecEntity Entity
Definition: XrdXrootdProtocol.hh:352
int cumWrites
Definition: XrdXrootdProtocol.hh:332
static XrdNetSocket * AdminSock
Definition: XrdXrootdProtocol.hh:261
static bool OD_Redir
Definition: XrdXrootdProtocol.hh:294
static char * digLib
Definition: XrdXrootdProtocol.hh:274
int SetSF(kXR_char *fhandle, bool seton=false)
void SetFD(int fildes)
XrdSecProtect * Protect
Definition: XrdXrootdProtocol.hh:353
XrdXrootdAioReq * myAioReq
Definition: XrdXrootdProtocol.hh:365
static int xexp(XrdOucStream &Config)
static XrdBuffManager * BPool
Definition: XrdXrootdProtocol.hh:249
static int xprep(XrdOucStream &Config)
static XrdSfsFileSystem * osFS
Definition: XrdXrootdProtocol.hh:243
int getBuff(const int isRead, int Quantum)
int getData(const char *dtype, char *buff, int blen)
static char * digParm
Definition: XrdXrootdProtocol.hh:275
int numFiles
Definition: XrdXrootdProtocol.hh:324
int fsRedirNoEnt(const char *eMsg, char *Cgi, int popt)
static int xlimit(XrdOucStream &Config)
int do_CKsum(int canit)
XrdXrootdProtocol * Stream[maxStreams]
Definition: XrdXrootdProtocol.hh:393
static int as_maxpersrv
Definition: XrdXrootdProtocol.hh:300
static XrdXrootdXPath RPList
Definition: XrdXrootdProtocol.hh:240
static int xpidf(XrdOucStream &Config)
void Recycle(XrdLink *lp, int consec, const char *reason)
int do_Offload(int pathID, int isRead)
int numReadP
Definition: XrdXrootdProtocol.hh:318
char isNOP
Definition: XrdXrootdProtocol.hh:398
int Process(XrdLink *lp)
int myBlast
Definition: XrdXrootdProtocol.hh:368
unsigned char rvSeq
Definition: XrdXrootdProtocol.hh:408
static char * SecLib
Definition: XrdXrootdProtocol.hh:271
XrdSecEntity * Client
Definition: XrdXrootdProtocol.hh:350
static int as_miniosz
Definition: XrdXrootdProtocol.hh:301
static int Port
Definition: XrdXrootdProtocol.hh:267
static XrdSecProtector * DHS
Definition: XrdXrootdProtocol.hh:246
static int xapath(XrdOucStream &Config)
int SendFile(XrdOucSFVec *sfvec, int sfvnum)
static int RQLxist
Definition: XrdXrootdProtocol.hh:254
static char * Notify
Definition: XrdXrootdProtocol.hh:276
int Stats(char *buff, int blen, int do_sync=0)
ClientRequest Request
Definition: XrdXrootdProtocol.hh:422
static int mapMode(int mode)
ClientRequest sigReq2Ver
Definition: XrdXrootdProtocol.hh:355
long long totReadP
Definition: XrdXrootdProtocol.hh:333
static XrdOucReqID * PrepID
Definition: XrdXrootdProtocol.hh:285
static bool OD_Bypass
Definition: XrdXrootdProtocol.hh:293
char * myBuff
Definition: XrdXrootdProtocol.hh:366
XrdXrootdProtocol & operator=(const XrdXrootdProtocol &rhs)
static int hcMax
Definition: XrdXrootdProtocol.hh:382
static int xsecl(XrdOucStream &Config)
char doWriteC
Definition: XrdXrootdProtocol.hh:407
static const int maxRvecsz
Definition: XrdXrootdProtocol.hh:311
XrdXrootdWVInfo * wvInfo
Definition: XrdXrootdProtocol.hh:371
int cumReads
Definition: XrdXrootdProtocol.hh:326
static void PidFile()
static int xfsL(XrdOucStream &Config, char *val, int lix)
XrdSysSemaphore * reTry
Definition: XrdXrootdProtocol.hh:392
XrdXrootdFileTable * FTab
Definition: XrdXrootdProtocol.hh:339
static int readWait
Definition: XrdXrootdProtocol.hh:266
static int rpCheck(char *fn, char **opaque)
int numWritV
Definition: XrdXrootdProtocol.hh:321
static int as_syncw
Definition: XrdXrootdProtocol.hh:308
static void xred_set(RD_func func, char *rHost[2], int rPort[2])
char isDead
Definition: XrdXrootdProtocol.hh:396
static XrdSfsFileSystem * digFS
Definition: XrdXrootdProtocol.hh:244
static XrdSecService * CIA
Definition: XrdXrootdProtocol.hh:245
static int xexpdo(char *path, int popt=0)
static int as_maxperreq
Definition: XrdXrootdProtocol.hh:299
XrdSecProtocol * AuthProt
Definition: XrdXrootdProtocol.hh:351
static int myRole
Definition: XrdXrootdProtocol.hh:256
XrdXrootdMonitor::User Monitor
Definition: XrdXrootdProtocol.hh:340
static int as_noaio
Definition: XrdXrootdProtocol.hh:306
int myStalls
Definition: XrdXrootdProtocol.hh:378
int clientPV
Definition: XrdXrootdProtocol.hh:341
static int as_segsize
Definition: XrdXrootdProtocol.hh:303
XrdXrootdPio * pioFree
Definition: XrdXrootdProtocol.hh:403
int SendFile(int fildes)
int PrepareCount
Definition: XrdXrootdProtocol.hh:416
static int myCNlen
Definition: XrdXrootdProtocol.hh:278
static int xfso(XrdOucStream &Config)
static char * pidPath
Definition: XrdXrootdProtocol.hh:253
unsigned char wvSeq
Definition: XrdXrootdProtocol.hh:409
unsigned int mySID
Definition: XrdXrootdProtocol.hh:394
static int maxBuffsz
Definition: XrdXrootdProtocol.hh:309
static int StatGen(struct stat &buf, char *xxBuff)
int do_Protocol(ServerResponseBody_Protocol *rsp=0)
int do_ReadAll(int asyncOK=1)
int myIOLen
Definition: XrdXrootdProtocol.hh:377
XrdLink * Link
Definition: XrdXrootdProtocol.hh:337
long long myOffset
Definition: XrdXrootdProtocol.hh:373
int numReadV
Definition: XrdXrootdProtocol.hh:319
static const char * TraceID
Definition: XrdXrootdProtocol.hh:252
static const int maxPio
Definition: XrdXrootdProtocol.hh:400
int numSegsW
Definition: XrdXrootdProtocol.hh:322
char isActive
Definition: XrdXrootdProtocol.hh:395
SecurityRequest sigReq
Definition: XrdXrootdProtocol.hh:356
static int xtrace(XrdOucStream &Config)
int(XrdXrootdProtocol::* Resume)()
Definition: XrdXrootdProtocol.hh:369
int do_ReadNone(int &retc, int &pathID)
static int xlog(XrdOucStream &Config)
static XrdXrootdJob * JobCKS
Definition: XrdXrootdProtocol.hh:282
static int xfsl(XrdOucStream &Config)
static int WANPort
Definition: XrdXrootdProtocol.hh:269
static int FSLvn[2]
Definition: XrdXrootdProtocol.hh:273
static int xdig(XrdOucStream &Config)
static XrdSysError eDest
Definition: XrdXrootdProtocol.hh:250
bool sigWarn
Definition: XrdXrootdProtocol.hh:361
int cumSegsW
Definition: XrdXrootdProtocol.hh:331
int cumReadP
Definition: XrdXrootdProtocol.hh:327
static int myPID
Definition: XrdXrootdProtocol.hh:255
static int as_maxstalls
Definition: XrdXrootdProtocol.hh:304
short PathID
Definition: XrdXrootdProtocol.hh:405
XrdSysMutex streamMutex
Definition: XrdXrootdProtocol.hh:391
XrdXrootdPio * pioLast
Definition: XrdXrootdProtocol.hh:402
int fsOvrld(char opc, const char *Path, char *Cgi)
static bool PrepareAlt
Definition: XrdXrootdProtocol.hh:413
static XrdXrootdXPath XPList
Definition: XrdXrootdProtocol.hh:242
void logLogin(bool xauth=false)
static int as_maxperlnk
Definition: XrdXrootdProtocol.hh:298
int do_Qopaque(short)
XrdObject< XrdXrootdProtocol > ProtLink
Definition: XrdXrootdProtocol.hh:233
int clientRN
Definition: XrdXrootdProtocol.hh:342
int reserved
Definition: XrdXrootdProtocol.hh:343
int do_CKsum(char *algT, const char *Path, char *Opaque)
int cumWritV
Definition: XrdXrootdProtocol.hh:330
static bool xred_xok(int func, char *rHost[2], int rPort[2])
int do_Set_Mon(XrdOucTokenizer &setargs)
int cumReadV
Definition: XrdXrootdProtocol.hh:328
static int xasync(XrdOucStream &Config)
unsigned char CapVer
Definition: XrdXrootdProtocol.hh:346
static XrdOucTList * JobCKTLST
Definition: XrdXrootdProtocol.hh:284
void Assign(const XrdXrootdProtocol &rhs)
static char isRedir
Definition: XrdXrootdProtocol.hh:279
int cumSegsV
Definition: XrdXrootdProtocol.hh:329
static int as_nosf
Definition: XrdXrootdProtocol.hh:307
static int ConfigSecurity(XrdOucEnv &xEnv, const char *cfn)
static int OD_Stall
Definition: XrdXrootdProtocol.hh:292
static int PrepareLimit
Definition: XrdXrootdProtocol.hh:417
char Status
Definition: XrdXrootdProtocol.hh:345
XrdXrootdResponse Response
Definition: XrdXrootdProtocol.hh:423
int do_DirStat(XrdSfsDirectory *dp, char *pbuff, char *opaque)
int do_Prepare(bool isQuery=false)
static char JobLCL
Definition: XrdXrootdProtocol.hh:280
int hcNow
Definition: XrdXrootdProtocol.hh:385
static int xred(XrdOucStream &Config)
static char JobCKCGI
Definition: XrdXrootdProtocol.hh:281
static const char * myCName
Definition: XrdXrootdProtocol.hh:277
static char * JobCKT
Definition: XrdXrootdProtocol.hh:283
static int xcksum(XrdOucStream &Config)
int numSegsV
Definition: XrdXrootdProtocol.hh:320
static int Config(const char *fn)
XrdBuffer * argp
Definition: XrdXrootdProtocol.hh:338
static XrdXrootdStats * SI
Definition: XrdXrootdProtocol.hh:316
XrdProtocol * Match(XrdLink *lp)
static const int maxStreams
Definition: XrdXrootdProtocol.hh:390
~XrdXrootdProtocol()
Definition: XrdXrootdProtocol.hh:128
void DoIt()
Definition: XrdXrootdProtocol.hh:101
int hcNext
Definition: XrdXrootdProtocol.hh:384
int aio_Error(const char *op, int ecode)
int numWrites
Definition: XrdXrootdProtocol.hh:323
static int CheckSum(XrdOucStream *, char **, int)
static int myRolf
Definition: XrdXrootdProtocol.hh:257
static char * FSLib[2]
Definition: XrdXrootdProtocol.hh:272
static XrdXrootdXPath RQList
Definition: XrdXrootdProtocol.hh:241
static int xmon(XrdOucStream &Config)
static int as_minsfsz
Definition: XrdXrootdProtocol.hh:302
static int as_force
Definition: XrdXrootdProtocol.hh:305
static const char * myInst
Definition: XrdXrootdProtocol.hh:251
int myEInfo[2]
Definition: XrdXrootdProtocol.hh:375
bool sigRead
Definition: XrdXrootdProtocol.hh:360
int myBlen
Definition: XrdXrootdProtocol.hh:367
static int Configure(char *parms, XrdProtocol_Config *pi)
RD_func
Definition: XrdXrootdProtocol.hh:134
@ RD_chmod
Definition: XrdXrootdProtocol.hh:134
@ RD_open1
Definition: XrdXrootdProtocol.hh:137
@ RD_dirlist
Definition: XrdXrootdProtocol.hh:134
@ RD_rm
Definition: XrdXrootdProtocol.hh:135
@ RD_trunc
Definition: XrdXrootdProtocol.hh:136
@ RD_prepare
Definition: XrdXrootdProtocol.hh:135
@ RD_open2
Definition: XrdXrootdProtocol.hh:137
@ RD_open4
Definition: XrdXrootdProtocol.hh:137
@ RD_mkdir
Definition: XrdXrootdProtocol.hh:134
@ RD_rmdir
Definition: XrdXrootdProtocol.hh:135
@ RD_chksum
Definition: XrdXrootdProtocol.hh:134
@ RD_locate
Definition: XrdXrootdProtocol.hh:134
@ RD_stat
Definition: XrdXrootdProtocol.hh:136
@ RD_open3
Definition: XrdXrootdProtocol.hh:137
@ RD_mv
Definition: XrdXrootdProtocol.hh:135
@ RD_Num
Definition: XrdXrootdProtocol.hh:137
@ RD_prepstg
Definition: XrdXrootdProtocol.hh:135
@ RD_ovld
Definition: XrdXrootdProtocol.hh:136
static const int maxWvecsz
Definition: XrdXrootdProtocol.hh:312
static int Squash(char *)
char sigBuff[64]
Definition: XrdXrootdProtocol.hh:357
int numReads
Definition: XrdXrootdProtocol.hh:317
XrdXrootdReqID ReqID
Definition: XrdXrootdProtocol.hh:421
int hcPrev
Definition: XrdXrootdProtocol.hh:383
bool sigNeed
Definition: XrdXrootdProtocol.hh:358
short rdType
Definition: XrdXrootdProtocol.hh:344
int fsError(int rc, char opc, XrdOucErrInfo &myError, const char *Path, char *Cgi)
int halfBSize
Definition: XrdXrootdProtocol.hh:386
static int WANWindow
Definition: XrdXrootdProtocol.hh:270
static int Window
Definition: XrdXrootdProtocol.hh:268
static XrdScheduler * Sched
Definition: XrdXrootdProtocol.hh:248
XrdXrootdFile * myFile
Definition: XrdXrootdProtocol.hh:370
static int hailWait
Definition: XrdXrootdProtocol.hh:265
int vpEmsg(const char *op, char *fn)
static XrdObjectQ< XrdXrootdProtocol > ProtStack
Definition: XrdXrootdProtocol.hh:232
XrdXrootdPio * pioFirst
Definition: XrdXrootdProtocol.hh:401
bool sigHere
Definition: XrdXrootdProtocol.hh:359
char isBound
Definition: XrdXrootdProtocol.hh:397
static struct XrdXrootdProtocol::RD_Table Route[RD_Num]
static bool LimitError
Definition: XrdXrootdProtocol.hh:414
long long myWVBytes
Definition: XrdXrootdProtocol.hh:374
static int maxTransz
Definition: XrdXrootdProtocol.hh:310
char doWrite
Definition: XrdXrootdProtocol.hh:406
int rpEmsg(const char *op, char *fn)
static bool xred_php(char *val, char *hP[2], int rPort[2])
static XrdXrootdFileLock * Locker
Definition: XrdXrootdProtocol.hh:247
Definition: XrdXrootdReqID.hh:36
Definition: XrdXrootdResponse.hh:49
Definition: XrdXrootdStats.hh:40
Definition: XrdXrootdXPath.hh:43
Definition: XProtocol.hh:767
Definition: XrdOucSFVec.hh:43
Definition: XrdXrootdProtocol.hh:289
unsigned short Port[2]
Definition: XrdXrootdProtocol.hh:290
short RDSz[2]
Definition: XrdXrootdProtocol.hh:291
char * Host[2]
Definition: XrdXrootdProtocol.hh:289
Definition: XProtocol.hh:630
Definition: XProtocol.hh:664