e = (struct share_mode_entry) {
.pid = my_pid,
.share_access = share_access,
- .private_options = fsp->fh->private_options,
+ .private_options = fh_get_private_options(fsp->fh),
.access_mask = access_mask,
.op_mid = mid,
.op_type = op_type,
WERROR werr;
struct dcerpc_binding_handle *b = NULL;
- if (fsp->fh->private_options &
+ if (fh_get_private_options(fsp->fh) &
NTCREATEX_FLAG_DELETE_ON_CLOSE) {
int ret;
return status;
}
- fsp->fh->private_options = e.private_options;
+ fh_set_private_options(fsp->fh, e.private_options);
fsp->file_id = file_id;
fsp->file_pid = smb1req->smbpid;
fsp->vuid = smb1req->vuid;
*/
fsp->file_id = vfs_file_id_from_sbuf(conn, &smb_fname->st);
}
- fsp->fh->private_options = private_flags;
+ fh_set_private_options(fsp->fh, private_flags);
fsp->access_mask = open_access_mask; /* We change this to the
* requested access_mask after
* the open is done. */
fsp->fsp_flags.can_read = false;
fsp->fsp_flags.can_write = false;
- fsp->fh->private_options = 0;
+ fh_set_private_options(fsp->fh, 0);
/*
* According to Samba4, SEC_FILE_READ_ATTRIBUTE is always granted,
*/
conn->cwd_fsp,
smb_fname_dst);
if (ret == 0) {
- uint32_t create_options = fsp->fh->private_options;
+ uint32_t create_options = fh_get_private_options(fsp->fh);
DEBUG(3, ("rename_internals_fsp: succeeded doing rename on "
"%s -> %s\n", smb_fname_str_dbg(fsp->fsp_name),
fsp_get_pathref_fd(fsp),
fsp->vuid,
fsp->file_pid,
- fsp->fh->private_options,
+ fh_get_private_options(fsp->fh),
fsp->access_mask);
if (fsp_get_pathref_fd(fsp) != -1 &&
fsp->vuid == req->vuid &&
fsp->file_pid == req->smbpid &&
- (fsp->fh->private_options &
+ (fh_get_private_options(fsp->fh) &
(NTCREATEX_FLAG_DENY_DOS |
NTCREATEX_FLAG_DENY_FCB)) &&
(fsp->access_mask & FILE_WRITE_DATA) &&
/* quite an insane set of semantics ... */
if (is_executable(smb_fname->base_name) &&
- (fsp->fh->private_options & NTCREATEX_FLAG_DENY_DOS)) {
+ (fh_get_private_options(fsp->fh) & NTCREATEX_FLAG_DENY_DOS)) {
DBG_DEBUG("file fail due to is_executable.\n");
return NULL;
}
if ((file_info_level == SMB_SET_FILE_DISPOSITION_INFO)
&& in_input_buffer.length >= 1
&& CVAL(in_input_buffer.data,0)) {
- fsp->fh->private_options |= NTCREATEX_FLAG_DELETE_ON_CLOSE;
+ uint32_t new_private_options =
+ fh_get_private_options(fsp->fh);
+ new_private_options |= NTCREATEX_FLAG_DELETE_ON_CLOSE;
+ fh_set_private_options(fsp->fh, new_private_options);
DEBUG(3,("smbd_smb2_setinfo_send: "
"Cancelling print job (%s)\n",
* Doing a DELETE_ON_CLOSE should cancel a print job.
*/
if ((info_level == SMB_SET_FILE_DISPOSITION_INFO) && CVAL(pdata,0)) {
- fsp->fh->private_options |= NTCREATEX_FLAG_DELETE_ON_CLOSE;
+ uint32_t new_private_options =
+ fh_get_private_options(fsp->fh);
+ new_private_options |=
+ NTCREATEX_FLAG_DELETE_ON_CLOSE;
+ fh_set_private_options(fsp->fh,
+ new_private_options);
DEBUG(3,("call_trans2setfilepathinfo: "
"Cancelling print job (%s)\n",