43 #define ENOATTR ENODATA
69 #if defined(__FreeBSD__)
71 #elif defined(__linux__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
73 #elif defined(__APPLE__)
75 #elif defined(__solaris__)
78 int XrdSysFAttr::Del(
const char *Aname,
const char *
Path,
int fd)
80 int XrdSysFAttr::List(AList **aPL,
const char *
Path,
int fd,
int getSz)
82 int XrdSysFAttr::Get(
const char *Aname,
void *Aval,
int Avsz,
83 const char *
Path,
int fd)
85 int XrdSysFAttr::Set(
const char *Aname,
const void *Aval,
int Avsz,
86 const char *
Path,
int fd,
int isNew)
94 int XrdSysFAttr::Diagnose(
const char *Op,
const char *Var,
106 {snprintf(buff,
sizeof(buff),
"%s attr %s from", Op, Var);
125 while(aLP) {aNP = aLP->
Next; free(aLP); aLP = aNP;}
137 int sz = 0, n = strlen(Aname);
141 if (!n || (msP && (sz = Get(Aname, 0, 0,
Path, fd)) < 0))
return 0;
145 if (!(aNew = (AList *)malloc(
sizeof(AList) + n)))
return 0;
152 strcpy(aNew->Name, Aname);
156 if (msP && *msP < sz) *msP = sz;
166 if (!push &&
Xat &&
Xat != &dfltXAttr)
delete Xat;
XrdSysXAttr & XrdSysXAttrNative
XrdSysXAttr * XrdSysXAttrActive
int Emsg(const char *esfx, int ecode, const char *text1, const char *text2=0)
static void SetPlugin(XrdSysXAttr *xaP, bool push=false)
int Vlen
The length of the attribute value;.
AList * Next
-> next element.