XRootD
Loading...
Searching...
No Matches
XrdOfs.hh
Go to the documentation of this file.
1#ifndef __OFS_API_H__
2#define __OFS_API_H__
3/******************************************************************************/
4/* */
5/* X r d O f s . 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 <cstring>
33#include <dirent.h>
34#include <sys/types.h>
35
36#include "XrdOfs/XrdOfsEvr.hh"
42
43class XrdNetIF;
44class XrdOfsEvs;
45class XrdOfsPocq;
46class XrdOfsPrepare;
47class XrdOss;
48class XrdOssDF;
49class XrdOssDir;
50class XrdOucEnv;
52class XrdSysError;
53class XrdSysLogger;
54class XrdOucStream;
55class XrdSfsAio;
56
57struct XrdVersionInfo;
58
59/******************************************************************************/
60/* X r d O f s D i r e c t o r y */
61/******************************************************************************/
62
64{
65public:
66
67 int open(const char *dirName,
68 const XrdSecEntity *client,
69 const char *opaque = 0);
70
71 const char *nextEntry();
72
73 int close();
74
75inline void copyError(XrdOucErrInfo &einfo) {einfo = error;}
76
77const char *FName() {return (const char *)fname;}
78
79 int autoStat(struct stat *buf);
80
81 XrdOfsDirectory(XrdOucErrInfo &eInfo, const char *user)
82 : XrdSfsDirectory(eInfo), tident(user ? user : ""),
83 fname(0), dp(0), atEOF(0) {}
84
85virtual ~XrdOfsDirectory() {if (dp) close();}
86
87protected:
88const char *tident;
89char *fname;
92char dname[MAXNAMLEN];
93};
94
96{
97public:
98 XrdOfsDirFull(const char *user, int MonID)
99 : XrdOfsDirectory(myEInfo, user), myEInfo(user, MonID)
100 {}
101
102virtual ~XrdOfsDirFull() {}
103
104private:
105XrdOucErrInfo myEInfo; // Accessible only by reference error
106};
107
108/******************************************************************************/
109/* X r d O f s F i l e */
110/******************************************************************************/
111
112class XrdOfsTPC;
113class XrdOucChkPnt;
114
115class XrdOfsFile : public XrdSfsFile
116{
117public:
118
119 int open(const char *fileName,
120 XrdSfsFileOpenMode openMode,
121 mode_t createMode,
122 const XrdSecEntity *client,
123 const char *opaque = 0);
124
126 struct iov *range=0, int n=0);
127
128 int Clone(XrdSfsFile& srcFile);
129
130 int Clone(const std::vector<XrdOucCloneSeg> &cVec);
131
132 int close();
133
134 using XrdSfsFile::fctl;
135
136 int fctl(const int cmd,
137 const char *args,
138 XrdOucErrInfo &out_error);
139
140 int fctl(const int cmd,
141 int alen,
142 const char *args,
143 const XrdSecEntity *client = 0);
144
145 const char *FName() {return (oh ? oh->Name() : "?");}
146
147 int getMmap(void **Addr, off_t &Size);
148
150 char *buffer,
151 XrdSfsXferSize rdlen,
152 uint32_t *csvec,
153 uint64_t opts=0);
154
155 int pgRead(XrdSfsAio *aioparm, uint64_t opts=0);
156
157
159 char *buffer,
160 XrdSfsXferSize wrlen,
161 uint32_t *csvec,
162 uint64_t opts=0);
163
164 int pgWrite(XrdSfsAio *aioparm, uint64_t opts=0);
165
166
167 int read(XrdSfsFileOffset fileOffset, // Preread only
168 XrdSfsXferSize amount);
169
171 char *buffer,
172 XrdSfsXferSize buffer_size);
173
175 int readCount);
176
177 int read(XrdSfsAio *aioparm);
178
180 const char *buffer,
181 XrdSfsXferSize buffer_size);
182
183 int write(XrdSfsAio *aioparm);
184
185 int sync();
186
187 int sync(XrdSfsAio *aiop);
188
189 int stat(struct stat *buf);
190
191 int truncate(XrdSfsFileOffset fileOffset);
192
193 int getCXinfo(char cxtype[4], int &cxrsz);
194
195 XrdOfsFile(XrdOucErrInfo &eInfo, const char *user);
196
197 ~XrdOfsFile() {viaDel = true; if (oh) close();}
198
199inline static bool ocFsync = false;
200
201protected:
202
203const char *tident;
210
211private:
212
213void GenFWEvent();
214int CreateCKP();
215};
216
218{
219public:
220 XrdOfsFileFull(const char *user, int MonID)
221 : XrdOfsFile(myEInfo, user), myEInfo(user, MonID)
222 {}
223
224virtual ~XrdOfsFileFull() {}
225
226private:
227XrdOucErrInfo myEInfo; // Accessible only by reference error
228};
229
230/******************************************************************************/
231/* C l a s s X r d O f s */
232/******************************************************************************/
233
234class XrdAccAuthorize;
235class XrdCks;
236class XrdCksCalc;
237class XrdCmsClient;
238class XrdOfsConfigPI;
239class XrdOfsFSctl_PI;
240class XrdOfsPoscq;
241struct XrdSfsFACtl;
242
244{
245friend class XrdOfsDirectory;
246friend class XrdOfsFile;
247
248public:
249
250// Object allocation
251//
252 XrdSfsDirectory *newDir(char *user=0, int MonID=0)
253 {return new XrdOfsDirFull(user, MonID);}
254
256 {return new XrdOfsDirectory(eInfo, eInfo.getErrUser());}
257
258 XrdSfsFile *newFile(char *user=0,int MonID=0)
259 {return new XrdOfsFileFull(user, MonID);}
260
262 {return new XrdOfsFile(eInfo, eInfo.getErrUser());}
263
264// Other functions
265//
266 int chksum( csFunc Func,
267 const char *csName,
268 const char *Path,
269 XrdOucErrInfo &out_error,
270 const XrdSecEntity *client = 0,
271 const char *opaque = 0);
272
273 int chmod(const char *Name,
275 XrdOucErrInfo &out_error,
276 const XrdSecEntity *client,
277 const char *opaque = 0);
278
279 void Connect(const XrdSecEntity *client = 0);
280
281 void Disc(const XrdSecEntity *client = 0);
282
283 int exists(const char *fileName,
284 XrdSfsFileExistence &exists_flag,
285 XrdOucErrInfo &out_error,
286 const XrdSecEntity *client,
287 const char *opaque = 0);
288
289 int FAttr( XrdSfsFACtl *faReq,
290 XrdOucErrInfo &eInfo,
291 const XrdSecEntity *client = 0);
292
293 int FSctl(const int cmd,
294 XrdSfsFSctl &args,
295 XrdOucErrInfo &eInfo,
296 const XrdSecEntity *client = 0);
297
298 int fsctl(const int cmd,
299 const char *args,
300 XrdOucErrInfo &out_error,
301 const XrdSecEntity *client = 0);
302
303 int getStats(char *buff, int blen);
304
305const char *getVersion();
306
307 int mkdir(const char *dirName,
309 XrdOucErrInfo &out_error,
310 const XrdSecEntity *client,
311 const char *opaque = 0);
312
313 int prepare( XrdSfsPrep &pargs,
314 XrdOucErrInfo &out_error,
315 const XrdSecEntity *client = 0);
316
317 int rem(const char *path,
318 XrdOucErrInfo &out_error,
319 const XrdSecEntity *client,
320 const char *info = 0)
321 {return remove('f', path, out_error, client, info);}
322
323 int remdir(const char *dirName,
324 XrdOucErrInfo &out_error,
325 const XrdSecEntity *client,
326 const char *info = 0)
327 {return remove('d',dirName,out_error,client,info);}
328
329 int rename(const char *oldFileName,
330 const char *newFileName,
331 XrdOucErrInfo &out_error,
332 const XrdSecEntity *client,
333 const char *infoO = 0,
334 const char *infoN = 0);
335
336 int stat(const char *Name,
337 struct stat *buf,
338 XrdOucErrInfo &out_error,
339 const XrdSecEntity *client,
340 const char *opaque = 0);
341
342 int stat(const char *Name,
343 mode_t &mode,
344 XrdOucErrInfo &out_error,
345 const XrdSecEntity *client,
346 const char *opaque = 0);
347
348 int truncate(const char *Name,
349 XrdSfsFileOffset fileOffset,
350 XrdOucErrInfo &out_error,
351 const XrdSecEntity *client = 0,
352 const char *opaque = 0);
353// Management functions
354//
355virtual int Configure(XrdSysError &); // Backward Compatibility
356
357virtual int Configure(XrdSysError &, XrdOucEnv *);
358
360
362
363 int SetupCksRT(XrdCksCalc*&, XrdOucEnv&, const char*&);
364
365 bool WantCksRT() {return (CksRTCgi || CksRTName != 0);}
366
367 XrdOfs();
368virtual ~XrdOfs() {} // Too complicate to delete :-)
369
370/******************************************************************************/
371/* C o n f i g u r a t i o n V a l u e s */
372/******************************************************************************/
373
374// Configuration values for this filesystem
375//
376enum {Authorize = 0x0001, // Authorization wanted
377 XAttrPlug = 0x0002, // Extended Attribute Plugin
378 isPeer = 0x0050, // Role peer
379 isProxy = 0x0020, // Role proxy
380 isManager = 0x0040, // Role manager
381 isServer = 0x0080, // Role server
382 isSuper = 0x00C0, // Role supervisor
383 isMeta = 0x0100, // Role meta + above
384 haveRole = 0x01F0, // A role is present
385 Forwarding= 0x1000, // Fowarding wanted
386 ThirdPC = 0x2000, // This party copy wanted
387 SubCluster= 0x4000, // all.subcluster directive encountered
388 RdrTPC = 0x8000
389 }; // These are set in Options below
390
391int Options; // Various options
392int myPort; // Port number being used
393
394// Directory and file creation mode controls
395//
396mode_t dMask[2]; // Min/Max directory mode
397mode_t fMask[2]; // Min/Max file mode
398
399// TPC related things
400//
401char *tpcRdrHost[2]; // TPC redirect target or null if none
402int tpcRdrPort[2]; // TPC redirect target port number
403
404// Networking
405//
407
408// Forward options
409//
410struct fwdOpt
411 {const char *Cmd;
412 char *Host;
413 int Port;
414 void Reset() {Cmd = 0; Port = 0;
415 if (Host) {free(Host); Host = 0;}
416 }
417 fwdOpt() : Cmd(0), Host(0), Port(0) {}
419 };
420
428
429static int MaxDelay; // Max delay imposed during staging
430static int OSSDelay; // Delay to impose when oss interface times out
431
432char *ConfigFN; // ->Configuration filename
433
434/******************************************************************************/
435/* P r o t e c t e d I t e m s */
436/******************************************************************************/
437
438protected:
439
440XrdOfsEvr evrObject; // Event receiver
441XrdCmsClient *Finder; // ->Cluster Management Service
442
443virtual int ConfigXeq(char *var, XrdOucStream &, XrdSysError &);
444static int Emsg(const char *, XrdOucErrInfo &, int, const char *x,
445 XrdOfsHandle *hP, bool posChk=false, bool chktype=true);
446static int Emsg(const char *, XrdOucErrInfo &, int, const char *x,
447 const char *y="", const char* xtra=0, bool chktype=true);
448static int EmsgType(int ecode);
449static int fsError(XrdOucErrInfo &myError, int rc);
450const char *Split(const char *Args, const char **Opq, char *Path, int Plen);
451 int Stall(XrdOucErrInfo &, int, const char *);
452 void Unpersist(XrdOfsHandle *hP, int xcev=1);
453 bool ValidCST(const char* cst);
454 char *WaitTime(int, char *, int);
455
456/******************************************************************************/
457/* P r i v a t e C o n f i g u r a t i o n */
458/******************************************************************************/
459
460private:
461
462char *myRole;
463XrdOfsFSctl_PI *FSctl_PC; // ->FSctl plugin (cache specific)
464XrdOfsFSctl_PI *FSctl_PI; // ->FSctl plugin
465XrdAccAuthorize *Authorization; // ->Authorization Service
466XrdCmsClient *Balancer; // ->Cluster Local Interface
467XrdOfsEvs *evsObject; // ->Event Notifier
468XrdOucPListAnchor*ossRPList; // ->Oss exoprt list
469
470XrdOfsPoscq *poscQ; // -> poscQ if persist on close enabled
471char *poscLog; // -> Directory for posc recovery log
472int poscHold; // Seconds to hold a forced close
473short poscSync; // Number of requests before sync
474signed char poscAuto; // 1 -> Automatic persist on close
475
476char ossRW; // The oss r/w capability
477
478XrdOfsConfigPI *ofsConfig; // Plugin configurator
479XrdOfsPrepare *prepHandler; // Plugin prepare
480XrdCks *Cks; // Checksum manager
481XrdCksCalc *CksRTCalc; // Automatic realtime checksum calculator
482char *CksRTName; // Realtime checksum cipher only if auto on
483bool CksPfn; // Checksum needs a pfn
484bool CksRdr; // Checksum may be redirected (i.e. not local)
485bool prepAuth; // Prepare requires authorization
486char OssIsProxy; // !0 if we detect the oss plugin is a proxy
487char myRType[4]; // Role type for consistency with the cms
488
489uint64_t ossFeatures; // The oss features
490
491int usxMaxNsz; // Maximum length of attribute name
492int usxMaxVsz; // Maximum length of attribute value
493
494static XrdOfsHandle *dummyHandle;
495XrdSysMutex ocMutex; // Global mutex for open/close
496
497bool DirRdr; // Opendir() can be redirected.
498bool reProxy; // Reproxying required for TPC
499bool OssHasPGrw; // True: oss implements full rgRead/Write
500bool tryXERT; // Try using extended error text from OSS
501bool CksRTCgi; // True -> allow CGI spec
502
503/******************************************************************************/
504/* O t h e r D a t a */
505/******************************************************************************/
506
507// Internal file attribute methods
508//
509int ctlFADel(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo);
510int ctlFAGet(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo);
511int ctlFALst(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo);
512int ctlFASet(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo);
513
514// Common functions
515//
516int remove(const char type, const char *path, XrdOucErrInfo &out_error,
517 const XrdSecEntity *client, const char *opaque);
518
519// Function used during Configuration
520//
521int ConfigCksRT(XrdSysError &Eroute, XrdOucEnv *EnvInfo);
522int ConfigDispFwd(char *buff, struct fwdOpt &Fwd);
523int ConfigPosc(XrdSysError &Eroute);
524int ConfigRedir(XrdSysError &Eroute, XrdOucEnv *EnvInfo);
525int ConfigTPC(XrdSysError &Eroute, XrdOucEnv *EnvInfo);
526int ConfigTPC(XrdSysError &Eroute);
527char *ConfigTPCDir(XrdSysError &Eroute, const char *sfx,
528 const char *xPath=0);
529const char *Fname(const char *);
530int Forward(int &Result, XrdOucErrInfo &Resp, struct fwdOpt &Fwd,
531 const char *arg1=0, const char *arg2=0,
532 XrdOucEnv *Env1=0, XrdOucEnv *Env2=0);
533int FSctl(XrdOfsFile &file, int cmd, int alen, const char *args,
534 const XrdSecEntity *client);
535int Reformat(XrdOucErrInfo &);
536const char *theRole(int opts);
537int xcksrt(XrdOucStream &, XrdSysError &);
538int xcrds(XrdOucStream &, XrdSysError &);
539int xcrm(XrdOucStream &, XrdSysError &);
540int xdirl(XrdOucStream &, XrdSysError &);
541int xexp(XrdOucStream &, XrdSysError &, bool);
542int xforward(XrdOucStream &, XrdSysError &);
543int xmaxd(XrdOucStream &, XrdSysError &);
544int xnmsg(XrdOucStream &, XrdSysError &);
545int xnot(XrdOucStream &, XrdSysError &);
546int xpers(XrdOucStream &, XrdSysError &);
547int xrole(XrdOucStream &, XrdSysError &);
548int xtpc(XrdOucStream &, XrdSysError &);
549int xtpcal(XrdOucStream &, XrdSysError &);
550int xtpcr(XrdOucStream &, XrdSysError &);
551int xtrace(XrdOucStream &, XrdSysError &);
552int xatr(XrdOucStream &, XrdSysError &);
553};
554#endif
static void prepare()
#define write(a, b, c)
Definition XrdPosix.hh:121
#define mkdir(a, b)
Definition XrdPosix.hh:76
#define open
Definition XrdPosix.hh:78
#define readv(a, b, c)
Definition XrdPosix.hh:88
#define stat(a, b)
Definition XrdPosix.hh:105
#define rename(a, b)
Definition XrdPosix.hh:96
#define truncate(a, b)
Definition XrdPosix.hh:117
#define read(a, b, c)
Definition XrdPosix.hh:86
int Mode
XrdOucString Path
struct myOpts opts
int XrdSfsMode
XrdSfsFileExistence
int XrdSfsFileOpenMode
long long XrdSfsFileOffset
int XrdSfsXferSize
< Prepare parameters
virtual ~XrdOfsDirFull()
Definition XrdOfs.hh:102
XrdOfsDirFull(const char *user, int MonID)
Definition XrdOfs.hh:98
XrdOfsDirectory(XrdOucErrInfo &eInfo, const char *user)
Definition XrdOfs.hh:81
char dname[MAXNAMLEN]
Definition XrdOfs.hh:92
virtual ~XrdOfsDirectory()
Definition XrdOfs.hh:85
const char * FName()
Definition XrdOfs.hh:77
const char * nextEntry()
Definition XrdOfs.cc:313
void copyError(XrdOucErrInfo &einfo)
Definition XrdOfs.hh:75
const char * tident
Definition XrdOfs.hh:88
int autoStat(struct stat *buf)
Definition XrdOfs.cc:422
char * fname
Definition XrdOfs.hh:89
XrdOssDF * dp
Definition XrdOfs.hh:90
XrdOfsFileFull(const char *user, int MonID)
Definition XrdOfs.hh:220
virtual ~XrdOfsFileFull()
Definition XrdOfs.hh:224
XrdOfsFile(XrdOucErrInfo &eInfo, const char *user)
Definition XrdOfs.cc:462
int getCXinfo(char cxtype[4], int &cxrsz)
Definition XrdOfs.cc:1854
bool viaDel
Definition XrdOfs.hh:208
int checkpoint(XrdSfsFile::cpAct act, struct iov *range=0, int n=0)
Definition XrdOfs.cc:1010
XrdSfsXferSize pgWrite(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize wrlen, uint32_t *csvec, uint64_t opts=0)
Definition XrdOfs.cc:1310
static bool ocFsync
Definition XrdOfs.hh:199
int Clone(XrdSfsFile &srcFile)
Definition XrdOfs.cc:864
const char * FName()
Definition XrdOfs.hh:145
int fctl(const int cmd, const char *args, XrdOucErrInfo &out_error)
Definition XrdOfs.cc:1142
XrdSfsXferSize pgRead(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize rdlen, uint32_t *csvec, uint64_t opts=0)
Definition XrdOfs.cc:1214
int getMmap(void **Addr, off_t &Size)
Definition XrdOfs.cc:1697
int close()
Definition XrdOfs.cc:899
~XrdOfsFile()
Definition XrdOfs.hh:197
const char * tident
Definition XrdOfs.hh:203
int sync()
Definition XrdOfs.cc:1746
XrdOfsHandle * oh
Definition XrdOfs.hh:204
int dorawio
Definition XrdOfs.hh:207
XrdOucChkPnt * myCKP
Definition XrdOfs.hh:206
bool ckpBad
Definition XrdOfs.hh:209
XrdOfsTPC * myTPC
Definition XrdOfs.hh:205
void Connect(const XrdSecEntity *client=0)
Definition XrdOfs.cc:2085
int chmod(const char *Name, XrdSfsMode Mode, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
Definition XrdOfs.cc:2017
struct fwdOpt fwdTRUNC
Definition XrdOfs.hh:427
void Disc(const XrdSecEntity *client=0)
Definition XrdOfs.cc:2098
mode_t dMask[2]
Definition XrdOfs.hh:396
const char * Split(const char *Args, const char **Opq, char *Path, int Plen)
Definition XrdOfs.cc:2894
int myPort
Definition XrdOfs.hh:392
bool WantCksRT()
Definition XrdOfs.hh:365
XrdCmsClient * Finder
Definition XrdOfs.hh:441
mode_t fMask[2]
Definition XrdOfs.hh:397
int rem(const char *path, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *info=0)
Definition XrdOfs.hh:317
static int EmsgType(int ecode)
Definition XrdOfs.cc:2741
char * WaitTime(int, char *, int)
Definition XrdOfs.cc:2990
struct fwdOpt fwdRMDIR
Definition XrdOfs.hh:426
XrdOfsEvr evrObject
Definition XrdOfs.hh:440
XrdSfsDirectory * newDir(XrdOucErrInfo &eInfo)
Definition XrdOfs.hh:255
static int OSSDelay
Definition XrdOfs.hh:430
char * ConfigFN
Definition XrdOfs.hh:432
int tpcRdrPort[2]
Definition XrdOfs.hh:402
XrdSfsDirectory * newDir(char *user=0, int MonID=0)
Definition XrdOfs.hh:252
int FAttr(XrdSfsFACtl *faReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
int remdir(const char *dirName, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *info=0)
Definition XrdOfs.hh:323
friend class XrdOfsDirectory
Definition XrdOfs.hh:245
virtual int Configure(XrdSysError &)
struct fwdOpt fwdMKPATH
Definition XrdOfs.hh:423
void Config_Cluster(XrdOss *)
int fsctl(const int cmd, const char *args, XrdOucErrInfo &out_error, const XrdSecEntity *client=0)
void Config_Display(XrdSysError &)
XrdOfs()
Definition XrdOfs.cc:171
virtual ~XrdOfs()
Definition XrdOfs.hh:368
char * tpcRdrHost[2]
Definition XrdOfs.hh:401
int chksum(csFunc Func, const char *csName, const char *Path, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)
Definition XrdOfs.cc:1905
int Options
Definition XrdOfs.hh:391
struct fwdOpt fwdMKDIR
Definition XrdOfs.hh:422
static int MaxDelay
Definition XrdOfs.hh:429
struct fwdOpt fwdMV
Definition XrdOfs.hh:424
static int Emsg(const char *, XrdOucErrInfo &, int, const char *x, XrdOfsHandle *hP, bool posChk=false, bool chktype=true)
Definition XrdOfs.cc:2637
XrdNetIF * myIF
Definition XrdOfs.hh:406
static int fsError(XrdOucErrInfo &myError, int rc)
Definition XrdOfs.cc:2837
friend class XrdOfsFile
Definition XrdOfs.hh:246
int FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
XrdSfsFile * newFile(char *user=0, int MonID=0)
Definition XrdOfs.hh:258
const char * getVersion()
struct fwdOpt fwdRM
Definition XrdOfs.hh:425
XrdSfsFile * newFile(XrdOucErrInfo &eInfo)
Definition XrdOfs.hh:261
virtual int ConfigXeq(char *var, XrdOucStream &, XrdSysError &)
int SetupCksRT(XrdCksCalc *&, XrdOucEnv &, const char *&)
Definition XrdOfs.cc:2763
bool ValidCST(const char *cst)
int getStats(char *buff, int blen)
Definition XrdOfs.cc:2174
struct fwdOpt fwdCHMOD
Definition XrdOfs.hh:421
int Stall(XrdOucErrInfo &, int, const char *)
Definition XrdOfs.cc:2911
@ isProxy
Definition XrdOfs.hh:379
@ haveRole
Definition XrdOfs.hh:384
@ RdrTPC
Definition XrdOfs.hh:388
@ ThirdPC
Definition XrdOfs.hh:386
@ isMeta
Definition XrdOfs.hh:383
@ SubCluster
Definition XrdOfs.hh:387
@ isManager
Definition XrdOfs.hh:380
@ isPeer
Definition XrdOfs.hh:378
@ XAttrPlug
Definition XrdOfs.hh:377
@ isSuper
Definition XrdOfs.hh:382
@ isServer
Definition XrdOfs.hh:381
@ Authorize
Definition XrdOfs.hh:376
@ Forwarding
Definition XrdOfs.hh:385
int exists(const char *fileName, XrdSfsFileExistence &exists_flag, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
Definition XrdOfs.cc:2111
void Unpersist(XrdOfsHandle *hP, int xcev=1)
Definition XrdOfs.cc:2947
const char * getErrUser()
XrdSfsDirectory(const char *user=0, int MonID=0)
XrdOucErrInfo & error
XrdSfsFileSystem()
Constructor and Destructor.
virtual void EnvInfo(XrdOucEnv *envP)
XrdSfsFile(const char *user=0, int MonID=0)
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
const char * Cmd
Definition XrdOfs.hh:411
char * Host
Definition XrdOfs.hh:412
void Reset()
Definition XrdOfs.hh:414
< SFS_FSCTL_PLUGIN/PLUGIO/PLUGXC/PLUGFS parms