Cleanup. It's never been a UNIX mode, always a DOS attribute field.
Make that explicit.
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
finfo->mtime_ts = interpret_long_date((const char *)dir_data + 24);
finfo->ctime_ts = interpret_long_date((const char *)dir_data + 32);
finfo->size = IVAL2_TO_SMB_BIG_UINT(dir_data + 40, 0);
- finfo->mode = (uint16_t)IVAL(dir_data + 56, 0);
+ finfo->attr = (uint16_t)IVAL(dir_data + 56, 0);
namelen = IVAL(dir_data + 60,0);
if (namelen > (dir_data_length - 104)) {
return NT_STATUS_INFO_LENGTH_MISMATCH;
return;
}
- ok = dir_check_ftype(finfo->mode, state->attribute);
+ ok = dir_check_ftype(finfo->attr, state->attribute);
DEBUG(10, ("%s: dir_check_ftype(%u,%u) returned %u\n",
- __func__, (unsigned)finfo->mode,
+ __func__, (unsigned)finfo->attr,
(unsigned)state->attribute, (unsigned)ok));
if (ok) {
DEBUG(5,("gpo_sync_func: got mask: [%s], name: [%s]\n",
mask, info->name));
- if (info->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (info->attr & FILE_ATTRIBUTE_DIRECTORY) {
DEBUG(3,("got dir: [%s]\n", info->name));
return false;
}
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) {
return true;
}
return false;
}
- if ((archive_level==1 || archive_level==2) && !(finfo->mode & FILE_ATTRIBUTE_ARCHIVE)) {
+ if ((archive_level==1 || archive_level==2) && !(finfo->attr & FILE_ATTRIBUTE_ARCHIVE)) {
DEBUG(3,("archive %s failed\n", finfo->name));
return false;
}
if (!showacls) {
d_printf(" %-30s%7.7s %8.0f %s",
finfo->name,
- attrib_string(talloc_tos(), finfo->mode),
+ attrib_string(talloc_tos(), finfo->attr),
(double)finfo->size,
time_to_asc(t));
dir_total += finfo->size;
}
/* print file meta date header */
d_printf( "FILENAME:%s\n", finfo->name);
- d_printf( "MODE:%s\n", attrib_string(talloc_tos(), finfo->mode));
+ d_printf( "MODE:%s\n", attrib_string(talloc_tos(), finfo->attr));
d_printf( "SIZE:%.0f\n", (double)finfo->size);
d_printf( "MTIME:%s", time_to_asc(t));
status = cli_ntcreate(
*dir_end = '\0';
}
- if (f->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (f->attr & FILE_ATTRIBUTE_DIRECTORY) {
if (do_list_dirs && do_this_one(f)) {
status = do_list_fn(cli_state, f, dir);
if (!NT_STATUS_IS_OK(status)) {
return NT_STATUS_UNSUCCESSFUL;
}
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) {
if (asprintf(&quest,
"Get directory %s? ",finfo->name) < 0) {
return NT_STATUS_NO_MEMORY;
}
SAFE_FREE(quest);
- if (!(finfo->mode & FILE_ATTRIBUTE_DIRECTORY)) {
+ if (!(finfo->attr & FILE_ATTRIBUTE_DIRECTORY)) {
rname = talloc_asprintf(ctx,
"%s%s",
client_get_cur_dir(),
return NT_STATUS_NO_MEMORY;
}
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) {
TALLOC_FREE(mask);
return NT_STATUS_OK;
}
return NT_STATUS_NO_MEMORY;
}
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) {
dt->isdir = true;
}
return NT_STATUS_OK;
}
- if ((info->dirmask[0] == 0) && !(f->mode & FILE_ATTRIBUTE_DIRECTORY))
+ if ((info->dirmask[0] == 0) && !(f->attr & FILE_ATTRIBUTE_DIRECTORY))
info->matches[info->count] = SMB_STRDUP(f->name);
else {
TALLOC_CTX *ctx = talloc_stackframe();
TALLOC_FREE(ctx);
return NT_STATUS_NO_MEMORY;
}
- if (f->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (f->attr & FILE_ATTRIBUTE_DIRECTORY) {
tmp = talloc_asprintf_append(tmp, "%s",
CLI_DIRSEP_STR);
}
if (info->matches[info->count] == NULL) {
return NT_STATUS_OK;
}
- if (f->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (f->attr & FILE_ATTRIBUTE_DIRECTORY) {
smb_readline_ca_char(0);
}
if (info->count == 1) {
goto out;
}
- isdir = finfo->mode & FILE_ATTRIBUTE_DIRECTORY;
+ isdir = finfo->attr & FILE_ATTRIBUTE_DIRECTORY;
if (isdir) {
old_dir = talloc_strdup(ctx, initial_dir);
new_dir = talloc_asprintf(ctx, "%s\\", remote_name);
uint64_t off = 0;
uint16_t remote_fd = (uint16_t)-1;
int err = 0, r;
- const bool isdir = finfo->mode & FILE_ATTRIBUTE_DIRECTORY;
+ const bool isdir = finfo->attr & FILE_ATTRIBUTE_DIRECTORY;
TALLOC_CTX *ctx = talloc_new(NULL);
if (ctx == NULL) {
bool *_skip)
{
/* syntaxic sugar */
- const mode_t mode = finfo->mode;
+ const mode_t mode = finfo->attr;
const bool isdir = mode & FILE_ATTRIBUTE_DIRECTORY;
const bool exclude = t->mode.selection == TAR_EXCLUDE;
bool in = true;
struct file_info {
uint64_t size;
uint64_t allocated_size;
- uint16_t mode;
+ uint16_t attr;
uid_t uid;
gid_t gid;
uint64_t ino;
finfo->ctime_ts = interpret_long_date((const char *)dir_data + 32);
finfo->size = IVAL2_TO_SMB_BIG_UINT(dir_data + 40, 0);
finfo->allocated_size = IVAL2_TO_SMB_BIG_UINT(dir_data + 48, 0);
- /* NB. We need to enlarge finfo->mode to be 32-bits. */
- finfo->mode = (uint16_t)IVAL(dir_data + 56, 0);
+ /* NB. We need to enlarge finfo->attr to be 32-bits. */
+ finfo->attr = (uint16_t)IVAL(dir_data + 56, 0);
finfo->ino = IVAL2_TO_SMB_BIG_UINT(dir_data + 96, 0);
namelen = IVAL(dir_data + 60,0);
if (namelen > (dir_data_length - 104)) {
goto fail;
}
- if (dir_check_ftype((uint32_t)finfo->mode,
+ if (dir_check_ftype((uint32_t)finfo->attr,
(uint32_t)attribute)) {
/*
* Only process if attributes match.
finfo->mtime_ts = convert_time_t_to_timespec(
make_unix_date2(p+12, smb1cli_conn_server_time_zone(cli->conn)));
finfo->size = IVAL(p,16);
- finfo->mode = SVAL(p,24);
+ finfo->attr = SVAL(p,24);
len = CVAL(p, 26);
p += 27;
if (recv_flags2 & FLAGS2_UNICODE_STRINGS) {
finfo->mtime_ts = convert_time_t_to_timespec(
make_unix_date2(p+12, smb1cli_conn_server_time_zone(cli->conn)));
finfo->size = IVAL(p,16);
- finfo->mode = SVAL(p,24);
+ finfo->attr = SVAL(p,24);
len = CVAL(p, 30);
p += 31;
/* check for unisys! */
finfo->size = IVAL2_TO_SMB_BIG_UINT(p,0);
p += 8;
p += 8; /* alloc size */
- /* NB. We need to enlarge finfo->mode to be 32-bits. */
- finfo->mode = (uint16_t)IVAL(p,0);
+ /* NB. We need to enlarge finfo->attr to be 32-bits. */
+ finfo->attr = (uint16_t)IVAL(p,0);
p += 4;
namelen = IVAL(p,0);
p += 4;
size_t ret;
ZERO_STRUCTP(finfo);
- finfo->mode = CVAL(p,21);
+ finfo->attr = CVAL(p,21);
/* We don't get birth time. */
finfo->btime_ts.tv_sec = 0;
info->ctime_ts = finfo->ctime_ts;
info->mtime_ts = finfo->mtime_ts;
info->gid = finfo->gid;
- info->attrs = finfo->mode;
+ info->attrs = finfo->attr;
info->size = finfo->size;
info->uid = finfo->uid;
info->name = SMB_STRDUP(finfo->name);
int ret;
if (add_dirent((SMBCFILE *)state, finfo->name, "",
- (finfo->mode&FILE_ATTRIBUTE_DIRECTORY?SMBC_DIR:SMBC_FILE)) < 0) {
+ (finfo->attr&FILE_ATTRIBUTE_DIRECTORY?SMBC_DIR:SMBC_FILE)) < 0) {
SMBCFILE *dir = (SMBCFILE *)state;
return map_nt_error_from_unix(dir->dir_error);
}
*/
file = Py_BuildValue("{s:s,s:i,s:s,s:O,s:l}",
"name", finfo->name,
- "attrib", (int)finfo->mode,
+ "attrib", (int)finfo->attr,
"short_name", finfo->short_name,
"size", size,
"mtime",
return NT_STATUS_NO_MEMORY;
}
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) {
/* recursively delete the sub-directory and its contents */
status = delete_dir_tree(state->self, filepath);
printf("asprintf failed\n");
return NT_STATUS_NO_MEMORY;
}
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) {
char *s2;
if (asprintf(&s2, "%s\\*", s) == -1) {
printf("asprintf failed\n");
if (strcmp(finfo->name, ".") == 0 || strcmp(finfo->name, "..") == 0)
return NT_STATUS_OK;
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) {
if (!NT_STATUS_IS_OK(cli_rmdir(pcli, fname)))
printf("del_fn: failed to rmdir %s\n,", fname );
} else {
uint16_t *p_mode = (uint16_t *)private_data;
if (strequal(finfo->name, test_filename)) {
- *p_mode = finfo->mode;
+ *p_mode = finfo->attr;
}
return NT_STATUS_OK;
if (strcmp(finfo->name, ".") == 0 || strcmp(finfo->name, "..") == 0)
return NT_STATUS_OK;
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) {
status = cli_rmdir(pcli, fname);
if (!NT_STATUS_IS_OK(status)) {
printf("del_fn: failed to rmdir %s\n,", fname );
DEBUG(3,("got mask: %s, name: %s\n", mask, f->name));
/* DIRECTORY */
- if (f->mode & FILE_ATTRIBUTE_DIRECTORY) {
+ if (f->attr & FILE_ATTRIBUTE_DIRECTORY) {
DEBUG(3,("got dir: %s\n", f->name));