s4:rpc_server: Remove imessaging_context from dcerpc core structs
authorSamuel Cabrero <scabrero@suse.de>
Wed, 23 Jan 2019 19:37:21 +0000 (20:37 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 18 Oct 2019 16:07:36 +0000 (16:07 +0000)
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>
source4/rpc_server/common/forward.c
source4/rpc_server/dcerpc_server.c
source4/rpc_server/dcerpc_server.h
source4/rpc_server/dcesrv_auth.c
source4/rpc_server/drsuapi/getncchanges.c
source4/rpc_server/drsuapi/updaterefs.c
source4/rpc_server/lsa/dcesrv_lsa.c
source4/rpc_server/lsa/lsa_lookup.c
source4/rpc_server/netlogon/dcerpc_netlogon.c
source4/rpc_server/samr/samr_password.c
source4/rpc_server/srvsvc/srvsvc_ntvfs.c

index 7d60bd7614213e502d318b67a66e94ff5e492cc2..4ae8c1b5c311b68f81eea65458f102ec0da92171 100644 (file)
@@ -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));
index ef767d8c2f596c80b1fde9b4960bf42d2dfe3e8c..c45bc17db1da79ebf7dda9480feb40c13c92f90f 100644 (file)
@@ -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;
+}
index 50b07462cfd3fa7850add4d936c9702bfd9cbdd4..0baff2cb0494598cbcf8de403f0f0ea17db346cc 100644 (file)
@@ -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 */
index 7dc225d9c8c5304cd9e063102a82b42105aba1a4..bc78a364d7e24d06a36c8f693ca533b7c835967a 100644 (file)
@@ -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,
index 47d04abd60e6767fe00c1eb7b2b90808736f94b2..e458b2a99311922cdd2a964243f8b74360aa97f6 100644 (file)
@@ -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,
index 0d3b47a95051321385044940e07fe06eec9b3ae3..289dc8117ce3f4a20291343ff5e64eab115bc892 100644 (file)
@@ -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);
index 831ebf42e36c666188b3c551bb34d6bc32a65d79..8cd983c7a187664abe27e05a1b25d7b783b7a247 100644 (file)
@@ -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;
 
index a2723dc68495337b70e0a1e3fc2959fad35398a5..344583a9d42c56ac03ed1f6b8e70b84798630114 100644 (file)
@@ -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;
index 6163eb92ff3a435613523708c482b8bece2a7d51..1a36cc6ddca004f212cfd72a723bd2a76a960386 100644 (file)
@@ -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;
index b04e37f06f39387301512ecab69154217bcba5e0..7cb261c8c9bf3c37aed81e4922e81d18eb733796 100644 (file)
@@ -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,
index fe97d60d999b4f518e19934a96fecb324a9f32fe..f83fd03502a9ae5caecbde0092ac6e69f3f36613 100644 (file)
@@ -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);