From 71db46ea665606384f2be1be708c74c97c9adfb2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 6 Nov 2004 23:23:15 +0000 Subject: r3586: Fix some of the issues with the module init functions. Both subsystems and modules can now have init functions, which can be specified in .mk files (INIT_FUNCTION = ...) The build system will define : - SUBSYSTEM_init_static_modules that calls the init functions of all statically compiled modules. Failing to load will generate an error which is not fatal - BINARY_init_subsystems that calls the init functions (if defined) for the subsystems the binary depends on This removes the hack with the "static bool Initialised = " and the "lazy_init" functions (This used to be commit 7a8244761bfdfdfb48f8264d76951ebdfbf7bd8a) --- source4/utils/getntacl.c | 2 ++ source4/utils/ndrdump.c | 2 ++ source4/utils/net/net.c | 1 + source4/utils/ntlm_auth.c | 2 ++ source4/utils/setntacl.c | 2 ++ source4/utils/setnttoken.c | 2 ++ 6 files changed, 11 insertions(+) (limited to 'source4/utils') diff --git a/source4/utils/getntacl.c b/source4/utils/getntacl.c index 6045e72013..034224c66d 100644 --- a/source4/utils/getntacl.c +++ b/source4/utils/getntacl.c @@ -99,6 +99,8 @@ int main(int argc, char **argv) struct ndr_pull *ndr; NTSTATUS result; + static_init_getntacl; + mem_ctx = talloc_init("getntacl"); /* Fetch ACL data */ diff --git a/source4/utils/ndrdump.c b/source4/utils/ndrdump.c index 1edf8eda6c..826f0c6c6e 100644 --- a/source4/utils/ndrdump.c +++ b/source4/utils/ndrdump.c @@ -109,6 +109,8 @@ static void show_functions(const struct dcerpc_interface_table *p) POPT_TABLEEND }; + ndrdump_init_subsystems; + DEBUGLEVEL = 10; setup_logging("ndrdump", DEBUG_STDOUT); diff --git a/source4/utils/net/net.c b/source4/utils/net/net.c index 380afd6120..dcd663d3fd 100644 --- a/source4/utils/net/net.c +++ b/source4/utils/net/net.c @@ -232,5 +232,6 @@ static int binary_net(int argc, const char **argv) int main(int argc, const char **argv) { + net_init_subsystems; return binary_net(argc, argv); } diff --git a/source4/utils/ntlm_auth.c b/source4/utils/ntlm_auth.c index 8d7f750af6..5cc02ffbb2 100644 --- a/source4/utils/ntlm_auth.c +++ b/source4/utils/ntlm_auth.c @@ -861,6 +861,8 @@ enum { POPT_TABLEEND }; + ntlm_auth_init_subsystems; + /* Samba client initialisation */ setup_logging("ntlm_auth", DEBUG_STDERR); diff --git a/source4/utils/setntacl.c b/source4/utils/setntacl.c index 3565da2a79..cd9f262e12 100644 --- a/source4/utils/setntacl.c +++ b/source4/utils/setntacl.c @@ -61,6 +61,8 @@ static void setntacl(char *filename, struct security_descriptor *sd) TALLOC_CTX *mem_ctx; struct security_acl *acl; + static_init_ntacl; + setup_logging("setntacl", DEBUG_STDOUT); mem_ctx = talloc_init("setntacl"); diff --git a/source4/utils/setnttoken.c b/source4/utils/setnttoken.c index 06544d0bc7..ccdd7a5578 100644 --- a/source4/utils/setnttoken.c +++ b/source4/utils/setnttoken.c @@ -41,6 +41,8 @@ int main(int argc, char **argv) NTSTATUS status; TALLOC_CTX *mem_ctx; + static_init_setnttoken; + setup_logging("setnttoken", DEBUG_STDOUT); mem_ctx = talloc_init("setnttoken"); -- cgit