1 #ifndef __XROOTD_PROTOCOL_H__
2 #define __XROOTD_PROTOCOL_H__
34 #include <sys/types.h>
54 #define XRD_LOGGEDIN 1
55 #define XRD_NEED_AUTH 2
56 #define XRD_ADMINUSER 4
57 #define XRD_BOUNDPATH 8
60 #define __attribute__(x)
77 class XrdSfsDirectory;
78 class XrdSfsFileSystem;
90 class XrdXrootdWVInfo;
119 void SetFD(
int fildes);
121 int Stats(
char *buff,
int blen,
int do_sync=0);
123 static int StatGen(
struct stat &buf,
char *xxBuff);
144 int do_CKsum(
char *algT,
const char *Path,
char *Opaque);
147 int do_DirStat(XrdSfsDirectory *dp,
char *pbuff,
char *opaque);
186 int aio_Error(
const char *op,
int ecode);
195 static int Config(
const char *fn);
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);
202 int getData(
const char *dtype,
char *buff,
int blen);
207 static int rpCheck(
char *fn,
char **opaque);
208 int rpEmsg(
const char *op,
char *fn);
209 int vpEmsg(
const char *op,
char *fn);
210 static int Squash(
char *);
216 static int xexpdo(
char *path,
int popt=0);
225 static bool xred_php(
char *val,
char *hP[2],
int rPort[2]);
227 static bool xred_xok(
int func,
char *rHost[2],
int rPort[2]);
static char JobLCL
Definition: XrdXrootdProtocol.hh:280
static int mapMode(int mode)
int cumSegsW
Definition: XrdXrootdProtocol.hh:331
unsigned char kXR_char
Definition: XPtypes.hh:65
Definition: XProtocol.hh:766
XrdXrootdResponse Response
Definition: XrdXrootdProtocol.hh:423
static int as_force
Definition: XrdXrootdProtocol.hh:305
int cumSegsV
Definition: XrdXrootdProtocol.hh:329
static int xfsl(XrdOucStream &Config)
XrdSysMutex streamMutex
Definition: XrdXrootdProtocol.hh:391
static int as_miniosz
Definition: XrdXrootdProtocol.hh:301
long long totReadP
Definition: XrdXrootdProtocol.hh:333
static XrdOucTList * JobCKTLST
Definition: XrdXrootdProtocol.hh:284
char doWriteC
Definition: XrdXrootdProtocol.hh:407
XrdXrootdMonitor::User Monitor
Definition: XrdXrootdProtocol.hh:340
int do_Protocol(ServerResponseBody_Protocol *rsp=0)
static int as_maxperlnk
Definition: XrdXrootdProtocol.hh:298
XrdSecProtect * Protect
Definition: XrdXrootdProtocol.hh:353
int hcNext
Definition: XrdXrootdProtocol.hh:384
static int as_maxperreq
Definition: XrdXrootdProtocol.hh:299
Definition: XrdXrootdProtocol.hh:135
short rdType
Definition: XrdXrootdProtocol.hh:344
static int xfsL(XrdOucStream &Config, char *val, int lix)
bool sigNeed
Definition: XrdXrootdProtocol.hh:358
XrdBuffer * argp
Definition: XrdXrootdProtocol.hh:338
int fsOvrld(char opc, const char *Path, char *Cgi)
static const int maxRvecsz
Definition: XrdXrootdProtocol.hh:311
static int Quantum
Definition: XrdXrootdAio.hh:146
static XrdXrootdFileLock * Locker
Definition: XrdXrootdProtocol.hh:247
bool sigWarn
Definition: XrdXrootdProtocol.hh:361
static XrdXrootdXPath RQList
Definition: XrdXrootdProtocol.hh:241
static XrdBuffManager * BPool
Definition: XrdXrootdProtocol.hh:249
char * myBuff
Definition: XrdXrootdProtocol.hh:366
int hcNow
Definition: XrdXrootdProtocol.hh:385
Definition: XrdXrootdProtocol.hh:137
int do_DirStat(XrdSfsDirectory *dp, char *pbuff, char *opaque)
int cumWrites
Definition: XrdXrootdProtocol.hh:332
static int hcMax
Definition: XrdXrootdProtocol.hh:382
static int xpidf(XrdOucStream &Config)
Definition: XrdXrootdProtocol.hh:135
Definition: XrdXrootdProtocol.hh:134
static XrdSecProtector * DHS
Definition: XrdXrootdProtocol.hh:246
char isDead
Definition: XrdXrootdProtocol.hh:396
void Recycle(XrdLink *lp, int consec, const char *reason)
static bool OD_Redir
Definition: XrdXrootdProtocol.hh:294
Definition: XrdXrootdProtocol.hh:135
Definition: XrdXrootdProtocol.hh:289
XrdLink * Link
Definition: XrdXrootdProtocol.hh:337
ClientRequest Request
Definition: XrdXrootdProtocol.hh:422
Definition: XrdSecInterface.hh:535
int do_ReadAll(int asyncOK=1)
XrdXrootdWVInfo * wvInfo
Definition: XrdXrootdProtocol.hh:371
RD_func
Definition: XrdXrootdProtocol.hh:134
static char * Notify
Definition: XrdXrootdProtocol.hh:276
static int OD_Stall
Definition: XrdXrootdProtocol.hh:292
int clientPV
Definition: XrdXrootdProtocol.hh:341
int getBuff(const int isRead, int Quantum)
static int as_nosf
Definition: XrdXrootdProtocol.hh:307
static int xsecl(XrdOucStream &Config)
static XrdXrootdJob * JobCKS
Definition: XrdXrootdProtocol.hh:282
Definition: XrdOucSFVec.hh:43
Definition: XrdXrootdProtocol.hh:136
int Stats(char *buff, int blen, int do_sync=0)
int aio_Error(const char *op, int ecode)
Definition: XrdOucStream.hh:45
static int hailWait
Definition: XrdXrootdProtocol.hh:265
XrdXrootdPio * pioLast
Definition: XrdXrootdProtocol.hh:402
Definition: XrdSecInterface.hh:130
static char * JobCKT
Definition: XrdXrootdProtocol.hh:283
static int as_maxpersrv
Definition: XrdXrootdProtocol.hh:300
int myIOLen
Definition: XrdXrootdProtocol.hh:377
int SetSF(kXR_char *fhandle, bool seton=false)
static bool PrepareAlt
Definition: XrdXrootdProtocol.hh:413
static int xapath(XrdOucStream &Config)
char isBound
Definition: XrdXrootdProtocol.hh:397
short PathID
Definition: XrdXrootdProtocol.hh:405
unsigned char CapVer
Definition: XrdXrootdProtocol.hh:346
static int Squash(char *)
static int WANWindow
Definition: XrdXrootdProtocol.hh:270
Definition: XrdProtocol.hh:116
int fsError(int rc, char opc, XrdOucErrInfo &myError, const char *Path, char *Cgi)
Definition: XrdNetSocket.hh:47
bool sigRead
Definition: XrdXrootdProtocol.hh:360
static int RQLxist
Definition: XrdXrootdProtocol.hh:254
int numReadV
Definition: XrdXrootdProtocol.hh:319
void Assign(const XrdXrootdProtocol &rhs)
char isNOP
Definition: XrdXrootdProtocol.hh:398
static XrdSysError eDest
Definition: XrdXrootdProtocol.hh:250
int getData(const char *dtype, char *buff, int blen)
Definition: XrdXrootdProtocol.hh:93
static int maxBuffsz
Definition: XrdXrootdProtocol.hh:309
static int Port
Definition: XrdXrootdProtocol.hh:267
static int myPID
Definition: XrdXrootdProtocol.hh:255
int numFiles
Definition: XrdXrootdProtocol.hh:324
Definition: XrdSecProtect.hh:55
Definition: XrdOucReqID.hh:41
int clientRN
Definition: XrdXrootdProtocol.hh:342
~XrdXrootdProtocol()
Definition: XrdXrootdProtocol.hh:128
static XrdObjectQ< XrdXrootdProtocol > ProtStack
Definition: XrdXrootdProtocol.hh:232
Definition: XrdXrootdMonitor.hh:71
bool sigHere
Definition: XrdXrootdProtocol.hh:359
Definition: XrdXrootdPio.hh:38
static int StatGen(struct stat &buf, char *xxBuff)
void logLogin(bool xauth=false)
static XrdNetSocket * AdminSock
Definition: XrdXrootdProtocol.hh:261
int do_Offload(int pathID, int isRead)
Definition: XrdBuffer.hh:74
static int xasync(XrdOucStream &Config)
static XrdSecService * CIA
Definition: XrdXrootdProtocol.hh:245
static bool xred_xok(int func, char *rHost[2], int rPort[2])
Definition: XrdOucTrace.hh:35
Definition: XrdSysError.hh:89
Definition: XrdXrootdProtocol.hh:134
unsigned char rvSeq
Definition: XrdXrootdProtocol.hh:408
int(XrdXrootdProtocol::* Resume)()
Definition: XrdXrootdProtocol.hh:369
int numWrites
Definition: XrdXrootdProtocol.hh:323
static int xlimit(XrdOucStream &Config)
int cumReadP
Definition: XrdXrootdProtocol.hh:327
int myBlast
Definition: XrdXrootdProtocol.hh:368
XrdSecProtocol * AuthProt
Definition: XrdXrootdProtocol.hh:351
Definition: XrdScheduler.hh:44
long long myWVBytes
Definition: XrdXrootdProtocol.hh:374
static int myRole
Definition: XrdXrootdProtocol.hh:256
Definition: XrdXrootdMonitor.hh:131
Definition: XrdXrootdFile.hh:97
Definition: XrdSysPthread.hh:165
SecurityRequest sigReq
Definition: XrdXrootdProtocol.hh:356
Definition: XrdXrootdProtocol.hh:136
static char * digParm
Definition: XrdXrootdProtocol.hh:275
Definition: XrdXrootdFile.hh:148
Definition: XrdXrootdAdmin.hh:43
XrdXrootdReqID ReqID
Definition: XrdXrootdProtocol.hh:421
static int ConfigSecurity(XrdOucEnv &xEnv, const char *cfn)
static const char * TraceID
Definition: XrdXrootdProtocol.hh:252
int myEInfo[2]
Definition: XrdXrootdProtocol.hh:375
static int xprep(XrdOucStream &Config)
char sigBuff[64]
Definition: XrdXrootdProtocol.hh:357
int vpEmsg(const char *op, char *fn)
Definition: XrdLink.hh:63
static bool LimitError
Definition: XrdXrootdProtocol.hh:414
Definition: XrdXrootdProtocol.hh:136
static int readWait
Definition: XrdXrootdProtocol.hh:266
static int WANPort
Definition: XrdXrootdProtocol.hh:269
static XrdXrootdXPath RPList
Definition: XrdXrootdProtocol.hh:240
static int as_segsize
Definition: XrdXrootdProtocol.hh:303
Definition: XrdXrootdAio.hh:98
int numSegsV
Definition: XrdXrootdProtocol.hh:320
static bool OD_Bypass
Definition: XrdXrootdProtocol.hh:293
Definition: XrdOucErrInfo.hh:99
static int xdig(XrdOucStream &Config)
Definition: XrdSecProtector.hh:72
Definition: XProtocol.hh:663
Definition: XrdSysPthread.hh:403
int cumWritV
Definition: XrdXrootdProtocol.hh:330
int myBlen
Definition: XrdXrootdProtocol.hh:367
int numReadP
Definition: XrdXrootdProtocol.hh:318
Definition: XrdProtocol.hh:54
int numSegsW
Definition: XrdXrootdProtocol.hh:322
Definition: XrdOucEnv.hh:41
unsigned int mySID
Definition: XrdXrootdProtocol.hh:394
static int maxTransz
Definition: XrdXrootdProtocol.hh:310
static int xlog(XrdOucStream &Config)
static const char * myInst
Definition: XrdXrootdProtocol.hh:251
static int Config(const char *fn)
static int xexp(XrdOucStream &Config)
static int as_minsfsz
Definition: XrdXrootdProtocol.hh:302
static int xexpdo(char *path, int popt=0)
int cumReads
Definition: XrdXrootdProtocol.hh:326
int numReads
Definition: XrdXrootdProtocol.hh:317
XrdXrootdFileTable * FTab
Definition: XrdXrootdProtocol.hh:339
unsigned short Port[2]
Definition: XrdXrootdProtocol.hh:290
XrdXrootdProtocol & operator=(const XrdXrootdProtocol &rhs)
short RDSz[2]
Definition: XrdXrootdProtocol.hh:291
static const int maxPio
Definition: XrdXrootdProtocol.hh:400
static int xred(XrdOucStream &Config)
Definition: XrdOucTList.hh:41
static XrdXrootdStats * SI
Definition: XrdXrootdProtocol.hh:316
static int CheckSum(XrdOucStream *, char **, int)
static int xfso(XrdOucStream &Config)
Definition: XrdXrootdProtocol.hh:137
static XrdSfsFileSystem * osFS
Definition: XrdXrootdProtocol.hh:243
int do_ReadNone(int &retc, int &pathID)
static XrdSfsFileSystem * digFS
Definition: XrdXrootdProtocol.hh:244
Definition: XrdXrootdProtocol.hh:134
Definition: XrdXrootdReqID.hh:35
XrdSecEntity Entity
Definition: XrdXrootdProtocol.hh:352
static int myCNlen
Definition: XrdXrootdProtocol.hh:278
char doWrite
Definition: XrdXrootdProtocol.hh:406
static int as_maxstalls
Definition: XrdXrootdProtocol.hh:304
#define stat(a, b)
Definition: XrdPosix.hh:96
Definition: XrdXrootdProtocol.hh:135
static int as_noaio
Definition: XrdXrootdProtocol.hh:306
XrdSecEntity * Client
Definition: XrdXrootdProtocol.hh:350
char isActive
Definition: XrdXrootdProtocol.hh:395
static char * SecLib
Definition: XrdXrootdProtocol.hh:271
static XrdXrootdXPath XPList
Definition: XrdXrootdProtocol.hh:242
static int PrepareLimit
Definition: XrdXrootdProtocol.hh:417
Definition: XrdXrootdResponse.hh:48
Definition: XrdXrootdProtocol.hh:135
static int Window
Definition: XrdXrootdProtocol.hh:268
static char * FSLib[2]
Definition: XrdXrootdProtocol.hh:272
int rpEmsg(const char *op, char *fn)
static int xmon(XrdOucStream &Config)
int PrepareCount
Definition: XrdXrootdProtocol.hh:416
int hcPrev
Definition: XrdXrootdProtocol.hh:383
static int myRolf
Definition: XrdXrootdProtocol.hh:257
Definition: XrdXrootdStats.hh:39
XrdSysSemaphore * reTry
Definition: XrdXrootdProtocol.hh:392
int cumReadV
Definition: XrdXrootdProtocol.hh:328
Definition: XrdXrootdProtocol.hh:137
Definition: XrdXrootdXPath.hh:42
static const char * myCName
Definition: XrdXrootdProtocol.hh:277
static struct XrdXrootdProtocol::RD_Table Route[RD_Num]
static int Configure(char *parms, XrdProtocol_Config *pi)
static int xtrace(XrdOucStream &Config)
XrdXrootdProtocol * Stream[maxStreams]
Definition: XrdXrootdProtocol.hh:393
static int as_syncw
Definition: XrdXrootdProtocol.hh:308
static char * digLib
Definition: XrdXrootdProtocol.hh:274
char Status
Definition: XrdXrootdProtocol.hh:345
static int xcksum(XrdOucStream &Config)
XrdXrootdPio * pioFirst
Definition: XrdXrootdProtocol.hh:401
static char JobCKCGI
Definition: XrdXrootdProtocol.hh:281
int halfBSize
Definition: XrdXrootdProtocol.hh:386
int do_Prepare(bool isQuery=false)
int numWritV
Definition: XrdXrootdProtocol.hh:321
Definition: XrdOucTokenizer.hh:32
static bool xred_php(char *val, char *hP[2], int rPort[2])
XrdObject< XrdXrootdProtocol > ProtLink
Definition: XrdXrootdProtocol.hh:233
XrdXrootdFile * myFile
Definition: XrdXrootdProtocol.hh:370
Definition: XrdSfsDio.hh:46
XrdXrootdPio * pioFree
Definition: XrdXrootdProtocol.hh:403
char * Host[2]
Definition: XrdXrootdProtocol.hh:289
Definition: XrdSecEntity.hh:51
Definition: XProtocol.hh:629
Definition: XrdXrootdProtocol.hh:137
static char isRedir
Definition: XrdXrootdProtocol.hh:279
Definition: XrdXrootdProtocol.hh:137
static XrdScheduler * Sched
Definition: XrdXrootdProtocol.hh:248
int myStalls
Definition: XrdXrootdProtocol.hh:378
XrdXrootdAioReq * myAioReq
Definition: XrdXrootdProtocol.hh:365
static int rpCheck(char *fn, char **opaque)
long long myOffset
Definition: XrdXrootdProtocol.hh:373
void DoIt()
Definition: XrdXrootdProtocol.hh:101
static void xred_set(RD_func func, char *rHost[2], int rPort[2])
Definition: XrdXrootdJob.hh:51
static const int maxStreams
Definition: XrdXrootdProtocol.hh:390
int fsRedirNoEnt(const char *eMsg, char *Cgi, int popt)
ClientRequest sigReq2Ver
Definition: XrdXrootdProtocol.hh:355
Definition: XrdXrootdFileLock.hh:32
static char * pidPath
Definition: XrdXrootdProtocol.hh:253
static XrdOucReqID * PrepID
Definition: XrdXrootdProtocol.hh:285
unsigned char wvSeq
Definition: XrdXrootdProtocol.hh:409
int do_Set_Mon(XrdOucTokenizer &setargs)
int reserved
Definition: XrdXrootdProtocol.hh:343
Definition: XrdXrootdProtocol.hh:134
Definition: XrdXrootdProtocol.hh:134
Definition: XrdBuffer.hh:41
XrdProtocol * Match(XrdLink *lp)
static const int maxWvecsz
Definition: XrdXrootdProtocol.hh:312
static int FSLvn[2]
Definition: XrdXrootdProtocol.hh:273