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