r12500: Use init functions explicitly in a few more places. 'gensec' and 'librpc'
authorJelmer Vernooij <jelmer@samba.org>
Mon, 26 Dec 2005 21:58:31 +0000 (21:58 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:47:46 +0000 (13:47 -0500)
are the only two subsystems left to convert.
(This used to be commit f6bbc72996aeee8607fc583140fd60be0e06e969)

15 files changed:
source4/build/smb_build/TODO
source4/gtk/tools/gregedit.c
source4/lib/registry/config.mk
source4/lib/registry/tools/regdiff.c
source4/lib/registry/tools/regpatch.c
source4/lib/registry/tools/regshell.c
source4/lib/registry/tools/regtree.c
source4/libcli/auth/config.mk
source4/librpc/config.mk
source4/ntptr/config.mk
source4/ntvfs/config.mk
source4/scripting/ejs/smbcalls.c
source4/smbd/process_model.mk
source4/smbd/server.c
source4/torture/local/registry.c

index 674f094c02836c53dfee350657d3fd9fa503b50f..fb58d6b29f7f5f49416074bfc2994a70f8d279e0 100644 (file)
@@ -5,7 +5,8 @@
        ldb.h belong in $INCLUDEDIR
 - add register function to smbtorture
 - init functions per shared library / binary
- - rpc_ndr
+ - gensec
+ - rpc/ndr ??
  - list not automatically generated
  - utility function for 'init mutex'
 - install shared modules
index 94cfb4123e5d33f768784a8203da0fc581133ba1..cb0d927439dcf4800584efa5dce989d28b6df5c6 100644 (file)
@@ -967,6 +967,7 @@ int main(int argc, char *argv[])
        int ret;
 
        gregedit_init_subsystems;
+       registry_init();
        lp_load();
        load_interfaces();
        setup_logging(argv[0], DEBUG_STDERR);
index f3e7abec3a4d9c96f8b6201ba9498f3e744402e4..9d949a5c1dd2a115d16c4e826daf723cabe284c1 100644 (file)
@@ -81,7 +81,6 @@ REQUIRED_SUBSYSTEMS = \
 [LIBRARY::REGISTRY]
 MAJOR_VERSION = 0
 MINOR_VERSION = 0
-INIT_FUNCTION = registry_init
 DESCRIPTION = Windows-style registry library
 RELEASE_VERSION = 1
 OBJ_FILES = \
index 7c6a5d75aeaaf0eda981d0212de6efc48d61642e..3720298df8ee62bf207ba0d637aeaa3ddf7f45c6 100644 (file)
@@ -48,6 +48,8 @@ int main(int argc, char **argv)
 
        regdiff_init_subsystems;
 
+       registry_init();
+
        pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
 
        while((opt = poptGetNextOpt(pc)) != -1) {
index 8f86d8a8f008c1bf06245641ac6dc2003faf4c04..2cc1507b3e37bd9170f8254e19ab7e0aef6e74e6 100644 (file)
@@ -46,6 +46,8 @@ int main(int argc, char **argv)
 
        regpatch_init_subsystems;
 
+       registry_init();
+
        pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
 
        while((opt = poptGetNextOpt(pc)) != -1) {
index ef5c598989b6cc9b43369513aadb39f663ba6b32..52bda8aa423d5d5b80e7a60153583fb7881b398c 100644 (file)
@@ -419,6 +419,8 @@ static char **reg_completion(const char *text, int start, int end)
 
        regshell_init_subsystems;
 
+       registry_init();
+
        pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
        
        while((opt = poptGetNextOpt(pc)) != -1) {
index 8856c4d61c549ddc4567207803d9d6749760407c..01e4f92f4a6d2e81c6c12ee4a81e0d468294306c 100644 (file)
@@ -101,6 +101,8 @@ int main(int argc, char **argv)
 
        regtree_init_subsystems;
 
+       registry_init();
+
        pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
        
        while((opt = poptGetNextOpt(pc)) != -1) {
index 51d16d8231199b03b6eb5b4829c2605dd00cbc45..75b4180976effa65c362b517e2a019dd46b2dbad 100644 (file)
@@ -5,6 +5,6 @@ OBJ_FILES = credentials.o \
                session.o \
                smbencrypt.o 
 REQUIRED_SUBSYSTEMS = \
-               AUTH SCHANNELDB GENSEC
+               AUTH SCHANNELDB
 # End SUBSYSTEM LIBCLI_AUTH
 #################################
index a6082716b242c568cd85fbb2c65acd5ab93c4715..1e6fcbce4acbdeb4cee61b14d01b76613dd7ce1e 100644 (file)
@@ -546,99 +546,118 @@ REQUIRED_SUBSYSTEMS = LIBNDR RPC_RAW LIBSMB NDR_MISC NDR_DCERPC NDR_SCHANNEL NDR
 # End SUBSYSTEM LIBRPC
 ################################################
 
-[SUBSYSTEM::RPC_EJS_ECHO]
+[MODULE::RPC_EJS_ECHO]
 INIT_FUNCTION = ejs_init_rpcecho
 OBJ_FILES = gen_ndr/ndr_echo_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_ECHO
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_MISC]
+[MODULE::RPC_EJS_MISC]
 INIT_FUNCTION = ejs_init_misc
 OBJ_FILES = gen_ndr/ndr_misc_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_MISC
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_SAMR]
+[MODULE::RPC_EJS_SAMR]
 INIT_FUNCTION = ejs_init_samr
 OBJ_FILES = gen_ndr/ndr_samr_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_SAMR
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_SECURITY]
+[MODULE::RPC_EJS_SECURITY]
 INIT_FUNCTION = ejs_init_security
 OBJ_FILES = gen_ndr/ndr_security_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC LIB_SECURITY_NDR
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_LSA]
+[MODULE::RPC_EJS_LSA]
 INIT_FUNCTION = ejs_init_lsarpc
 OBJ_FILES = gen_ndr/ndr_lsa_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_LSA
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_DFS]
-INIT_FUNCTION = ejs_init_dfs
+[MODULE::RPC_EJS_DFS]
+INIT_FUNCTION = ejs_init_netdfs
 OBJ_FILES = gen_ndr/ndr_dfs_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_DFS
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_DRSUAPI]
+[MODULE::RPC_EJS_DRSUAPI]
 INIT_FUNCTION = ejs_init_drsuapi
 OBJ_FILES = gen_ndr/ndr_drsuapi_ejs.o
