mirror of
https://github.com/samba-team/samba.git
synced 2025-08-04 08:22:08 +03:00
s3: libsmb: Add cli_state_save_tcon() / cli_state_restore_tcon().
Save and restore tcon pointers in smb1 or smb2 structs.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12831
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
(cherry picked from commit 39026f1c5d
)
This commit is contained in:
committed by
Karolin Seeger
parent
d261f6d026
commit
b17ab94a38
@ -362,6 +362,26 @@ uint16_t cli_state_set_tid(struct cli_state *cli, uint16_t tid)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct smbXcli_tcon *cli_state_save_tcon(struct cli_state *cli)
|
||||||
|
{
|
||||||
|
if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
|
||||||
|
return smbXcli_tcon_copy(cli, cli->smb2.tcon);
|
||||||
|
} else {
|
||||||
|
return smbXcli_tcon_copy(cli, cli->smb1.tcon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void cli_state_restore_tcon(struct cli_state *cli, struct smbXcli_tcon *tcon)
|
||||||
|
{
|
||||||
|
if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
|
||||||
|
TALLOC_FREE(cli->smb2.tcon);
|
||||||
|
cli->smb2.tcon = tcon;
|
||||||
|
} else {
|
||||||
|
TALLOC_FREE(cli->smb1.tcon);
|
||||||
|
cli->smb1.tcon = tcon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t cli_state_get_uid(struct cli_state *cli)
|
uint16_t cli_state_get_uid(struct cli_state *cli)
|
||||||
{
|
{
|
||||||
return smb1cli_session_current_id(cli->smb1.session);
|
return smb1cli_session_current_id(cli->smb1.session);
|
||||||
|
@ -198,6 +198,9 @@ uint32_t cli_getpid(struct cli_state *cli);
|
|||||||
bool cli_state_has_tcon(struct cli_state *cli);
|
bool cli_state_has_tcon(struct cli_state *cli);
|
||||||
uint16_t cli_state_get_tid(struct cli_state *cli);
|
uint16_t cli_state_get_tid(struct cli_state *cli);
|
||||||
uint16_t cli_state_set_tid(struct cli_state *cli, uint16_t tid);
|
uint16_t cli_state_set_tid(struct cli_state *cli, uint16_t tid);
|
||||||
|
struct smbXcli_tcon;
|
||||||
|
struct smbXcli_tcon *cli_state_save_tcon(struct cli_state *cli);
|
||||||
|
void cli_state_restore_tcon(struct cli_state *cli, struct smbXcli_tcon *tcon);
|
||||||
uint16_t cli_state_get_uid(struct cli_state *cli);
|
uint16_t cli_state_get_uid(struct cli_state *cli);
|
||||||
uint16_t cli_state_set_uid(struct cli_state *cli, uint16_t uid);
|
uint16_t cli_state_set_uid(struct cli_state *cli, uint16_t uid);
|
||||||
bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive);
|
bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive);
|
||||||
|
Reference in New Issue
Block a user