Enabled more actions for -findx: getfacl, getfattr, get_any_xattr
This commit is contained in:
@ -648,6 +648,35 @@ int Xorriso_is_split(struct XorrisO *xorriso, char *path, void *node,
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_report_acl_header(struct XorrisO *xorriso, char *path,
|
||||
uid_t uid, gid_t gid, int flag)
|
||||
{
|
||||
int ret;
|
||||
struct passwd *pwd;
|
||||
struct group *grp;
|
||||
|
||||
ret= Xorriso_getfname(xorriso, path, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
pwd= getpwuid(uid);
|
||||
if(pwd == NULL)
|
||||
sprintf(xorriso->result_line, "# owner: %.f\n", (double) uid);
|
||||
else
|
||||
sprintf(xorriso->result_line, "# owner: %s\n", pwd->pw_name);
|
||||
Xorriso_result(xorriso, 0);
|
||||
grp= getgrgid(gid);
|
||||
if(grp == NULL)
|
||||
sprintf(xorriso->result_line, "# group: %.f\n", (double) gid);
|
||||
else
|
||||
sprintf(xorriso->result_line, "# group: %s\n", grp->gr_name);
|
||||
Xorriso_result(xorriso, 0);
|
||||
|
||||
ret= 1;
|
||||
ex:
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* @param node Opaque handle to IsoNode which is to be inquired instead of path if it is not NULL.
|
||||
@param path is used as address if node is NULL.
|
||||
@param acl_text if acl_text is not NULL, then *acl_text will be set to the
|
||||
@ -673,8 +702,6 @@ int Xorriso_getfacl(struct XorrisO *xorriso, void *in_node, char *path,
|
||||
char *text= NULL, *d_text= NULL, *cpt, *npt;
|
||||
uid_t uid;
|
||||
gid_t gid;
|
||||
struct passwd *pwd;
|
||||
struct group *grp;
|
||||
|
||||
what= (flag >> 2) & 3;
|
||||
if(acl_text != NULL)
|
||||
@ -713,23 +740,11 @@ int Xorriso_getfacl(struct XorrisO *xorriso, void *in_node, char *path,
|
||||
}
|
||||
|
||||
if(!(flag & 1)) {
|
||||
ret= Xorriso_getfname(xorriso, path, 0);
|
||||
uid= iso_node_get_uid(node);
|
||||
gid= iso_node_get_gid(node);
|
||||
ret= Xorriso_report_acl_header(xorriso, path, uid, gid, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
uid= iso_node_get_uid(node);
|
||||
pwd= getpwuid(uid);
|
||||
if(pwd == NULL)
|
||||
sprintf(xorriso->result_line, "# owner: %.f\n", (double) uid);
|
||||
else
|
||||
sprintf(xorriso->result_line, "# owner: %s\n", pwd->pw_name);
|
||||
Xorriso_result(xorriso, 0);
|
||||
gid= iso_node_get_gid(node);
|
||||
grp= getgrgid(gid);
|
||||
if(grp == NULL)
|
||||
sprintf(xorriso->result_line, "# group: %.f\n", (double) gid);
|
||||
else
|
||||
sprintf(xorriso->result_line, "# group: %s\n", grp->gr_name);
|
||||
Xorriso_result(xorriso, 0);
|
||||
}
|
||||
|
||||
for(pass= 0; pass < 1 + (acl_text != NULL && !(flag & 2)); pass++) {
|
||||
|
Reference in New Issue
Block a user