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>
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;
+}