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