mirror of
https://github.com/samba-team/samba.git
synced 2025-03-12 20:58:37 +03:00
smbd: add create_conn_struct_cwd()
Compared to create_conn_struct_tos_cwd() this takes a TALLOC_CTX and tevent_context as additional arguments and the resulting connection_struct is stable across the lifetime of mem_ctx and ev. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14740 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> (cherry picked from commit 9a2d6bcfd5797dd4db764921548c8dca6dd0eb21)
This commit is contained in:
parent
60e091a153
commit
48b2dc3c5c
@ -496,6 +496,44 @@ NTSTATUS create_conn_struct_tos_cwd(struct messaging_context *msg,
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
/********************************************************
|
||||
Fake up a connection struct for the VFS layer.
|
||||
This takes an TALLOC_CTX and tevent_context from the
|
||||
caller and the resulting connection_struct is stable
|
||||
across the lifetime of mem_ctx and ev.
|
||||
|
||||
Note: this performs a vfs connect and changes cwd.
|
||||
|
||||
See also the comment for create_conn_struct_tos() above!
|
||||
*********************************************************/
|
||||
|
||||
NTSTATUS create_conn_struct_cwd(TALLOC_CTX *mem_ctx,
|
||||
struct tevent_context *ev,
|
||||
struct messaging_context *msg,
|
||||
const struct auth_session_info *session_info,
|
||||
int snum,
|
||||
const char *path,
|
||||
struct connection_struct **c)
|
||||
{
|
||||
NTSTATUS status;
|
||||
|
||||
become_root();
|
||||
status = create_conn_struct_as_root(mem_ctx,
|
||||
ev,
|
||||
msg,
|
||||
c,
|
||||
snum,
|
||||
path,
|
||||
session_info);
|
||||
unbecome_root();
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
TALLOC_FREE(c);
|
||||
return status;
|
||||
}
|
||||
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
static void shuffle_strlist(char **list, int count)
|
||||
{
|
||||
int i;
|
||||
|
@ -561,6 +561,14 @@ NTSTATUS resolve_dfspath_wcard(TALLOC_CTX *ctx,
|
||||
bool *ppath_contains_wcard);
|
||||
struct connection_struct;
|
||||
struct smb_filename;
|
||||
|
||||
NTSTATUS create_conn_struct_cwd(TALLOC_CTX *mem_ctx,
|
||||
struct tevent_context *ev,
|
||||
struct messaging_context *msg,
|
||||
const struct auth_session_info *session_info,
|
||||
int snum,
|
||||
const char *path,
|
||||
struct connection_struct **c);
|
||||
struct conn_struct_tos {
|
||||
struct connection_struct *conn;
|
||||
struct smb_filename *oldcwd_fname;
|
||||
|
Loading…
x
Reference in New Issue
Block a user