mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
libcli: smb: Add smbXcli_tcon_copy().
Makes a deep copy of a struct smbXcli_tcon *, will be used later. 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>
This commit is contained in:
parent
60cae0a704
commit
655e106858
@ -6114,6 +6114,38 @@ struct smbXcli_tcon *smbXcli_tcon_create(TALLOC_CTX *mem_ctx)
|
||||
return tcon;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a deep structure copy of a struct smbXcli_tcon *
|
||||
*/
|
||||
|
||||
struct smbXcli_tcon *smbXcli_tcon_copy(TALLOC_CTX *mem_ctx,
|
||||
const struct smbXcli_tcon *tcon_in)
|
||||
{
|
||||
struct smbXcli_tcon *tcon;
|
||||
|
||||
tcon = talloc_memdup(mem_ctx, tcon_in, sizeof(struct smbXcli_tcon));
|
||||
if (tcon == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Deal with the SMB1 strings. */
|
||||
if (tcon_in->smb1.service != NULL) {
|
||||
tcon->smb1.service = talloc_strdup(tcon, tcon_in->smb1.service);
|
||||
if (tcon->smb1.service == NULL) {
|
||||
TALLOC_FREE(tcon);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
if (tcon->smb1.fs_type != NULL) {
|
||||
tcon->smb1.fs_type = talloc_strdup(tcon, tcon_in->smb1.fs_type);
|
||||
if (tcon->smb1.fs_type == NULL) {
|
||||
TALLOC_FREE(tcon);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
return tcon;
|
||||
}
|
||||
|
||||
void smbXcli_tcon_set_fs_attributes(struct smbXcli_tcon *tcon,
|
||||
uint32_t fs_attributes)
|
||||
{
|
||||
|
@ -501,6 +501,8 @@ NTSTATUS smb2cli_session_set_channel_key(struct smbXcli_session *session,
|
||||
NTSTATUS smb2cli_session_encryption_on(struct smbXcli_session *session);
|
||||
|
||||
struct smbXcli_tcon *smbXcli_tcon_create(TALLOC_CTX *mem_ctx);
|
||||
struct smbXcli_tcon *smbXcli_tcon_copy(TALLOC_CTX *mem_ctx,
|
||||
const struct smbXcli_tcon *tcon_in);
|
||||
void smbXcli_tcon_set_fs_attributes(struct smbXcli_tcon *tcon,
|
||||
uint32_t fs_attributes);
|
||||
uint32_t smbXcli_tcon_get_fs_attributes(struct smbXcli_tcon *tcon);
|
||||
|
Loading…
Reference in New Issue
Block a user