summaryrefslogtreecommitdiff
path: root/source3/smbd/msdfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/msdfs.c')
-rw-r--r--source3/smbd/msdfs.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index 6f7707dbc9b..864cd102403 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -242,6 +242,7 @@ static NTSTATUS parse_dfs_path(connection_struct *conn,
*********************************************************/
static NTSTATUS create_conn_struct_as_root(TALLOC_CTX *ctx,
+ struct tevent_context *ev,
struct messaging_context *msg,
connection_struct **pconn,
int snum,
@@ -260,12 +261,7 @@ static NTSTATUS create_conn_struct_as_root(TALLOC_CTX *ctx,
return NT_STATUS_NO_MEMORY;
}
- sconn->ev_ctx = samba_tevent_context_init(sconn);
- if (sconn->ev_ctx == NULL) {
- TALLOC_FREE(sconn);
- return NT_STATUS_NO_MEMORY;
- }
-
+ sconn->ev_ctx = ev;
sconn->msg_ctx = msg;
conn = conn_new(sconn);
@@ -401,6 +397,7 @@ NTSTATUS create_conn_struct_tos(struct messaging_context *msg,
struct conn_struct_tos **_c)
{
struct conn_struct_tos *c = NULL;
+ struct tevent_context *ev = NULL;
NTSTATUS status;
*_c = NULL;
@@ -410,8 +407,15 @@ NTSTATUS create_conn_struct_tos(struct messaging_context *msg,
return NT_STATUS_NO_MEMORY;
}
+ ev = samba_tevent_context_init(c);
+ if (ev == NULL) {
+ TALLOC_FREE(c);
+ return NT_STATUS_NO_MEMORY;
+ }
+
become_root();
status = create_conn_struct_as_root(c,
+ ev,
msg,
&c->conn,
snum,