summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2010-12-20 11:00:45 +0100
committerAndreas Schneider <asn@samba.org>2011-01-04 11:23:21 +0100
commit9aa876397601554df5f6b6e4b690755ed0eb405e (patch)
tree5cfab01315bc5f14869fd12a0a89bb4ae4945de0 /source3/smbd
parent0279422c83e42a6c903e82a069a5236dd01a0f21 (diff)
downloadsamba-9aa876397601554df5f6b6e4b690755ed0eb405e.tar.gz
samba-9aa876397601554df5f6b6e4b690755ed0eb405e.tar.bz2
samba-9aa876397601554df5f6b6e4b690755ed0eb405e.zip
s3-smbd: Call all the rpc services in the right order.
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/server.c46
1 files changed, 41 insertions, 5 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 3790342f13..1b06851114 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -50,8 +50,6 @@
#include "printing/nt_printing_migrate.h"
-static_decl_rpc;
-
#ifdef WITH_DFS
extern int dcelogin_atmost_once;
#endif /* WITH_DFS */
@@ -1188,16 +1186,54 @@ extern void build_options(bool screen);
spoolss_cb.shutdown = spoolss_shutdown_cb;
spoolss_cb.private_data = smbd_server_conn->msg_ctx;
- /* Spoolss depends on a winreg pipe, so start it first. */
+ /*
+ * TODO: Create a dependency tree, so that all services are started
+ * in the right order.
+ */
+ if (!NT_STATUS_IS_OK(rpc_lsarpc_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_samr_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_netlogon_init(NULL))) {
+ exit(1);
+ }
+
if (!NT_STATUS_IS_OK(rpc_winreg_init(NULL))) {
exit(1);
}
+ if (!NT_STATUS_IS_OK(rpc_srvsvc_init(NULL))) {
+ exit(1);
+ }
if (!NT_STATUS_IS_OK(rpc_spoolss_init(&spoolss_cb))) {
exit(1);
}
-
- static_init_rpc;
+ if (!NT_STATUS_IS_OK(rpc_svcctl_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_ntsvcs_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_eventlog_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_initshutdown_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_netdfs_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_rpcecho_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_dssetup_init(NULL))) {
+ exit(1);
+ }
+ if (!NT_STATUS_IS_OK(rpc_wkssvc_init(NULL))) {
+ exit(1);
+ }
/* Publish nt printers, this requires a working winreg pipe */
reload_printers(smbd_messaging_context());