{
NTSTATUS status;
uint16_t fnum = 0xffff;
- struct smb2_hnd *ph = NULL;
TALLOC_CTX *frame = talloc_stackframe();
if (smbXcli_conn_has_async_calls(cli->conn)) {
goto fail;
}
- status = map_fnum_to_smb2_handle(cli,
- fnum,
- &ph);
- if (!NT_STATUS_IS_OK(status)) {
- goto fail;
- }
-
- status = smb2cli_set_info(cli->conn,
- cli->timeout,
- cli->smb2.session,
- cli->smb2.tcon,
- in_info_type,
- in_file_info_class,
- p_in_data, /* in_input_buffer */
- 0, /* in_additional_info */
- ph->fid_persistent,
- ph->fid_volatile);
+ status = cli_smb2_set_info_fnum(
+ cli,
+ fnum,
+ in_info_type,
+ in_file_info_class,
+ p_in_data, /* in_input_buffer */
+ 0); /* in_additional_info */
fail:
if (fnum != 0xffff) {
time_t access_time,
time_t write_time)
{
- NTSTATUS status;
- struct smb2_hnd *ph = NULL;
uint8_t inbuf_store[40];
DATA_BLOB inbuf = data_blob_null;
return NT_STATUS_INVALID_PARAMETER;
}
- status = map_fnum_to_smb2_handle(cli,
- fnum,
- &ph);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
/* setinfo on the handle with info_type SMB2_SETINFO_FILE (1),
level 4 (SMB_FILE_BASIC_INFORMATION - 1000). */
put_long_date((char *)inbuf.data + 16, write_time);
}
- cli->raw_status = smb2cli_set_info(cli->conn,
- cli->timeout,
- cli->smb2.session,
- cli->smb2.tcon,
- 1, /* in_info_type */
- SMB_FILE_BASIC_INFORMATION - 1000, /* in_file_info_class */
- &inbuf, /* in_input_buffer */
- 0, /* in_additional_info */
- ph->fid_persistent,
- ph->fid_volatile);
+ cli->raw_status = cli_smb2_set_info_fnum(
+ cli,
+ fnum,
+ 1, /* in_info_type */
+ SMB_FILE_BASIC_INFORMATION - 1000, /* in_file_info_class */
+ &inbuf, /* in_input_buffer */
+ 0); /* in_additional_info */
return cli->raw_status;
}
{
NTSTATUS status;
DATA_BLOB inbuf = data_blob_null;
- struct smb2_hnd *ph = NULL;
TALLOC_CTX *frame = talloc_stackframe();
if (smbXcli_conn_has_async_calls(cli->conn)) {
goto fail;
}
- status = map_fnum_to_smb2_handle(cli,
- fnum,
- &ph);
- if (!NT_STATUS_IS_OK(status)) {
- goto fail;
- }
-
status = marshall_sec_desc(frame,
sd,
&inbuf.data,
/* setinfo on the returned handle with info_type SMB2_SETINFO_SEC (3) */
- status = smb2cli_set_info(cli->conn,
- cli->timeout,
- cli->smb2.session,
- cli->smb2.tcon,
- 3, /* in_info_type */
- 0, /* in_file_info_class */
- &inbuf, /* in_input_buffer */
- sec_info, /* in_additional_info */
- ph->fid_persistent,
- ph->fid_volatile);
+ status = cli_smb2_set_info_fnum(
+ cli,
+ fnum,
+ 3, /* in_info_type */
+ 0, /* in_file_info_class */
+ &inbuf, /* in_input_buffer */
+ sec_info); /* in_additional_info */
fail:
NTSTATUS status;
DATA_BLOB inbuf = data_blob_null;
uint16_t fnum = 0xffff;
- struct smb2_hnd *ph = NULL;
smb_ucs2_t *converted_str = NULL;
size_t converted_size_bytes = 0;
size_t namelen = 0;
goto fail;
}
- status = map_fnum_to_smb2_handle(cli,
- fnum,
- &ph);
- if (!NT_STATUS_IS_OK(status)) {
- goto fail;
- }
-
/* SMB2 is pickier about pathnames. Ensure it doesn't
start in a '\' */
if (*fname_dst == '\\') {
/* setinfo on the returned handle with info_type SMB2_GETINFO_FILE (1),
level SMB2_FILE_RENAME_INFORMATION (SMB_FILE_RENAME_INFORMATION - 1000) */
- status = smb2cli_set_info(cli->conn,
- cli->timeout,
- cli->smb2.session,
- cli->smb2.tcon,
- 1, /* in_info_type */
- SMB_FILE_RENAME_INFORMATION - 1000, /* in_file_info_class */
- &inbuf, /* in_input_buffer */
- 0, /* in_additional_info */
- ph->fid_persistent,
- ph->fid_volatile);
+ status = cli_smb2_set_info_fnum(
+ cli,
+ fnum,
+ 1, /* in_info_type */
+ SMB_FILE_RENAME_INFORMATION - 1000, /* in_file_info_class */
+ &inbuf, /* in_input_buffer */
+ 0); /* in_additional_info */
fail:
size_t bloblen = 0;
char *ea_name_ascii = NULL;
size_t namelen = 0;
- struct smb2_hnd *ph = NULL;
TALLOC_CTX *frame = talloc_stackframe();
if (smbXcli_conn_has_async_calls(cli->conn)) {
goto fail;
}
- status = map_fnum_to_smb2_handle(cli,
- fnum,
- &ph);
- if (!NT_STATUS_IS_OK(status)) {
- goto fail;
- }
-
/* Marshall the SMB2 EA data. */
if (ea_len > 0xFFFF) {
status = NT_STATUS_INVALID_PARAMETER;
/* setinfo on the handle with info_type SMB2_SETINFO_FILE (1),
level 15 (SMB_FILE_FULL_EA_INFORMATION - 1000). */
- status = smb2cli_set_info(cli->conn,
- cli->timeout,
- cli->smb2.session,
- cli->smb2.tcon,
- 1, /* in_info_type */
- SMB_FILE_FULL_EA_INFORMATION - 1000, /* in_file_info_class */
- &inbuf, /* in_input_buffer */
- 0, /* in_additional_info */
- ph->fid_persistent,
- ph->fid_volatile);
+ status = cli_smb2_set_info_fnum(
+ cli,
+ fnum,
+ 1, /* in_info_type */
+ SMB_FILE_FULL_EA_INFORMATION - 1000, /* in_file_info_class */
+ &inbuf, /* in_input_buffer */
+ 0); /* in_additional_info */
fail:
{
NTSTATUS status;
DATA_BLOB inbuf = data_blob_null;
- struct smb2_hnd *ph = NULL;
TALLOC_CTX *frame = talloc_stackframe();
if (smbXcli_conn_has_async_calls(cli->conn)) {
goto cleanup;
}
- status = map_fnum_to_smb2_handle(cli, quota_fnum, &ph);
- if (!NT_STATUS_IS_OK(status)) {
- goto cleanup;
- }
-
status = build_user_quota_buffer(qtl, 0, talloc_tos(), &inbuf, NULL);
if (!NT_STATUS_IS_OK(status)) {
goto cleanup;
}
- status = smb2cli_set_info(cli->conn, cli->timeout, cli->smb2.session,
- cli->smb2.tcon, 4, /* in_info_type */
- 0, /* in_file_info_class */
- &inbuf, /* in_input_buffer */
- 0, /* in_additional_info */
- ph->fid_persistent, ph->fid_volatile);
+ status = cli_smb2_set_info_fnum(
+ cli,
+ quota_fnum,
+ 4, /* in_info_type */
+ 0, /* in_file_info_class */
+ &inbuf, /* in_input_buffer */
+ 0); /* in_additional_info */
cleanup:
cli->raw_status = status;
{
NTSTATUS status;
DATA_BLOB inbuf = data_blob_null;
- struct smb2_hnd *ph = NULL;
TALLOC_CTX *frame = talloc_stackframe();
if (smbXcli_conn_has_async_calls(cli->conn)) {
goto cleanup;
}
- status = map_fnum_to_smb2_handle(cli, quota_fnum, &ph);
- if (!NT_STATUS_IS_OK(status)) {
- goto cleanup;
- }
-
status = build_fs_quota_buffer(talloc_tos(), pqt, &inbuf, 0);
if (!NT_STATUS_IS_OK(status)) {
goto cleanup;
}
- status = smb2cli_set_info(
- cli->conn, cli->timeout, cli->smb2.session, cli->smb2.tcon,
- 2, /* in_info_type */
- SMB_FS_QUOTA_INFORMATION - 1000, /* in_file_info_class */
- &inbuf, /* in_input_buffer */
- 0, /* in_additional_info */
- ph->fid_persistent, ph->fid_volatile);
+ status = cli_smb2_set_info_fnum(
+ cli,
+ quota_fnum,
+ 2, /* in_info_type */
+ SMB_FS_QUOTA_INFORMATION - 1000, /* in_file_info_class */
+ &inbuf, /* in_input_buffer */
+ 0); /* in_additional_info */
cleanup:
cli->raw_status = status;
NTSTATUS status;
uint8_t buf[8] = {0};
DATA_BLOB inbuf = { .data = buf, .length = sizeof(buf) };
- struct smb2_hnd *ph = NULL;
TALLOC_CTX *frame = talloc_stackframe();
if (smbXcli_conn_has_async_calls(cli->conn)) {
goto fail;
}
- status = map_fnum_to_smb2_handle(cli,
- fnum,
- &ph);
- if (!NT_STATUS_IS_OK(status)) {
- goto fail;
- }
-
SBVAL(buf, 0, newsize);
/* setinfo on the handle with info_type SMB2_SETINFO_FILE (1),
level 20 (SMB_FILE_END_OF_FILE_INFORMATION - 1000). */
- status = smb2cli_set_info(cli->conn,
- cli->timeout,
- cli->smb2.session,
- cli->smb2.tcon,
- 1, /* in_info_type */
- /* in_file_info_class */
- SMB_FILE_END_OF_FILE_INFORMATION - 1000,
- &inbuf, /* in_input_buffer */
- 0, /* in_additional_info */
- ph->fid_persistent,
- ph->fid_volatile);
+ status = cli_smb2_set_info_fnum(
+ cli,
+ fnum,
+ 1, /* in_info_type */
+ SMB_FILE_END_OF_FILE_INFORMATION-1000, /* in_file_info_class */
+ &inbuf, /* in_input_buffer */
+ 0);
fail: