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