[SCM] Samba Shared Repository - branch v3-6-test updated

Andreas Schneider asn at samba.org
Wed Jan 5 02:24:52 MST 2011


The branch, v3-6-test has been updated
       via  2bd7650 s3-rpcecho: Only register rpcecho in the developer build.
       via  5771748 s3-waf: Fixed the static rpc service build.
       via  6f4ec18 s3-smbd: Call the rpc service shutdown functions. (cherry picked from commit d4f5bf0c36e3d5a0a13d1a03e7c6fac956dbf954)
       via  d739564 s3-build: Remove broken RPC modules support.
       via  39a042e s3-smbd: Call all the rpc services in the right order. (cherry picked from commit 9aa876397601554df5f6b6e4b690755ed0eb405e)
      from  c5a3b64 s3:net_utils: use dcerpc_dssetup_DsRoleGetPrimaryDomainInformation()

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 2bd76502610c13ef86286d44368feed417bd345d
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Jan 4 16:53:33 2011 +0100

    s3-rpcecho: Only register rpcecho in the developer build.
    
    Autobuild-User: Andreas Schneider <asn at samba.org>
    Autobuild-Date: Tue Jan  4 18:56:38 CET 2011 on sn-devel-104
    (cherry picked from commit 8925b03b5997d9e4fff604a2417eb1f4d8958e86)

commit 5771748cd1dfcc53e4bb7860e9a2f0ad3e301a2c
Author: Andreas Schneider <asn at samba.org>
Date:   Mon Dec 20 14:29:34 2010 +0100

    s3-waf: Fixed the static rpc service build.
    
    Autobuild-User: Andreas Schneider <asn at samba.org>
    Autobuild-Date: Tue Jan  4 12:09:48 CET 2011 on sn-devel-104
    (cherry picked from commit d2e93cce88b69bdf489984f34376ca30934684ad)

commit 6f4ec180eec41cd7f6c788e474ad9f0902fa5aa8
Author: Andreas Schneider <asn at samba.org>
Date:   Mon Dec 20 11:42:17 2010 +0100

    s3-smbd: Call the rpc service shutdown functions.
    (cherry picked from commit d4f5bf0c36e3d5a0a13d1a03e7c6fac956dbf954)

commit d7395648661fe2357f64c6312f4168efed0d18b3
Author: Andreas Schneider <asn at samba.org>
Date:   Mon Dec 20 11:24:07 2010 +0100

    s3-build: Remove broken RPC modules support.
    
    With the current module support for rpc we're not able to call the init
    functions with the rpc callback structure. So init functions and
    shutdown functions aren't called. These init functions are needed to
    setup pre requirements like migrating the printer databases and register
    at the endpoint mapper. The shutdown functions cleanup memory and
    deregister from the endpoint mapper.
    (cherry picked from commit 8ece780d1b90125514a1afb3e145a413cc342b98)

commit 39a042edbe6a4e78687eef0a008f00f4f2f2a54e
Author: Andreas Schneider <asn at samba.org>
Date:   Mon Dec 20 11:00:45 2010 +0100

    s3-smbd: Call all the rpc services in the right order.
    (cherry picked from commit 9aa876397601554df5f6b6e4b690755ed0eb405e)

-----------------------------------------------------------------------

Summary of changes:
 source3/Makefile.in              |   14 ++--
 source3/configure.in             |   17 ----
 source3/m4/aclocal.m4            |    8 --
 source3/rpc_server/srv_echo_nt.c |    4 -
 source3/rpc_server/wscript_build |  185 ++++++++++++++------------------------
 source3/smbd/server.c            |   48 +++++++++-
 source3/smbd/server_exit.c       |   36 ++++++++
 source3/wscript                  |   30 ++----
 source3/wscript_build            |    4 +-
 9 files changed, 167 insertions(+), 179 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/Makefile.in b/source3/Makefile.in
index 4947916..25bbe2c 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -249,13 +249,12 @@ SCRIPTS = $(srcdir)/script/smbtar $(builddir)/script/findsmb
 VFS_MODULES = @VFS_MODULES@
 PERFCOUNT_MODULES = @PERFCOUNT_MODULES@
 PDB_MODULES = @PDB_MODULES@
