mirror of
https://github.com/samba-team/samba.git
synced 2025-02-23 09:57:40 +03:00
After a discussion with Volker, sdd a backup_intent state to the client struct.
This causes the backup_intent flags to be added to findfirst/findnext and ntcreate/nttrans_create calls. cli_set_backup_intent() sets the flag and returns the old value of its state.
This commit is contained in:
parent
3c4af39aa5
commit
af76d2588c
@ -75,6 +75,7 @@ struct cli_state {
|
||||
/* What the client requested. */
|
||||
uint32_t requested_posix_capabilities;
|
||||
bool dfsroot;
|
||||
bool backup_intent;
|
||||
|
||||
/* the session key for this CLI, outside
|
||||
any per-pipe authenticaion */
|
||||
|
@ -52,6 +52,17 @@ unsigned int cli_set_timeout(struct cli_state *cli, unsigned int timeout)
|
||||
return old_timeout;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
Set the 'backup_intent' flag.
|
||||
****************************************************************************/
|
||||
|
||||
bool cli_set_backup_intent(struct cli_state *cli, bool flag)
|
||||
{
|
||||
bool old_state = cli->backup_intent;
|
||||
cli->backup_intent = flag;
|
||||
return old_state;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
convenience routine to find if we negotiated ucs2
|
||||
****************************************************************************/
|
||||
|
@ -1813,7 +1813,8 @@ struct tevent_req *cli_ntcreate_send(TALLOC_CTX *mem_ctx,
|
||||
SIVAL(vwv+13, 1, FileAttributes);
|
||||
SIVAL(vwv+15, 1, ShareAccess);
|
||||
SIVAL(vwv+17, 1, CreateDisposition);
|
||||
SIVAL(vwv+19, 1, CreateOptions);
|
||||
SIVAL(vwv+19, 1, CreateOptions |
|
||||
(cli->backup_intent ? FILE_OPEN_FOR_BACKUP_INTENT : 0));
|
||||
SIVAL(vwv+21, 1, 0x02); /* ImpersonationLevel */
|
||||
SCVAL(vwv+23, 1, SecurityFlags);
|
||||
|
||||
@ -2002,7 +2003,8 @@ struct tevent_req *cli_nttrans_create_send(TALLOC_CTX *mem_ctx,
|
||||
SIVAL(param, 20, FileAttributes);
|
||||
SIVAL(param, 24, ShareAccess);
|
||||
SIVAL(param, 28, CreateDisposition);
|
||||
SIVAL(param, 32, CreateOptions);
|
||||
SIVAL(param, 32, CreateOptions |
|
||||
(cli->backup_intent ? FILE_OPEN_FOR_BACKUP_INTENT : 0));
|
||||
SIVAL(param, 36, secdesc_len);
|
||||
SIVAL(param, 40, 0); /* EA length*/
|
||||
SIVAL(param, 44, converted_len);
|
||||
|
@ -585,7 +585,8 @@ static struct tevent_req *cli_list_trans_send(TALLOC_CTX *mem_ctx,
|
||||
SSVAL(state->param, 2, state->max_matches);
|
||||
SSVAL(state->param, 4,
|
||||
FLAG_TRANS2_FIND_REQUIRE_RESUME
|
||||
|FLAG_TRANS2_FIND_CLOSE_IF_END);
|
||||
|FLAG_TRANS2_FIND_CLOSE_IF_END
|
||||
|(cli->backup_intent ? FLAG_TRANS2_FIND_BACKUP_INTENT : 0));
|
||||
SSVAL(state->param, 6, state->info_level);
|
||||
SIVAL(state->param, 8, 0);
|
||||
|
||||
@ -760,7 +761,8 @@ static void cli_list_trans_done(struct tevent_req *subreq)
|
||||
* continue instead. JRA
|
||||
*/
|
||||
SSVAL(param, 10, (FLAG_TRANS2_FIND_REQUIRE_RESUME
|
||||
|FLAG_TRANS2_FIND_CLOSE_IF_END));
|
||||
|FLAG_TRANS2_FIND_CLOSE_IF_END
|
||||
|(state->cli->backup_intent ? FLAG_TRANS2_FIND_BACKUP_INTENT : 0)));
|
||||
if (last_name_raw.length) {
|
||||
state->param = trans2_bytes_push_bytes(state->param,
|
||||
last_name_raw.data,
|
||||
|
@ -155,6 +155,7 @@ bool cli_check_msdfs_proxy(TALLOC_CTX *ctx,
|
||||
|
||||
int cli_set_message(char *buf,int num_words,int num_bytes,bool zero);
|
||||
unsigned int cli_set_timeout(struct cli_state *cli, unsigned int timeout);
|
||||
bool cli_set_backup_intent(struct cli_state *cli, bool flag);
|
||||
void cli_setup_packet_buf(struct cli_state *cli, char *buf);
|
||||
NTSTATUS cli_set_domain(struct cli_state *cli, const char *domain);
|
||||
NTSTATUS cli_set_username(struct cli_state *cli, const char *username);
|
||||
|
Loading…
x
Reference in New Issue
Block a user