+SUBSYSTEM = SMBCALLS
+ENABLE = NO
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_DRSUAPI
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_SPOOLSS]
+[MODULE::RPC_EJS_SPOOLSS]
 INIT_FUNCTION = ejs_init_spoolss
 OBJ_FILES = gen_ndr/ndr_spoolss_ejs.o
+SUBSYSTEM = SMBCALLS
+ENABLE = NO
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_SPOOLSS
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_WKSSVC]
+[MODULE::RPC_EJS_WKSSVC]
 INIT_FUNCTION = ejs_init_wkssvc
 OBJ_FILES = gen_ndr/ndr_wkssvc_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_WKSSVC
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_SRVSVC]
+[MODULE::RPC_EJS_SRVSVC]
 INIT_FUNCTION = ejs_init_srvsvc
 OBJ_FILES = gen_ndr/ndr_srvsvc_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_SRVSVC
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_EVENTLOG]
+[MODULE::RPC_EJS_EVENTLOG]
 INIT_FUNCTION = ejs_init_eventlog
 OBJ_FILES = gen_ndr/ndr_eventlog_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_EVENTLOG
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_WINREG]
+[MODULE::RPC_EJS_WINREG]
 INIT_FUNCTION = ejs_init_winreg
 OBJ_FILES = gen_ndr/ndr_winreg_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_WINREG
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_INITSHUTDOWN]
+[MODULE::RPC_EJS_INITSHUTDOWN]
 INIT_FUNCTION = ejs_init_initshutdown
 OBJ_FILES = gen_ndr/ndr_initshutdown_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_INITSHUTDOWN
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_NETLOGON]
+[MODULE::RPC_EJS_NETLOGON]
 INIT_FUNCTION = ejs_init_netlogon
 OBJ_FILES = gen_ndr/ndr_netlogon_ejs.o
+SUBSYSTEM = SMBCALLS
+ENABLE = NO
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_NETLOGON
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_SVCCTL]
+[MODULE::RPC_EJS_SVCCTL]
 INIT_FUNCTION = ejs_init_svcctl
 OBJ_FILES = gen_ndr/ndr_svcctl_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_SVCCTL
 NOPROTO = YES
 
-[SUBSYSTEM::RPC_EJS_IRPC]
+[MODULE::RPC_EJS_IRPC]
 INIT_FUNCTION = ejs_init_irpc
 OBJ_FILES = gen_ndr/ndr_irpc_ejs.o