-RPC_MODULES = @RPC_MODULES@
 IDMAP_MODULES = @IDMAP_MODULES@
 CHARSET_MODULES = @CHARSET_MODULES@
 AUTH_MODULES = @AUTH_MODULES@
 NSS_INFO_MODULES = @NSS_INFO_MODULES@
 GPEXT_MODULES = @GPEXT_MODULES@
-MODULES = $(VFS_MODULES) $(PDB_MODULES) $(RPC_MODULES) $(IDMAP_MODULES) \
+MODULES = $(VFS_MODULES) $(PDB_MODULES) $(IDMAP_MODULES) \
           $(CHARSET_MODULES) $(AUTH_MODULES) $(NSS_INFO_MODULES) \
 	  $(GPEXT_MODULES) $(PERFCOUNT_MODULES)
 
@@ -727,8 +726,13 @@ RPC_PIPE_OBJ = rpc_server/srv_pipe.o rpc_server/srv_pipe_hnd.o \
 
 RPC_RPCECHO_OBJ = rpc_server/srv_echo_nt.o librpc/gen_ndr/srv_echo.o
 
-RPC_SERVER_OBJ = @RPC_STATIC@ $(RPC_PIPE_OBJ) $(NPA_TSTREAM_OBJ) \
-                 $(LIBCLI_SPOOLSS_OBJ) \
+RPC_SERVER_OBJ = $(RPC_LSARPC_OBJ) $(RPC_WINREG_OBJ) $(RPC_INITSHUTDOWN_OBJ) \
+		 $(RPC_DSSETUP_OBJ) $(RPC_WKSSVC_OBJ) $(RPC_SVCCTL_OBJ) \
+		 $(RPC_NTSVCS_OBJ) $(RPC_NETLOGON_OBJ) $(RPC_NETDFS_OBJ) \
+		 $(RPC_SRVSVC_OBJ) $(RPC_SPOOLSS_OBJ) $(RPC_EVENTLOG_OBJ) \
+		 $(RPC_SAMR_OBJ) $(RPC_RPCECHO_OBJ) \
+		 $(RPC_PIPE_OBJ) $(NPA_TSTREAM_OBJ) \
+		 $(LIBCLI_SPOOLSS_OBJ) \
 		 $(LIBCLI_WINREG_OBJ) \
 		 $(LIBCLI_SRVSVC_OBJ) \
 		 $(LIBCLI_LSA_OBJ) \
@@ -3161,7 +3165,6 @@ installbin:: all installdirs
 installmodules:: modules installdirs
 	@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(VFSLIBDIR) $(VFS_MODULES)
 	@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(PDBLIBDIR) $(PDB_MODULES)
-	@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(RPCLIBDIR) $(RPC_MODULES)
 	@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(IDMAPLIBDIR) $(IDMAP_MODULES)
 	@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(NSSINFOLIBDIR) $(NSS_INFO_MODULES)
 	@$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(CHARSETLIBDIR) $(CHARSET_MODULES)
@@ -3249,7 +3252,6 @@ uninstallbin::
 uninstallmodules::
 	@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(VFSLIBDIR) $(VFS_MODULES)
 	@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(PDBLIBDIR) $(PDB_MODULES)
-	@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(RPCLIBDIR) $(RPC_MODULES)
 	@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(IDMAPLIBDIR) $(IDMAP_MODULES)
 	@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(CHARSETLIBDIR) $(CHARSET_MODULES)
 	@$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(AUTHLIBDIR) $(AUTH_MODULES)
diff --git a/source3/configure.in b/source3/configure.in
index ed99b17..ac43308 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -6745,23 +6745,6 @@ SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
 SMB_MODULE(pdb_wbc_sam, passdb/pdb_wbc_sam.o, "bin/wbc_sam.$SHLIBEXT", PDB)
 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
 
