rpc_server: use the transport session_info if available
authorStefan Metzmacher <metze@samba.org>
Sat, 17 May 2008 00:40:37 +0000 (02:40 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 7 Jul 2008 19:42:10 +0000 (21:42 +0200)
metze
(This used to be commit 76dd521bcf53a245bd1412968e9b921e5c2f10c9)

source4/rpc_server/service_rpc.c

index 00f0d261ca5f0186c3a3538e72379420a1825880..b68cec4c7dba190167099a55e498e66319e75eaa 100644 (file)
@@ -104,20 +104,24 @@ static void dcesrv_sock_accept(struct stream_connection *srv_conn)
        struct dcesrv_socket_context *dcesrv_sock = 
                talloc_get_type(srv_conn->private, struct dcesrv_socket_context);
        struct dcesrv_connection *dcesrv_conn = NULL;
-       struct auth_session_info *session_info = NULL;
 
-       status = auth_anonymous_session_info(srv_conn, srv_conn->event.ctx, dcesrv_sock->dcesrv_ctx->lp_ctx, &session_info);
-       if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0,("dcesrv_sock_accept: auth_anonymous_session_info failed: %s\n", 
-                       nt_errstr(status)));
-               stream_terminate_connection(srv_conn, nt_errstr(status));
-               return;
+       if (!srv_conn->session_info) {
+               status = auth_anonymous_session_info(srv_conn,
+                                                    srv_conn->event.ctx,
+                                                    srv_conn->lp_ctx,
+                                                    &srv_conn->session_info);
+               if (!NT_STATUS_IS_OK(status)) {
+                       DEBUG(0,("dcesrv_sock_accept: auth_anonymous_session_info failed: %s\n",
+                               nt_errstr(status)));
+                       stream_terminate_connection(srv_conn, nt_errstr(status));
+                       return;
+               }
        }
 
        status = dcesrv_endpoint_connect(dcesrv_sock->dcesrv_ctx,
                                         srv_conn,
                                         dcesrv_sock->endpoint,
-                                        session_info,
+                                        srv_conn->session_info,
                                         srv_conn->event.ctx,
                                         srv_conn->msg_ctx,
                                         srv_conn->server_id,