diff options
author | Samuel Cabrero <scabrero@suse.de> | 2019-01-23 20:37:21 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2019-10-18 16:07:36 +0000 |
commit | 3d7167f4f43f5cf8ca4393d8d852bd146bf05cde (patch) | |
tree | b2e49608cfc2297e66b66b52f6dcece92a584dc6 /source4 | |
parent | 3d529762df48205f91e4089178f7aeae240d0da8 (diff) | |
download | samba-3d7167f4f43f5cf8ca4393d8d852bd146bf05cde.tar.gz |
s4:rpc_server: Remove imessaging_context from dcerpc core structs
Add a helper function to retrieve the imessaging_context from the
stream connection.
Signed-off-by: Samuel Cabrero <scabrero@suse.de>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source4')
-rw-r--r-- | source4/rpc_server/common/forward.c | 8 | ||||
-rw-r--r-- | source4/rpc_server/dcerpc_server.c | 13 | ||||
-rw-r--r-- | source4/rpc_server/dcerpc_server.h | 9 | ||||
-rw-r--r-- | source4/rpc_server/dcesrv_auth.c | 8 | ||||
-rw-r--r-- | source4/rpc_server/drsuapi/getncchanges.c | 10 | ||||
-rw-r--r-- | source4/rpc_server/drsuapi/updaterefs.c | 9 | ||||
-rw-r--r-- | source4/rpc_server/lsa/dcesrv_lsa.c | 26 | ||||
-rw-r--r-- | source4/rpc_server/lsa/lsa_lookup.c | 16 | ||||
-rw-r--r-- | source4/rpc_server/netlogon/dcerpc_netlogon.c | 31 | ||||
-rw-r--r-- | source4/rpc_server/samr/samr_password.c | 8 | ||||
-rw-r--r-- | source4/rpc_server/srvsvc/srvsvc_ntvfs.c | 4 |
11 files changed, 98 insertions, 44 deletions
diff --git a/source4/rpc_server/common/forward.c b/source4/rpc_server/common/forward.c index 7d60bd76142..4ae8c1b5c31 100644 --- a/source4/rpc_server/common/forward.c +++ b/source4/rpc_server/common/forward.c @@ -74,6 +74,8 @@ void dcesrv_irpc_forward_rpc_call(struct dcesrv_call_state *dce_call, TALLOC_CTX struct tevent_req *subreq; struct auth_session_info *session_info = dcesrv_call_session_info(dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); st = talloc(mem_ctx, struct dcesrv_forward_state); if (st == NULL) { @@ -93,8 +95,10 @@ void dcesrv_irpc_forward_rpc_call(struct dcesrv_call_state *dce_call, TALLOC_CTX return; } - binding_handle = irpc_binding_handle_by_name(st, dce_call->msg_ctx, - dest_task, ndr_table); + binding_handle = irpc_binding_handle_by_name(st, + imsg_ctx, + dest_task, + ndr_table); if (binding_handle == NULL) { DEBUG(0,("%s: Failed to forward request to %s task\n", opname, dest_task)); diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c index ef767d8c2f5..c45bc17db1d 100644 --- a/source4/rpc_server/dcerpc_server.c +++ b/source4/rpc_server/dcerpc_server.c @@ -609,7 +609,6 @@ static NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx, const struct dcesrv_endpoint *ep, struct auth_session_info *session_info, struct tevent_context *event_ctx, - struct imessaging_context *msg_ctx, struct server_id server_id, uint32_t state_flags, struct dcesrv_connection **_p) @@ -628,7 +627,6 @@ static NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx, p->endpoint = ep; p->packet_log_dir = lpcfg_lock_directory(dce_ctx->lp_ctx); p->event_ctx = event_ctx; - p->msg_ctx = msg_ctx; p->server_id = server_id; p->state_flags = state_flags; p->allow_bind = true; @@ -2043,7 +2041,6 @@ static NTSTATUS dcesrv_process_ncacn_packet(struct dcesrv_connection *dce_conn, } call->conn = dce_conn; call->event_ctx = dce_conn->event_ctx; - call->msg_ctx = dce_conn->msg_ctx; call->state_flags = call->conn->state_flags; call->time = timeval_current(); call->list = DCESRV_LIST_NONE; @@ -2825,7 +2822,6 @@ static void dcesrv_sock_accept(struct stream_connection *srv_conn) dcesrv_sock->endpoint, srv_conn->session_info, srv_conn->event.ctx, - srv_conn->msg_ctx, srv_conn->server_id, DCESRV_CALL_STATE_FLAG_MAY_ASYNC, &dcesrv_conn); @@ -3389,3 +3385,12 @@ _PUBLIC_ void dcesrv_call_auth_info(struct dcesrv_call_state *dce_call, *auth_level = auth->auth_level; } } + +_PUBLIC_ struct imessaging_context *dcesrv_imessaging_context( + struct dcesrv_connection *conn) +{ + struct stream_connection *srv_conn = + talloc_get_type_abort(conn->transport.private_data, + struct stream_connection); + return srv_conn->msg_ctx; +} diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h index 50b07462cfd..0baff2cb049 100644 --- a/source4/rpc_server/dcerpc_server.h +++ b/source4/rpc_server/dcerpc_server.h @@ -127,9 +127,6 @@ struct dcesrv_call_state { /* the backend can use this event context for async replies */ struct tevent_context *event_ctx; - /* the message_context that will be used for async replies */ - struct imessaging_context *msg_ctx; - /* this is the pointer to the allocated function struct */ void *r; @@ -263,9 +260,6 @@ struct dcesrv_connection { /* the event_context that will be used for this connection */ struct tevent_context *event_ctx; - /* the message_context that will be used for this connection */ - struct imessaging_context *msg_ctx; - /* the server_id that will be used for this connection */ struct server_id server_id; @@ -581,4 +575,7 @@ _PUBLIC_ void *_dcesrv_iface_state_find_conn( _dcesrv_iface_state_find_conn((call), (magic)), \ _type) +_PUBLIC_ struct imessaging_context *dcesrv_imessaging_context( + struct dcesrv_connection *conn); + #endif /* SAMBA_DCERPC_SERVER_H */ diff --git a/source4/rpc_server/dcesrv_auth.c b/source4/rpc_server/dcesrv_auth.c index 7dc225d9c8c..bc78a364d7e 100644 --- a/source4/rpc_server/dcesrv_auth.c +++ b/source4/rpc_server/dcesrv_auth.c @@ -81,6 +81,8 @@ static bool dcesrv_auth_prepare_gensec(struct dcesrv_call_state *call) struct cli_credentials *server_credentials = NULL; struct dcesrv_connection *dce_conn = call->conn; struct dcesrv_auth *auth = call->auth_state; + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(call->conn); NTSTATUS status; if (auth->auth_started) { @@ -146,7 +148,7 @@ static bool dcesrv_auth_prepare_gensec(struct dcesrv_call_state *call) status = samba_server_gensec_start(auth, call->event_ctx, - call->msg_ctx, + imsg_ctx, call->conn->dce_ctx->lp_ctx, server_credentials, NULL, @@ -236,6 +238,8 @@ static void log_successful_dcesrv_authz_event(struct dcesrv_call_state *call) struct dcesrv_auth *auth = call->auth_state; enum dcerpc_transport_t transport = dcerpc_binding_get_transport(call->conn->endpoint->ep_description); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(call->conn); const char *auth_type = derpc_transport_string_by_transport(transport); const char *transport_protection = AUTHZ_TRANSPORT_PROTECTION_NONE; @@ -248,7 +252,7 @@ static void log_successful_dcesrv_authz_event(struct dcesrv_call_state *call) * covered ncacn_np pass-through auth, and anonymous * DCE/RPC (eg epmapper, netlogon etc) */ - log_successful_authz_event(call->conn->msg_ctx, + log_successful_authz_event(imsg_ctx, call->conn->dce_ctx->lp_ctx, call->conn->remote_address, call->conn->local_address, diff --git a/source4/rpc_server/drsuapi/getncchanges.c b/source4/rpc_server/drsuapi/getncchanges.c index 47d04abd60e..e458b2a9931 100644 --- a/source4/rpc_server/drsuapi/getncchanges.c +++ b/source4/rpc_server/drsuapi/getncchanges.c @@ -2675,6 +2675,8 @@ WERROR dcesrv_drsuapi_DsGetNCChanges(struct dcesrv_call_state *dce_call, TALLOC_ { struct auth_session_info *session_info = dcesrv_call_session_info(dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); struct drsuapi_DsReplicaObjectIdentifier *ncRoot; int ret; uint32_t i, k; @@ -3450,9 +3452,11 @@ allowed: to send notifies using the GC SPN */ ureq.options |= (req10->replica_flags & DRSUAPI_DRS_REF_GCSPN); - werr = drsuapi_UpdateRefs(dce_call->msg_ctx, - dce_call->event_ctx, b_state, - mem_ctx, &ureq); + werr = drsuapi_UpdateRefs(imsg_ctx, + dce_call->event_ctx, + b_state, + mem_ctx, + &ureq); if (!W_ERROR_IS_OK(werr)) { DEBUG(0,(__location__ ": Failed UpdateRefs on %s for %s in DsGetNCChanges - %s\n", drs_ObjectIdentifier_to_string(mem_ctx, ncRoot), ureq.dest_dsa_dns_name, diff --git a/source4/rpc_server/drsuapi/updaterefs.c b/source4/rpc_server/drsuapi/updaterefs.c index 0d3b47a9505..289dc8117ce 100644 --- a/source4/rpc_server/drsuapi/updaterefs.c +++ b/source4/rpc_server/drsuapi/updaterefs.c @@ -338,6 +338,8 @@ WERROR dcesrv_drsuapi_DsReplicaUpdateRefs(struct dcesrv_call_state *dce_call, TA { struct auth_session_info *session_info = dcesrv_call_session_info(dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); struct dcesrv_handle *h; struct drsuapi_bind_state *b_state; struct drsuapi_DsReplicaUpdateRefsRequest1 *req; @@ -378,8 +380,11 @@ WERROR dcesrv_drsuapi_DsReplicaUpdateRefs(struct dcesrv_call_state *dce_call, TA } } - werr = drsuapi_UpdateRefs(dce_call->msg_ctx, dce_call->event_ctx, - b_state, mem_ctx, req); + werr = drsuapi_UpdateRefs(imsg_ctx, + dce_call->event_ctx, + b_state, + mem_ctx, + req); #if 0 NDR_PRINT_FUNCTION_DEBUG(drsuapi_DsReplicaUpdateRefs, NDR_BOTH, r); diff --git a/source4/rpc_server/lsa/dcesrv_lsa.c b/source4/rpc_server/lsa/dcesrv_lsa.c index 831ebf42e36..8cd983c7a18 100644 --- a/source4/rpc_server/lsa/dcesrv_lsa.c +++ b/source4/rpc_server/lsa/dcesrv_lsa.c @@ -1105,6 +1105,8 @@ static NTSTATUS dcesrv_lsa_CreateTrustedDomain_base(struct dcesrv_call_state *dc char *dns_encoded = NULL; char *netbios_encoded = NULL; char *sid_encoded = NULL; + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); DCESRV_PULL_HANDLE(policy_handle, r->in.policy_handle, LSA_HANDLE_POLICY); ZERO_STRUCTP(r->out.trustdom_handle); @@ -1364,13 +1366,16 @@ static NTSTATUS dcesrv_lsa_CreateTrustedDomain_base(struct dcesrv_call_state *dc /* * Notify winbindd that we have a new trust */ - status = irpc_servers_byname(dce_call->msg_ctx, + status = irpc_servers_byname(imsg_ctx, mem_ctx, "winbind_server", - &num_server_ids, &server_ids); + &num_server_ids, + &server_ids); if (NT_STATUS_IS_OK(status) && num_server_ids >= 1) { - imessaging_send(dce_call->msg_ctx, server_ids[0], - MSG_WINBIND_RELOAD_TRUSTED_DOMAINS, NULL); + imessaging_send(imsg_ctx, + server_ids[0], + MSG_WINBIND_RELOAD_TRUSTED_DOMAINS, + NULL); } TALLOC_FREE(server_ids); @@ -4403,6 +4408,8 @@ static NTSTATUS dcesrv_lsa_lsaRSetForestTrustInformation(struct dcesrv_call_stat enum ndr_err_code ndr_err; int ret; bool in_transaction = false; + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); DCESRV_PULL_HANDLE(h, r->in.handle, LSA_HANDLE_POLICY); @@ -4641,17 +4648,20 @@ static NTSTATUS dcesrv_lsa_lsaRSetForestTrustInformation(struct dcesrv_call_stat /* * Notify winbindd that we have a acquired forest trust info */ - status = irpc_servers_byname(dce_call->msg_ctx, + status = irpc_servers_byname(imsg_ctx, mem_ctx, "winbind_server", - &num_server_ids, &server_ids); + &num_server_ids, + &server_ids); if (!NT_STATUS_IS_OK(status)) { DBG_ERR("irpc_servers_byname failed\n"); goto done; } - imessaging_send(dce_call->msg_ctx, server_ids[0], - MSG_WINBIND_RELOAD_TRUSTED_DOMAINS, NULL); + imessaging_send(imsg_ctx, + server_ids[0], + MSG_WINBIND_RELOAD_TRUSTED_DOMAINS, + NULL); status = NT_STATUS_OK; diff --git a/source4/rpc_server/lsa/lsa_lookup.c b/source4/rpc_server/lsa/lsa_lookup.c index a2723dc6849..344583a9d42 100644 --- a/source4/rpc_server/lsa/lsa_lookup.c +++ b/source4/rpc_server/lsa/lsa_lookup.c @@ -1878,6 +1878,8 @@ static NTSTATUS dcesrv_lsa_lookup_name_winbind( NTSTATUS status; const char *check_domain_name = NULL; bool expect_domain = false; + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(state->dce_call->conn); if (item->name == NULL) { /* @@ -1994,9 +1996,9 @@ static NTSTATUS dcesrv_lsa_lookup_name_winbind( } state->wb.irpc_handle = irpc_binding_handle_by_name(state, - state->dce_call->msg_ctx, - "winbind_server", - &ndr_table_lsarpc); + imsg_ctx, + "winbind_server", + &ndr_table_lsarpc); if (state->wb.irpc_handle == NULL) { DEBUG(0,("Failed to get binding_handle for winbind_server task\n")); state->dce_call->fault_code = DCERPC_FAULT_CANT_PERFORM; @@ -2021,6 +2023,8 @@ static NTSTATUS dcesrv_lsa_lookup_sid_winbind( struct dom_sid domain_sid = {0,}; NTSTATUS status; bool match; + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(state->dce_call->conn); /* * Verify the sid is not INVALID. @@ -2111,9 +2115,9 @@ static NTSTATUS dcesrv_lsa_lookup_sid_winbind( } state->wb.irpc_handle = irpc_binding_handle_by_name(state, - state->dce_call->msg_ctx, - "winbind_server", - &ndr_table_lsarpc); + imsg_ctx, + "winbind_server", + &ndr_table_lsarpc); if (state->wb.irpc_handle == NULL) { DEBUG(0,("Failed to get binding_handle for winbind_server task\n")); state->dce_call->fault_code = DCERPC_FAULT_CANT_PERFORM; diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c index 6163eb92ff3..1a36cc6ddca 100644 --- a/source4/rpc_server/netlogon/dcerpc_netlogon.c +++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c @@ -523,6 +523,8 @@ static NTSTATUS dcesrv_netr_ServerAuthenticate3( struct dom_sid *sid = NULL; const char *trust_account_for_search = NULL; const char *trust_account_in_db = NULL; + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); struct auth_usersupplied_info ui = { .local_host = dce_call->conn->local_address, .remote_host = dce_call->conn->remote_address, @@ -549,7 +551,7 @@ static NTSTATUS dcesrv_netr_ServerAuthenticate3( ui.netlogon_trust_account.account_name = trust_account_in_db; ui.mapped.account_name = trust_account_for_search; log_authentication_event( - dce_call->conn->msg_ctx, + imsg_ctx, dce_call->conn->dce_ctx->lp_ctx, NULL, &ui, @@ -947,6 +949,8 @@ static void dcesrv_netr_LogonSamLogon_base_reply( static NTSTATUS dcesrv_netr_LogonSamLogon_base_call(struct dcesrv_netr_LogonSamLogon_base_state *state) { struct dcesrv_call_state *dce_call = state->dce_call; + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); TALLOC_CTX *mem_ctx = state->mem_ctx; struct netr_LogonSamLogonEx *r = &state->r; struct netlogon_creds_CredentialState *creds = state->creds; @@ -992,7 +996,8 @@ static NTSTATUS dcesrv_netr_LogonSamLogon_base_call(struct dcesrv_netr_LogonSamL case NetlogonNetworkTransitiveInformation: nt_status = auth_context_create_for_netlogon(mem_ctx, - dce_call->event_ctx, dce_call->msg_ctx, + dce_call->event_ctx, + imsg_ctx, dce_call->conn->dce_ctx->lp_ctx, &auth_context); NT_STATUS_NOT_OK_RETURN(nt_status); @@ -1111,7 +1116,7 @@ static NTSTATUS dcesrv_netr_LogonSamLogon_base_call(struct dcesrv_netr_LogonSamL = r->in.logon->generic->identity_info.logon_id; irpc_handle = irpc_binding_handle_by_name(mem_ctx, - dce_call->msg_ctx, + imsg_ctx, "kdc_server", &ndr_table_irpc); if (irpc_handle == NULL) { @@ -1648,6 +1653,8 @@ static WERROR dcesrv_netr_LogonControl_base_call(struct dcesrv_netr_LogonControl struct loadparm_context *lp_ctx = state->dce_call->conn->dce_ctx->lp_ctx; struct auth_session_info *session_info = dcesrv_call_session_info(state->dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(state->dce_call->conn); enum security_user_level security_level; struct dcerpc_binding_handle *irpc_handle; struct tevent_req *subreq; @@ -1827,7 +1834,7 @@ static WERROR dcesrv_netr_LogonControl_base_call(struct dcesrv_netr_LogonControl } irpc_handle = irpc_binding_handle_by_name(state, - state->dce_call->msg_ctx, + imsg_ctx, "winbind_server", &ndr_table_winbind); if (irpc_handle == NULL) { @@ -2914,6 +2921,8 @@ static WERROR dcesrv_netr_DsRGetDCName_base_call(struct dcesrv_netr_DsRGetDCName struct dcesrv_call_state *dce_call = state->dce_call; struct auth_session_info *session_info = dcesrv_call_session_info(dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); TALLOC_CTX *mem_ctx = state->mem_ctx; struct netr_DsRGetDCNameEx2 *r = &state->r; struct ldb_context *sam_ctx; @@ -3058,7 +3067,7 @@ static WERROR dcesrv_netr_DsRGetDCName_base_call(struct dcesrv_netr_DsRGetDCName false); irpc_handle = irpc_binding_handle_by_name(state, - dce_call->msg_ctx, + imsg_ctx, "winbind_server", &ndr_table_winbind); if (irpc_handle == NULL) { @@ -3826,6 +3835,8 @@ static WERROR dcesrv_netr_DsRGetForestTrustInformation(struct dcesrv_call_state struct loadparm_context *lp_ctx = dce_call->conn->dce_ctx->lp_ctx; struct auth_session_info *session_info = dcesrv_call_session_info(dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); enum security_user_level security_level; struct ldb_context *sam_ctx = NULL; struct dcesrv_netr_DsRGetForestTrustInformation_state *state = NULL; @@ -3914,7 +3925,7 @@ static WERROR dcesrv_netr_DsRGetForestTrustInformation(struct dcesrv_call_state state->r = r; irpc_handle = irpc_binding_handle_by_name(state, - state->dce_call->msg_ctx, + imsg_ctx, "winbind_server", &ndr_table_winbind); if (irpc_handle == NULL) { @@ -4262,6 +4273,8 @@ static NTSTATUS dcesrv_netr_DsrUpdateReadOnlyServerDnsRecords(struct dcesrv_call struct dcerpc_binding_handle *binding_handle; struct netr_dnsupdate_RODC_state *st; struct tevent_req *subreq; + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); nt_status = dcesrv_netr_creds_server_step_check(dce_call, mem_ctx, @@ -4289,8 +4302,10 @@ static NTSTATUS dcesrv_netr_DsrUpdateReadOnlyServerDnsRecords(struct dcesrv_call st->r2->in.dns_names = r->in.dns_names; st->r2->out.dns_names = r->out.dns_names; - binding_handle = irpc_binding_handle_by_name(st, dce_call->msg_ctx, - "dnsupdate", &ndr_table_irpc); + binding_handle = irpc_binding_handle_by_name(st, + imsg_ctx, + "dnsupdate", + &ndr_table_irpc); if (binding_handle == NULL) { DEBUG(0,("Failed to get binding_handle for dnsupdate task\n")); dce_call->fault_code = DCERPC_FAULT_CANT_PERFORM; diff --git a/source4/rpc_server/samr/samr_password.c b/source4/rpc_server/samr/samr_password.c index b04e37f06f3..7cb261c8c9b 100644 --- a/source4/rpc_server/samr/samr_password.c +++ b/source4/rpc_server/samr/samr_password.c @@ -103,6 +103,8 @@ NTSTATUS dcesrv_samr_OemChangePasswordUser2(struct dcesrv_call_state *dce_call, { struct auth_session_info *session_info = dcesrv_call_session_info(dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); NTSTATUS status = NT_STATUS_WRONG_PASSWORD; DATA_BLOB new_password, new_unicode_password; char *new_pass; @@ -289,7 +291,7 @@ NTSTATUS dcesrv_samr_OemChangePasswordUser2(struct dcesrv_call_state *dce_call, failed: - log_password_change_event(dce_call->conn->msg_ctx, + log_password_change_event(imsg_ctx, dce_call->conn->dce_ctx->lp_ctx, dce_call->conn->remote_address, dce_call->conn->local_address, @@ -323,6 +325,8 @@ NTSTATUS dcesrv_samr_ChangePasswordUser3(struct dcesrv_call_state *dce_call, { struct auth_session_info *session_info = dcesrv_call_session_info(dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); NTSTATUS status = NT_STATUS_WRONG_PASSWORD; DATA_BLOB new_password; struct ldb_context *sam_ctx = NULL; @@ -515,7 +519,7 @@ NTSTATUS dcesrv_samr_ChangePasswordUser3(struct dcesrv_call_state *dce_call, failed: - log_password_change_event(dce_call->conn->msg_ctx, + log_password_change_event(imsg_ctx, dce_call->conn->dce_ctx->lp_ctx, dce_call->conn->remote_address, dce_call->conn->local_address, diff --git a/source4/rpc_server/srvsvc/srvsvc_ntvfs.c b/source4/rpc_server/srvsvc/srvsvc_ntvfs.c index fe97d60d999..f83fd03502a 100644 --- a/source4/rpc_server/srvsvc/srvsvc_ntvfs.c +++ b/source4/rpc_server/srvsvc/srvsvc_ntvfs.c @@ -41,6 +41,8 @@ NTSTATUS srvsvc_create_ntvfs_context(struct dcesrv_call_state *dce_call, { struct auth_session_info *session_info = dcesrv_call_session_info(dce_call); + struct imessaging_context *imsg_ctx = + dcesrv_imessaging_context(dce_call->conn); NTSTATUS status; struct srvsvc_ntvfs_ctx *c; struct ntvfs_request *ntvfs_req; @@ -92,7 +94,7 @@ NTSTATUS srvsvc_create_ntvfs_context(struct dcesrv_call_state *dce_call, PROTOCOL_NT1, 0,/* ntvfs_client_caps */ dce_call->event_ctx, - dce_call->conn->msg_ctx, + imsg_ctx, dce_call->conn->dce_ctx->lp_ctx, dce_call->conn->server_id, &c->ntvfs); |