-
-SMB_MODULE(rpc_lsarpc, \$(RPC_LSARPC_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_winreg, \$(RPC_WINREG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_initshutdown, \$(RPC_INITSHUTDOWN_OBJ), "bin/librpc_initshutdown.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_dssetup, \$(RPC_DSSETUP_OBJ), "bin/librpc_dssetup.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_wkssvc, \$(RPC_WKSSVC_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_svcctl, \$(RPC_SVCCTL_OBJ), "bin/librpc_svcctl.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_ntsvcs, \$(RPC_NTSVCS_OBJ), "bin/librpc_ntsvcs.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_netlogon, \$(RPC_NETLOGON_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_netdfs, \$(RPC_NETDFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_srvsvc, \$(RPC_SRVSVC_OBJ), "bin/librpc_svcsvc.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_eventlog, \$(RPC_EVENTLOG_OBJ), "bin/librpc_eventlog.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
-SMB_MODULE(rpc_rpcecho, \$(RPC_RPCECHO_OBJ), "bin/librpc_rpcecho.$SHLIBEXT", RPC)
-SMB_SUBSYSTEM(RPC,smbd/process.o)
-
 SMB_MODULE(idmap_ldap, winbindd/idmap_ldap.o, "bin/ldap.$SHLIBEXT", IDMAP)
 SMB_MODULE(idmap_tdb, winbindd/idmap_tdb.o, "bin/tdb.$SHLIBEXT", IDMAP)
 SMB_MODULE(idmap_tdb2, winbindd/idmap_tdb2.o, "bin/tdb2.$SHLIBEXT", IDMAP)
diff --git a/source3/m4/aclocal.m4 b/source3/m4/aclocal.m4
index b33658f..301445f 100644
--- a/source3/m4/aclocal.m4
+++ b/source3/m4/aclocal.m4
@@ -30,14 +30,6 @@ AC_DEFUN(SMB_MODULE,
 		AC_MSG_RESULT([shared])
 		[$6]
 		string_shared_modules="$string_shared_modules $1"
-	elif test x"$DEST" = xSTATIC && test x"$4" = xRPC; then
-		[init_static_modules_]translit([$4], [A-Z], [a-z])="$[init_static_modules_]translit([$4], [A-Z], [a-z])  $1_init(NULL);"
-		[decl_static_modules_]translit([$4], [A-Z], [a-z])="$[decl_static_modules_]translit([$4], [A-Z], [a-z]) extern NTSTATUS $1_init(const struct rpc_srv_callbacks *rpc_srv_cb);"
-		string_static_modules="$string_static_modules $1"
-		$4_STATIC="$$4_STATIC $2"
-		AC_SUBST($4_STATIC)
-		[$5]
-		AC_MSG_RESULT([static])
 	elif test x"$DEST" = xSTATIC; then
 		[init_static_modules_]translit([$4], [A-Z], [a-z])="$[init_static_modules_]translit([$4], [A-Z], [a-z])  $1_init();"
 		[decl_static_modules_]translit([$4], [A-Z], [a-z])="$[decl_static_modules_]translit([$4], [A-Z], [a-z]) extern NTSTATUS $1_init(void);"
diff --git a/source3/rpc_server/srv_echo_nt.c b/source3/rpc_server/srv_echo_nt.c
index 87b2491..ef6204f 100644
--- a/source3/rpc_server/srv_echo_nt.c
+++ b/source3/rpc_server/srv_echo_nt.c
@@ -24,8 +24,6 @@
 #include "includes.h"
 #include "../librpc/gen_ndr/srv_echo.h"
 
-#ifdef DEVELOPER
-
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_RPC_SRV
 
@@ -121,5 +119,3 @@ uint16 _echo_TestDoublePointer(struct pipes_struct *p, struct echo_TestDoublePoi
 	p->rng_fault_state = True;
 	return 0;
 }
-
-#endif /* DEVELOPER */
diff --git a/source3/rpc_server/wscript_build b/source3/rpc_server/wscript_build
index 145e00e..d516d28 100644
--- a/source3/rpc_server/wscript_build
+++ b/source3/rpc_server/wscript_build
@@ -1,10 +1,11 @@
 #!/usr/bin/env python
 
-RPC_LSARPC_SRC = '''srv_lsa_nt.c'''
+RPC_LSARPC_SRC = '''srv_lsa_nt.c ../../librpc/gen_ndr/srv_lsa.c'''
 RPC_NETLOGON_SRC = '''srv_netlog_nt.c ../../librpc/gen_ndr/srv_netlogon.c'''
 RPC_SAMR_SRC = '''srv_samr_nt.c
                srv_samr_util.c
-               srv_samr_chgpasswd.c'''
+               srv_samr_chgpasswd.c
+               ../../librpc/gen_ndr/srv_samr.c'''
 RPC_INITSHUTDOWN_SRC = '''srv_initshutdown_nt.c ../../librpc/gen_ndr/srv_initshutdown.c'''
 RPC_WINREG_SRC = '''srv_winreg_nt.c ../../librpc/gen_ndr/srv_winreg.c'''
 RPC_DSSETUP_SRC = '''srv_dssetup_nt.c ../../librpc/gen_ndr/srv_dssetup.c'''
@@ -23,6 +24,18 @@ bld.SAMBA_SUBSYSTEM('rpc',
                     deps='RPC_PIPE_REGISTER',
                     vars=locals())
 
+bld.SAMBA_SUBSYSTEM('RPC_NCACN_NP',
+                    source='rpc_ncacn_np.c rpc_handles.c')
+
+bld.SAMBA_SUBSYSTEM('RPC_SERVICE',
+                    source='rpc_server.c')
+
+bld.SAMBA_SUBSYSTEM('RPC_CRYPTO',
+                    source='dcesrv_ntlmssp.c dcesrv_gssapi.c dcesrv_spnego.c')
+
+bld.SAMBA_SUBSYSTEM('RPC_PIPE_REGISTER',
+                    source='srv_pipe_register.c')
+
 bld.SAMBA_SUBSYSTEM('RPC_SAMR',
                     source=RPC_SAMR_SRC,
                     deps='PLAINTEXT_AUTH',
@@ -32,123 +45,63 @@ bld.SAMBA_SUBSYSTEM('RPC_LSARPC',
                     source=RPC_LSARPC_SRC,
                     vars=locals())
 
-bld.SAMBA_SUBSYSTEM('RPC_NCACN_NP',
-                    source='rpc_ncacn_np.c rpc_handles.c')
+bld.SAMBA_SUBSYSTEM('RPC_WINREG',
+                    source=RPC_WINREG_SRC,
+                    deps='REGFIO REG_API_REGF NDR_PERFCOUNT',
+                    vars=locals())
 
-bld.SAMBA_SUBSYSTEM('RPC_SERVICE',
-                    source='rpc_server.c')
+bld.SAMBA_SUBSYSTEM('RPC_INITSHUTDOWN',
+                    source=RPC_INITSHUTDOWN_SRC,
+                    vars=locals())
 
-bld.SAMBA_SUBSYSTEM('RPC_CRYPTO',
-                    source='dcesrv_ntlmssp.c dcesrv_gssapi.c dcesrv_spnego.c')
+bld.SAMBA_SUBSYSTEM('RPC_DSSETUP',
+                    source=RPC_DSSETUP_SRC,
+                    vars=locals())
 
-bld.SAMBA_SUBSYSTEM('RPC_PIPE_REGISTER',
-                    source='srv_pipe_register.c')
+bld.SAMBA_SUBSYSTEM('RPC_WKSSVC',
+                    source=RPC_WKSSVC_SRC,
+                    deps='LIBNET',
+                    vars=locals())
+
+bld.SAMBA_SUBSYSTEM('RPC_SVCCTL',
+                    source=RPC_SVCCTL_SRC,
+                    deps='SERVICES',
+                    vars=locals())
+
+bld.SAMBA_SUBSYSTEM('RPC_NTSVCS',
+                    source=RPC_NTSVCS_SRC,
+                    vars=locals())
+
+bld.SAMBA_SUBSYSTEM('RPC_NETLOGON',
+                    source=RPC_NETLOGON_SRC,
+                    vars=locals())
+
+bld.SAMBA_SUBSYSTEM('RPC_NETDFS',
+                    source=RPC_NETDFS_SRC,
+                    vars=locals())
+
+bld.SAMBA_SUBSYSTEM('RPC_SRVSVC',
+                    source=RPC_SRVSVC_SRC,
+                    vars=locals())
+
+bld.SAMBA_SUBSYSTEM('RPC_SPOOLSS',
+                    source=RPC_SPOOLSS_SRC,
+                    deps='cups PRINTING PRINTBACKEND RPCCLI_WINREG',
+                    vars=locals())
+
+bld.SAMBA_SUBSYSTEM('RPC_EVENTLOG',
+                    source=RPC_EVENTLOG_SRC,
+                    deps='LIBEVENTLOG',
+                    vars=locals())
+
+bld.SAMBA_SUBSYSTEM('RPC_RPCECHO',
+                    source=RPC_RPCECHO_SRC,
+                    vars=locals())
 
 bld.SAMBA_SUBSYSTEM('RPC_SERVER',
                     source='srv_pipe_hnd.c srv_pipe.c',
-                    deps='RPC_NCACN_NP RPC_SERVICE RPC_CRYPTO')
-
-bld.SAMBA_MODULE('rpc_lsarpc',
-                 subsystem='rpc',
-                 source='../../librpc/gen_ndr/srv_lsa.c',
-                 deps='RPC_LSARPC',
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_lsarpc'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_lsarpc'))
-
-bld.SAMBA_MODULE('rpc_samr',
-                 subsystem='rpc',
-                 source='../../librpc/gen_ndr/srv_samr.c',
-                 deps='RPC_SAMR',
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_samr'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_samr'))
-
-bld.SAMBA_MODULE('rpc_winreg',
-                 subsystem='rpc',
-                 source=RPC_WINREG_SRC,
-                 deps='REGFIO REG_API_REGF NDR_PERFCOUNT',
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_winreg'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_winreg'))
-
-bld.SAMBA_MODULE('rpc_initshutdown',
-                 subsystem='rpc',
-                 source=RPC_INITSHUTDOWN_SRC,
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_initshutdown'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_initshutdown'))
-
-bld.SAMBA_MODULE('rpc_dssetup',
-                 subsystem='rpc',
-                 source=RPC_DSSETUP_SRC,
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_dssetup'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_dssetup'))
-
-bld.SAMBA_MODULE('rpc_wkssvc',
-                 subsystem='rpc',
-                 source=RPC_WKSSVC_SRC,
-                 deps='LIBNET',
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_wkssvc'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_wkssvc'))
-
-bld.SAMBA_MODULE('rpc_svcctl',
-                 subsystem='rpc',
-                 source=RPC_SVCCTL_SRC,
-                 deps='SERVICES',
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_svcctl'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_svcctl'))
-
-bld.SAMBA_MODULE('rpc_ntsvcs',
-                 subsystem='rpc',
-                 source=RPC_NTSVCS_SRC,
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_ntsvcs'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_ntsvcs'))
-
-bld.SAMBA_MODULE('rpc_netlogon',
-                 subsystem='rpc',
-                 source=RPC_NETLOGON_SRC,
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_netlogon'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_netlogon'))
-
-bld.SAMBA_MODULE('rpc_netdfs',
-                 subsystem='rpc',
-                 source=RPC_NETDFS_SRC,
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_netdfs'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_netdfs'))
-
-bld.SAMBA_MODULE('rpc_srvsvc',
-                 subsystem='rpc',
-                 source=RPC_SRVSVC_SRC,
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_srvsvc'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_srvsvc'))
-
-bld.SAMBA_MODULE('rpc_spoolss',
-                 subsystem='rpc',
-                 source=RPC_SPOOLSS_SRC,
-                 deps='cups PRINTING PRINTBACKEND RPCCLI_WINREG',
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_spoolss'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_spoolss'))
-
-bld.SAMBA_MODULE('rpc_eventlog',
-                 subsystem='rpc',
-                 source=RPC_EVENTLOG_SRC,
-                 deps='LIBEVENTLOG',
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_eventlog'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_eventlog'))
-
-bld.SAMBA_MODULE('rpc_rpcecho',
-                 subsystem='rpc',
-                 source=RPC_RPCECHO_SRC,
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('rpc_rpcecho'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('rpc_rpcecho'))
+                    deps='''RPC_NCACN_NP RPC_SERVICE RPC_CRYPTO
+                          RPC_SAMR RPC_LSARPC RPC_WINREG RPC_INITSHUTDOWN
+                          RPC_DSSETUP RPC_WKSSVC RPC_SVCCTL RPC_NTSVCS
+                          RPC_NETLOGON RPC_NETDFS RPC_SRVSVC RPC_SPOOLSS
+                          RPC_EVENTLOG RPC_RPCECHO RPC_SERVER''')
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 3790342..1b9e793 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,56 @@ 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);
+	}
+#ifdef DEVELOPER
+	if (!NT_STATUS_IS_OK(rpc_rpcecho_init(NULL))) {
+		exit(1);
+	}
+#endif
+	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());
diff --git a/source3/smbd/server_exit.c b/source3/smbd/server_exit.c
index 57fec8d..ca906fa 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,27 @@ static void exit_server_common(enum server_exit_reason how,
 	}
 #endif
 
+	if (am_parent) {
+		rpc_wkssvc_shutdown();
+		rpc_dssetup_shutdown();
+#ifdef DEVELOPER
+		rpc_rpcecho_shutdown();
+#endif
+		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();
 
diff --git a/source3/wscript b/source3/wscript
index e7ce72f..9cf8dc4 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -346,10 +346,8 @@ return acl_get_perm_np(permset_d, perm);
                     headers='sys/types.h sys/statfs.h',
                     execute=True)
 
-    default_static_modules=TO_LIST('''pdb_smbpasswd pdb_tdbsam pdb_wbc_sam pdb_ldap rpc_lsarpc rpc_samr
-                                      rpc_winreg rpc_initshutdown rpc_dssetup rpc_wkssvc rpc_svcctl
-                                      rpc_ntsvcs rpc_netlogon rpc_netdfs rpc_srvsvc rpc_spoolss
-                                      rpc_eventlog auth_sam auth_unix auth_winbind auth_wbc auth_server
+    default_static_modules=TO_LIST('''pdb_smbpasswd pdb_tdbsam pdb_wbc_sam pdb_ldap
+                                      auth_sam auth_unix auth_winbind auth_wbc auth_server
                                       auth_domain auth_builtin auth_netlogond vfs_default
                                       nss_info_template idmap_ldap idmap_tdb idmap_passdb
                                       idmap_nss''')
@@ -364,7 +362,7 @@ return acl_get_perm_np(permset_d, perm);
                                       vfs_time_audit idmap_autorid''')
 
     if Options.options.developer:
-        default_static_modules.extend(TO_LIST('rpc_rpcecho pdb_ads'))
+        default_static_modules.extend(TO_LIST('pdb_ads'))
         default_shared_modules.extend(TO_LIST('charset_weird perfcount_test'))
 
     if Options.options.with_acl_support and conf.CONFIG_SET('HAVE_POSIX_ACLS'):
@@ -399,7 +397,7 @@ return acl_get_perm_np(permset_d, perm);
     static_list = {}
     shared_list = {}
 
-    prefixes = ['vfs', 'pdb', 'rpc', 'auth', 'nss_info', 'charset', 'idmap', 'gpext', 'perfcount']
+    prefixes = ['vfs', 'pdb', 'auth', 'nss_info', 'charset', 'idmap', 'gpext', 'perfcount']
     conf.env['MODULE_PREFIXES'] = prefixes
     for p in prefixes:
         for m in final_static_modules:
@@ -420,20 +418,12 @@ return acl_get_perm_np(permset_d, perm);
         conf.env[shared_env] = []
         if p in static_list:
             decl_list=""
-            if p == "rpc":
-                for entry in static_list[p]:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list