s4:rpc_server: Remove server_id from dcerpc core structs
authorSamuel Cabrero <scabrero@suse.de>
Wed, 23 Jan 2019 19:41:54 +0000 (20:41 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 18 Oct 2019 16:07:36 +0000 (16:07 +0000)
Add a helper function to retrieve it 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/dcerpc_server.c
source4/rpc_server/dcerpc_server.h
source4/rpc_server/srvsvc/srvsvc_ntvfs.c

index c45bc17db1da79ebf7dda9480feb40c13c92f90f..146558de3b4263919bbd84e27668622de1f87782 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 server_id server_id,
                                 uint32_t state_flags,
                                 struct dcesrv_connection **_p)
 {
@@ -627,7 +626,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->server_id = server_id;
        p->state_flags = state_flags;
        p->allow_bind = true;
        p->max_recv_frag = 5840;
@@ -2822,7 +2820,6 @@ static void dcesrv_sock_accept(struct stream_connection *srv_conn)
                                         dcesrv_sock->endpoint,
                                         srv_conn->session_info,
                                         srv_conn->event.ctx,
-                                        srv_conn->server_id,
                                         DCESRV_CALL_STATE_FLAG_MAY_ASYNC,
                                         &dcesrv_conn);
        if (!NT_STATUS_IS_OK(status)) {
@@ -3394,3 +3391,11 @@ _PUBLIC_ struct imessaging_context *dcesrv_imessaging_context(
                                      struct stream_connection);
        return srv_conn->msg_ctx;
 }
+
+_PUBLIC_ struct server_id dcesrv_server_id(struct dcesrv_connection *conn)
+{
+       struct stream_connection *srv_conn =
+               talloc_get_type_abort(conn->transport.private_data,
+                               struct stream_connection);
+       return srv_conn->server_id;
+}
index 0baff2cb0494598cbcf8de403f0f0ea17db346cc..35ac3abe2ce78c5419adf8624096226aac1457b8 100644 (file)
@@ -23,7 +23,6 @@
 #ifndef SAMBA_DCERPC_SERVER_H
 #define SAMBA_DCERPC_SERVER_H
 
-#include "librpc/gen_ndr/server_id.h"
 #include "librpc/rpc/dcerpc.h"
 #include "librpc/ndr/libndr.h"
 
@@ -260,9 +259,6 @@ struct dcesrv_connection {
        /* the event_context that will be used for this connection */
        struct tevent_context *event_ctx;
 
-       /* the server_id that will be used for this connection */
-       struct server_id server_id;
-
        /* is this connection pending termination?  If so, why? */
        const char *terminate;
 
@@ -577,5 +573,6 @@ _PUBLIC_ void *_dcesrv_iface_state_find_conn(
 
 _PUBLIC_ struct imessaging_context *dcesrv_imessaging_context(
                                        struct dcesrv_connection *conn);
+_PUBLIC_ struct server_id dcesrv_server_id(struct dcesrv_connection *conn);
 
 #endif /* SAMBA_DCERPC_SERVER_H */
index f83fd03502a9ae5caecbde0092ac6e69f3f36613..2d45e554a145b945bf68435f4c8ee80a9d7eb197 100644 (file)
@@ -43,6 +43,7 @@ NTSTATUS srvsvc_create_ntvfs_context(struct dcesrv_call_state *dce_call,
                dcesrv_call_session_info(dce_call);
        struct imessaging_context *imsg_ctx =
                dcesrv_imessaging_context(dce_call->conn);
+       struct server_id server_id = dcesrv_server_id(dce_call->conn);
        NTSTATUS status;
        struct srvsvc_ntvfs_ctx *c;
        struct ntvfs_request *ntvfs_req;
@@ -96,7 +97,7 @@ NTSTATUS srvsvc_create_ntvfs_context(struct dcesrv_call_state *dce_call,
                                       dce_call->event_ctx,
                                       imsg_ctx,
                                       dce_call->conn->dce_ctx->lp_ctx,
-                                      dce_call->conn->server_id,
+                                      server_id,
                                       &c->ntvfs);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("srvsvc_create_ntvfs_context: ntvfs_init_connection failed for service %s\n",