+SUBSYSTEM = SMBCALLS
 REQUIRED_SUBSYSTEMS = LIBRPC NDR_IRPC
 NOPROTO = YES
 
index dace20704a4b8fbb2a8601cd5c5138f58d76eeed..14124e12fe9d8c28a699523de14a6f0122cadaeb 100644 (file)
@@ -15,7 +15,6 @@ REQUIRED_SUBSYSTEMS = \
 ################################################
 # Start SUBSYSTEM NTPTR
 [SUBSYSTEM::NTPTR]
-INIT_FUNCTION = ntptr_init
 OBJ_FILES = \
                ntptr_base.o \
                ntptr_interface.o
index 1c37a608bfb8b2691d861343a9efd99cadd0c229..bc39d8215682e17a3492aeb276ef8802e09bdacd 100644 (file)
@@ -76,7 +76,6 @@ OBJ_FILES = \
 PUBLIC_HEADERS = ntvfs.h
 MAJOR_VERSION = 0
 MINOR_VERSION = 0
-INIT_FUNCTION = ntvfs_init
 DESCRIPTION = Virtual File System with NTFS semantics
 RELEASE_VERSION = 1
 OBJ_FILES = \
index 3e5035b2728c69f35e2c24aa860dbddcf4dcc64c..ee999402a52899087b2449d0e8ab000f537602c4 100644 (file)
@@ -24,6 +24,7 @@
 #include "includes.h"
 #include "lib/appweb/ejs/ejs.h"
 #include "scripting/ejs/smbcalls.h"
+#include "smb_build.h"
 
 /*
   return the type of a variable
@@ -116,6 +117,9 @@ static int ejs_libinclude(int eid, int argc, char **argv)
 */
 void smb_setup_ejs_functions(void)
 {
+       init_module_fn static_init[] = STATIC_SMBCALLS_MODULES;
+       init_module_fn *shared_init;
+
        smb_setup_ejs_config();
        smb_setup_ejs_ldb();
        smb_setup_ejs_nbt();
@@ -131,8 +135,16 @@ void smb_setup_ejs_functions(void)
        smb_setup_ejs_samba3();
        smb_setup_ejs_param();
        smb_setup_ejs_datablob();
+       
        ejsnet_setup();
 
+       shared_init = load_samba_modules(NULL, "ejs");
+       
+       run_init_functions(static_init);
+       run_init_functions(shared_init);
+
+       talloc_free(shared_init);
+
        ejsDefineCFunction(-1, "typeof", ejs_typeof, NULL, MPR_VAR_SCRIPT_HANDLE);
        ejsDefineStringCFunction(-1, "libinclude", ejs_libinclude, NULL, MPR_VAR_SCRIPT_HANDLE);
 }
index 7028845475af3baca3b2b1563e7c4fc5cc13d2d5..b8f960215afd268e5ebceee8acd8e8559db62f8d 100644 (file)
@@ -34,7 +34,6 @@ REQUIRED_SUBSYSTEMS = EXT_LIB_PTHREAD
 ################################################
 # Start SUBSYSTEM PROCESS_MODEL
 [SUBSYSTEM::PROCESS_MODEL]
-INIT_FUNCTION = process_model_init
 OBJ_FILES = \
                process_model.o
 #
index 52221b096b0456ea9236c8cd0ede77e16becd71a..9fa7cad0c7f309805d55649fb5c535331699ab78 100644 (file)
@@ -217,6 +217,17 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
 
        smbd_init_subsystems;
 
+       registry_init(); /* FIXME: maybe run this in the initialization function 
+                                               of the winreg RPC server instead? */
+
+       ntptr_init();   /* FIXME: maybe run this in the initialization function 
+                                               of the spoolss RPC server instead? */
+
+       ntvfs_init();   /* FIXME: maybe run this in the initialization functions 
+                                               of the SMB[,2] server instead? */
+
+       process_model_init(); 
+
        shared_init = load_samba_modules(NULL, "service");
 
        run_init_functions(static_init);
index e2990bcc2e251633de9df857af2720b04eed5eac..5e7f2b0f5ff55bd53d5fb003702fc51c0cc52583 100644 (file)
@@ -85,6 +85,8 @@ BOOL torture_registry(void)
        BOOL ret = True;
        TALLOC_CTX *mem_ctx = talloc_init("torture_registry");
 
+       registry_init();
+
        ret &= test_hive(mem_ctx, "nt4", "TEST.DAT");
        ret &= test_hive(mem_ctx, "ldb", "test.ldb");
        ret &= test_hive(mem_ctx, "gconf", ".");