struct timeval request_time;
struct file_id id;
struct deferred_open_record *open_rec;
+ files_struct *result;
uint8_t out_oplock_level;
uint32_t out_create_action;
struct timespec out_creation_ts;
struct smbd_smb2_create_state *state = NULL;
NTSTATUS status;
struct smb_request *smb1req = NULL;
- files_struct *result = NULL;
int info;
int requested_oplock_level;
struct smb2_create_blob *dhnc = NULL;
return tevent_req_post(req, state->ev);
}
- status = open_np_file(smb1req, pipe_name, &result);
+ status = open_np_file(smb1req, pipe_name, &state->result);
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return tevent_req_post(req, state->ev);
smbd_smb2_create_finish(req,
smb2req,
smb1req,
- result,
+ state->result,
replay_operation,
in_oplock_level,
in_create_disposition,
return tevent_req_post(req, state->ev);
}
- status = file_new(smb1req, smb1req->conn, &result);
+ status = file_new(smb1req, smb1req->conn, &state->result);
if(!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(req, status);
return tevent_req_post(req, state->ev);
}
- status = print_spool_open(result, in_name,
+ status = print_spool_open(state->result, in_name,
smb1req->vuid);
if (!NT_STATUS_IS_OK(status)) {
- file_free(smb1req, result);
+ file_free(smb1req, state->result);
tevent_req_nterror(req, status);
return tevent_req_post(req, state->ev);
}
smbd_smb2_create_finish(req,
smb2req,
smb1req,
- result,
+ state->result,
replay_operation,
in_oplock_level,
in_create_disposition,
* new open.
*/
if (replay_operation) {
- result = op->compat;
- result->op = op;
+ state->result = op->compat;
+ state->result->op = op;
update_open = false;
info = op->create_action;
} else if (do_durable_reconnect) {
op, /* smbXsrv_open input */
op->global->backend_cookie,
op, /* TALLOC_CTX */
- &result, &new_cookie);
+ &state->result,
+ &new_cookie);
if (!NT_STATUS_IS_OK(status)) {
NTSTATUS return_status;
}
DEBUG(10, ("result->oplock_type=%u, lease_ptr==%p\n",
- (unsigned)result->oplock_type, lease_ptr));
+ (unsigned)state->result->oplock_type, lease_ptr));
status = smbd_smb2_create_durable_lease_check(
- smb1req, fname, result, lease_ptr);
+ smb1req, fname, state->result, lease_ptr);
if (!NT_STATUS_IS_OK(status)) {
- close_file(smb1req, result, SHUTDOWN_CLOSE);
+ close_file(smb1req, state->result, SHUTDOWN_CLOSE);
tevent_req_nterror(req, status);
return tevent_req_post(req, state->ev);
}
0, /* private_flags */
sec_desc,
ea_list,
- &result,
+ &state->result,
&info,
&in_context_blobs,
state->out_context_blobs);
tevent_req_nterror(req, status);
return tevent_req_post(req, state->ev);
}
- op = result->op;
+ op = state->result->op;
}
/*
- * here we have op == result->op
+ * here we have op == state->result->op
*/
DEBUG(10, ("smbd_smb2_create_send: "
NTTIME last_write_time;
last_write_time = unix_timespec_to_nt_time(
- result->fsp_name->st.st_ex_mtime);
+ state->result->fsp_name->st.st_ex_mtime);
if (last_write_time != max_access_time) {
uint8_t p[8];
uint32_t max_access_granted;
DATA_BLOB blob = data_blob_const(p, sizeof(p));
status = smbd_calculate_access_mask(smb1req->conn,
- result->fsp_name,
+ state->result->fsp_name,
false,
SEC_FLAG_MAXIMUM_ALLOWED,
&max_access_granted);
}
if (!replay_operation && durable_requested &&
- (fsp_lease_type(result) & SMB2_LEASE_HANDLE))
+ (fsp_lease_type(state->result) & SMB2_LEASE_HANDLE))
{
- status = SMB_VFS_DURABLE_COOKIE(result,
+ status = SMB_VFS_DURABLE_COOKIE(state->result,
op,
&op->global->backend_cookie);
if (!NT_STATUS_IS_OK(status)) {
if (qfid) {
uint8_t p[32];
- uint64_t file_index = get_FileIndex(result->conn,
- &result->fsp_name->st);
+ uint64_t file_index = get_FileIndex(state->result->conn,
+ &state->result->fsp_name->st);
DATA_BLOB blob = data_blob_const(p, sizeof(p));
ZERO_STRUCT(p);
== inode, the second 8 bytes are the "volume id",
== dev. This will be updated in the SMB2 doc. */
SBVAL(p, 0, file_index);
- SIVAL(p, 8, result->fsp_name->st.st_ex_dev);/* FileIndexHigh */
+ SIVAL(p, 8, state->result->fsp_name->st.st_ex_dev);/* FileIndexHigh */
status = smb2_create_blob_add(state->out_context_blobs,
state->out_context_blobs,
}
}
- if ((rqls != NULL) && (result->oplock_type == LEASE_OPLOCK)) {
+ if ((rqls != NULL) && (state->result->oplock_type == LEASE_OPLOCK)) {
uint8_t buf[52];
- lease = result->lease->lease;
+ lease = state->result->lease->lease;
lease_len = sizeof(buf);
if (lease.lease_version == 1) {
smbd_smb2_create_finish(req,
smb2req,
smb1req,
- result,
+ state->result,
replay_operation,
in_oplock_level,
in_create_disposition,