62 unsigned long long Flags)
64 static struct rpathopts
66 unsigned long long oprem;
67 unsigned long long opadd;
68 unsigned long long opset;} rpopts[] =
112 int i, numopts =
sizeof(rpopts)/
sizeof(
struct rpathopts);
117 val = Config.GetWord();
119 {
for (i = 0; i < numopts; i++)
120 {
if (!strcmp(val, rpopts[i].opname))
121 {Flags = (Flags & ~rpopts[i].oprem)
128 Eroute.
Emsg(
"Export",
"warning, invalid path option", val);
129 val = Config.GetWord();
170 unsigned long long Defopts)
173 char *path, pbuff[1024];
174 unsigned long long rpval;
178 path = Config.GetWord();
179 if (!path || !path[0])
180 {Eroute.
Emsg(
"Export",
"path not specified");
return 0;}
181 strlcpy(pbuff, path,
sizeof(pbuff));
185 if (*pbuff ==
'*') pbuff[1] = 0;
196 {Eroute.
Emsg(
"config",
"warning, file memory mapping forced path", path,
204 {Eroute.
Emsg(
"config",
"noxattrs attribute is incompatible with "
205 "mig and purge attributes.");
213 if ((plp = Export.
Match(pbuff)))
215 Opts = (plp->
Flag() & ~Opts) | rpval;
static unsigned long long ParseDefs(XrdOucStream &Config, XrdSysError &Eroute, unsigned long long Flags)
static XrdOucPList * ParsePath(XrdOucStream &Config, XrdSysError &Eroute, XrdOucPListAnchor &Export, unsigned long long Defopts)
XrdOucPList * Match(const char *pathname)
void Insert(XrdOucPList *newitem)
unsigned long long Flag()
int Emsg(const char *esfx, int ecode, const char *text1, const char *text2=0)