]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:rpc_server: Register endpoint servers in external fssd daemon
authorSamuel Cabrero <scabrero@suse.de>
Tue, 26 Feb 2019 12:50:37 +0000 (13:50 +0100)
committerSamuel Cabrero <scabrero@sn-devel-184>
Fri, 20 Mar 2020 15:36:31 +0000 (15:36 +0000)
Signed-off-by: Samuel Cabrero <scabrero@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source3/rpc_server/fssd.c

index 8dc8b0e8e64e0f74d691abdff0aef11c2724acdd..c3b9695bc7ac16096d11545ce07f00b00c6185d1 100644 (file)
 
 #include "librpc/rpc/dcerpc_ep.h"
 #include "../librpc/gen_ndr/srv_fsrvp.h"
+
+#include "librpc/rpc/dcesrv_core.h"
+#include "librpc/gen_ndr/ndr_fsrvp_scompat.h"
+
 #include "rpc_server/rpc_server.h"
 #include "rpc_server/rpc_sock_helper.h"
 #include "rpc_server/fss/srv_fss_agent.h"
@@ -152,6 +156,7 @@ void start_fssd(struct tevent_context *ev_ctx,
        NTSTATUS status;
        pid_t pid;
        int rc;
+       const struct dcesrv_endpoint_server *ep_server = NULL;
 
        fss_cb.init = fss_init_cb;
        fss_cb.shutdown = fss_shutdown_cb;
@@ -189,6 +194,22 @@ void start_fssd(struct tevent_context *ev_ctx,
                           MSG_SMB_CONF_UPDATED,
                           fssd_smb_conf_updated);
 
+       DBG_INFO("Registering DCE/RPC endpoint servers\n");
+
+       ep_server = FileServerVssAgent_get_ep_server();
+       if (ep_server == NULL) {
+               DBG_ERR("Failed to get 'FileServerVssAgent' endpoint "
+                       "server\n");
+               exit(1);
+       }
+
+       status = dcerpc_register_ep_server(ep_server);
+       if (!NT_STATUS_IS_OK(status)) {
+               DBG_ERR("Failed to register 'FileServerVssAgent' endpoint "
+                       "server: %s\n", nt_errstr(status));
+               exit(1);
+       }
+
        status = rpc_FileServerVssAgent_init(&fss_cb);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("Failed to register fssd rpc interface! (%s)\n",