diff options
| author | Stefan Metzmacher <metze@samba.org> | 2024-08-09 09:07:40 +0200 |
|---|---|---|
| committer | Andreas Schneider <asn@cryptomilk.org> | 2025-01-29 11:20:33 +0000 |
| commit | 6cb46e5cb60ce753cac55a8ba19f5cffb697d545 (patch) | |
| tree | 3862317343ac800fe186435268f83bb26a7615cd /source4 | |
| parent | e2969ed00fd85d5b2bf62d2a17643b5f8481b278 (diff) | |
| download | samba-6cb46e5cb60ce753cac55a8ba19f5cffb697d545.tar.gz samba-6cb46e5cb60ce753cac55a8ba19f5cffb697d545.tar.bz2 samba-6cb46e5cb60ce753cac55a8ba19f5cffb697d545.zip | |
s4:libcli/smb2: add smb2_tree_channel() helper
This can be used after smb2_session_channel() in order
to have a smb2_tree structure representing the same
logic tree connect but uses a different channel/connection.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14430
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source4')
| -rw-r--r-- | source4/libcli/smb2/tcon.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source4/libcli/smb2/tcon.c b/source4/libcli/smb2/tcon.c index 702e308aa63..e66f00790fd 100644 --- a/source4/libcli/smb2/tcon.c +++ b/source4/libcli/smb2/tcon.c @@ -50,3 +50,28 @@ struct smb2_tree *smb2_tree_init(struct smb2_session *session, return tree; } + +struct smb2_tree *smb2_tree_channel(struct smb2_tree *base_tree, + TALLOC_CTX *parent_ctx, bool primary, + struct smb2_session *session) +{ + struct smb2_tree *tree; + + tree = talloc_zero(parent_ctx, struct smb2_tree); + if (!session) { + return NULL; + } + if (primary) { + tree->session = talloc_steal(tree, session); + } else { + tree->session = talloc_reference(tree, session); + } + + tree->smbXcli = smbXcli_tcon_copy(tree, base_tree->smbXcli); + if (tree->smbXcli == NULL) { + talloc_free(tree); + return NULL; + } + + return tree; +} |
