mirror of
https://github.com/samba-team/samba.git
synced 2025-02-05 21:57:51 +03:00
Working on bug #5475
- Add code to test whether smbc_stat() munges future smbc_getxattr() results. Derrell
This commit is contained in:
parent
e4060ad864
commit
5f6b301f92
@ -24,6 +24,7 @@ int main(int argc, const char *argv[])
|
||||
int flags;
|
||||
int debug = 0;
|
||||
int numeric = 0;
|
||||
int stat_and_retry = 0;
|
||||
int full_time_names = 0;
|
||||
enum acl_mode mode = SMB_ACL_LIST;
|
||||
static char *the_acl = NULL;
|
||||
@ -33,6 +34,7 @@ int main(int argc, const char *argv[])
|
||||
char path[1024];
|
||||
char value[1024];
|
||||
poptContext pc;
|
||||
struct stat st;
|
||||
struct poptOption long_options[] =
|
||||
{
|
||||
POPT_AUTOHELP
|
||||
@ -77,6 +79,10 @@ int main(int argc, const char *argv[])
|
||||
"get", 'g', POPT_ARG_STRING, NULL,
|
||||
'g', "Get a specific acl attribute", "ACL"
|
||||
},
|
||||
{
|
||||
"stat_and_retry", 'R', POPT_ARG_NONE, &stat_and_retry,
|
||||
1, "After 'get' do 'stat' and another 'get'"
|
||||
},
|
||||
{
|
||||
NULL
|
||||
}
|
||||
@ -175,26 +181,40 @@ int main(int argc, const char *argv[])
|
||||
break;
|
||||
|
||||
case SMB_ACL_GET:
|
||||
if (the_acl == NULL)
|
||||
do
|
||||
{
|
||||
if (numeric)
|
||||
if (the_acl == NULL)
|
||||
{
|
||||
the_acl = "system.*";
|
||||
if (numeric)
|
||||
{
|
||||
the_acl = "system.*";
|
||||
}
|
||||
else
|
||||
{
|
||||
the_acl = "system.*+";
|
||||
}
|
||||
}
|
||||
else
|
||||
ret = smbc_getxattr(path, the_acl, value, sizeof(value));
|
||||
if (ret < 0)
|
||||
{
|
||||
the_acl = "system.*+";
|
||||
printf("Could not get attributes for [%s] %d: %s\n",
|
||||
path, errno, strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
ret = smbc_getxattr(path, the_acl, value, sizeof(value));
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("Could not get attributes for [%s] %d: %s\n",
|
||||
path, errno, strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Attributes for [%s] are:\n%s\n", path, value);
|
||||
printf("Attributes for [%s] are:\n%s\n", path, value);
|
||||
|
||||
if (stat_and_retry)
|
||||
{
|
||||
if (smbc_stat(path, &st) < 0)
|
||||
{
|
||||
perror("smbc_stat");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
--stat_and_retry;
|
||||
} while (stat_and_retry >= 0);
|
||||
break;
|
||||
|
||||
case SMB_ACL_ADD:
|
||||
|
Loading…
x
Reference in New Issue
Block a user