summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/server_exit.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/source3/smbd/server_exit.c b/source3/smbd/server_exit.c
index 57fec8d96c..65151a108c 100644
--- a/source3/smbd/server_exit.c
+++ b/source3/smbd/server_exit.c
@@ -26,6 +26,21 @@
#include "smbd/globals.h"
#include "librpc/gen_ndr/messaging.h"
+#include "../librpc/gen_ndr/srv_dfs.h"
+#include "../librpc/gen_ndr/srv_dssetup.h"
+#include "../librpc/gen_ndr/srv_echo.h"
+#include "../librpc/gen_ndr/srv_eventlog.h"
+#include "../librpc/gen_ndr/srv_initshutdown.h"
+#include "../librpc/gen_ndr/srv_lsa.h"
+#include "../librpc/gen_ndr/srv_netlogon.h"
+#include "../librpc/gen_ndr/srv_ntsvcs.h"
+#include "../librpc/gen_ndr/srv_samr.h"
+#include "../librpc/gen_ndr/srv_spoolss.h"
+#include "../librpc/gen_ndr/srv_srvsvc.h"
+#include "../librpc/gen_ndr/srv_svcctl.h"
+#include "../librpc/gen_ndr/srv_winreg.h"
+#include "../librpc/gen_ndr/srv_wkssvc.h"
+
static struct files_struct *log_writeable_file_fn(
struct files_struct *fsp, void *private_data)
{
@@ -113,6 +128,25 @@ static void exit_server_common(enum server_exit_reason how,
}
#endif
+ if (am_parent) {
+ rpc_wkssvc_shutdown();
+ rpc_dssetup_shutdown();
+ rpc_rpcecho_shutdown();
+ rpc_netdfs_shutdown();
+ rpc_initshutdown_shutdown();
+ rpc_eventlog_shutdown();
+ rpc_ntsvcs_shutdown();
+ rpc_svcctl_shutdown();
+ rpc_spoolss_shutdown();
+
+ rpc_srvsvc_shutdown();
+ rpc_winreg_shutdown();
+
+ rpc_netlogon_shutdown();
+ rpc_samr_shutdown();
+ rpc_lsarpc_shutdown();
+ }
+
locking_end();
printing_end();