summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/auth/auth.c5
-rw-r--r--source4/auth/gensec/gensec.c6
-rw-r--r--source4/build/smb_build/header.pm11
-rw-r--r--source4/cldap_server/netlogon.c2
-rw-r--r--source4/lib/events/events.c3
-rw-r--r--source4/lib/ldb/common/ldb_modules.c12
-rw-r--r--source4/lib/ldb/include/ldb_private.h6
-rw-r--r--source4/ntptr/ntptr_base.c1
-rw-r--r--source4/ntvfs/ntvfs_base.c10
-rw-r--r--source4/ntvfs/sysdep/sys_lease.c1
-rw-r--r--source4/ntvfs/sysdep/sys_notify.c1
-rw-r--r--source4/param/share.c2
-rw-r--r--source4/rpc_server/service_rpc.c12
-rw-r--r--source4/scripting/ejs/smbcalls.c26
-rw-r--r--source4/smbd/process_model.c3
-rw-r--r--source4/smbd/server.c12
-rw-r--r--source4/torture/torture.c12
17 files changed, 108 insertions, 17 deletions
diff --git a/source4/auth/auth.c b/source4/auth/auth.c
index af3796a70d..6c86cf2d7c 100644
--- a/source4/auth/auth.c
+++ b/source4/auth/auth.c
@@ -516,6 +516,11 @@ const struct auth_critical_sizes *auth_interface_version(void)
_PUBLIC_ NTSTATUS auth_init(void)
{
static bool initialized = false;
+ extern NTSTATUS auth_developer_init(void);
+ extern NTSTATUS auth_winbind_init(void);
+ extern NTSTATUS auth_anonymous_init(void);
+ extern NTSTATUS auth_unix_init(void);
+ extern NTSTATUS auth_sam_init(void);
init_module_fn static_init[] = { STATIC_auth_MODULES };
diff --git a/source4/auth/gensec/gensec.c b/source4/auth/gensec/gensec.c
index 59c19b96ab..59ad15740e 100644
--- a/source4/auth/gensec/gensec.c
+++ b/source4/auth/gensec/gensec.c
@@ -1268,6 +1268,12 @@ static int sort_gensec(struct gensec_security_ops **gs1, struct gensec_security_
_PUBLIC_ NTSTATUS gensec_init(struct loadparm_context *lp_ctx)
{
static bool initialized = false;
+ extern NTSTATUS gensec_sasl_init(void);
+ extern NTSTATUS gensec_krb5_init(void);
+ extern NTSTATUS gensec_schannel_init(void);
+ extern NTSTATUS gensec_spnego_init(void);
+ extern NTSTATUS gensec_gssapi_init(void);
+ extern NTSTATUS gensec_ntlmssp_init(void);
init_module_fn static_init[] = { STATIC_gensec_MODULES };
init_module_fn *shared_init;
diff --git a/source4/build/smb_build/header.pm b/source4/build/smb_build/header.pm
index c2bdbaf4c8..ffac5e2601 100644
--- a/source4/build/smb_build/header.pm
+++ b/source4/build/smb_build/header.pm
@@ -42,17 +42,6 @@ sub _prepare_build_h($)
$DEFINE->{VAL} = "\\\n";
foreach (@{$key->{INIT_FUNCTIONS}}) {
$DEFINE->{VAL} .= "\t$_, \\\n";
- unless (/{/) {
- my $fn = $key->{INIT_FUNCTION_TYPE};
- my $n = $_;
- if ($fn =~ /\(\*\)/) {
- $fn =~ s/\(\*\)/$n/;
- $output .= "$fn;\n";
- } else {
- $n =~ s/\&//;
- $output .= "$fn $n;\n";
- }
- }
}
$DEFINE->{VAL} .= "\t$key->{INIT_FUNCTION_SENTINEL} \n";
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c
index 32a71e43af..a524a6f8bd 100644
--- a/source4/cldap_server/netlogon.c
+++ b/source4/cldap_server/netlogon.c
@@ -20,7 +20,6 @@
*/
#include "includes.h"
-#include "libcli/ldap/ldap_ndr.h"
#include "lib/ldb/include/ldb.h"
#include "lib/ldb/include/ldb_errors.h"
#include "lib/events/events.h"
@@ -28,6 +27,7 @@
#include "smbd/service_task.h"
#include "cldap_server/cldap_server.h"
#include "librpc/gen_ndr/ndr_misc.h"
+#include "libcli/ldap/ldap_ndr.h"
#include "dsdb/samdb/samdb.h"
#include "auth/auth.h"
#include "ldb_wrap.h"
diff --git a/source4/lib/events/events.c b/source4/lib/events/events.c
index 555a5092cc..5d43a91161 100644
--- a/source4/lib/events/events.c
+++ b/source4/lib/events/events.c
@@ -102,6 +102,9 @@ void event_set_default_backend(const char *backend)
static void event_backend_init(void)
{
#if _SAMBA_BUILD_
+ NTSTATUS s4_events_standard_init(void);
+ NTSTATUS s4_events_select_init(void);
+ NTSTATUS s4_events_epoll_init(void);
init_module_fn static_init[] = { STATIC_LIBEVENTS_MODULES };
if (event_backends) return;
run_init_functions(static_init);
diff --git a/source4/lib/ldb/common/ldb_modules.c b/source4/lib/ldb/common/ldb_modules.c
index 34e0afbf93..eece9af5f7 100644
--- a/source4/lib/ldb/common/ldb_modules.c
+++ b/source4/lib/ldb/common/ldb_modules.c
@@ -126,14 +126,16 @@ static struct ops_list_entry {
struct ops_list_entry *next;
} *registered_modules = NULL;
+#define LDB_MODULE(name) (&ldb_ ## name ## _module_ops)
+
#ifndef STATIC_LIBLDB_MODULES
#define STATIC_LIBLDB_MODULES \
- &ldb_operational_module_ops, \
- &ldb_rdn_name_module_ops, \
- &ldb_paged_results_module_ops, \
- &ldb_server_sort_module_ops, \
- &ldb_asq_module_ops, \
+ LDB_MODULE(operational), \
+ LDB_MODULE(rdn_name), \
+ LDB_MODULE(paged_results), \
+ LDB_MODULE(server_sort), \
+ LDB_MODULE(asq), \
NULL
#endif
diff --git a/source4/lib/ldb/include/ldb_private.h b/source4/lib/ldb/include/ldb_private.h
index 0ffba9d99b..ea8533bc38 100644
--- a/source4/lib/ldb/include/ldb_private.h
+++ b/source4/lib/ldb/include/ldb_private.h
@@ -188,8 +188,14 @@ extern const struct ldb_module_ops ldb_asq_module_ops;
extern const struct ldb_module_ops ldb_server_sort_module_ops;
extern const struct ldb_module_ops ldb_ldap_module_ops;
extern const struct ldb_module_ops ldb_ildap_module_ops;
+extern const struct ldb_module_ops ldb_paged_searches_module_ops;
extern const struct ldb_module_ops ldb_tdb_module_ops;
+extern const struct ldb_module_ops ldb_skel_module_ops;
+extern const struct ldb_module_ops ldb_subtree_rename_module_ops;
+extern const struct ldb_module_ops ldb_subtree_delete_module_ops;
extern const struct ldb_module_ops ldb_sqlite3_module_ops;
+extern const struct ldb_module_ops ldb_wins_ldb_module_ops;
+extern const struct ldb_module_ops ldb_ranged_results_module_ops;
extern const struct ldb_backend_ops ldb_tdb_backend_ops;
extern const struct ldb_backend_ops ldb_sqlite3_backend_ops;
diff --git a/source4/ntptr/ntptr_base.c b/source4/ntptr/ntptr_base.c
index 26e192d64b..0000337cb0 100644
--- a/source4/ntptr/ntptr_base.c
+++ b/source4/ntptr/ntptr_base.c
@@ -71,6 +71,7 @@ NTSTATUS ntptr_register(const void *_ops)
NTSTATUS ntptr_init(struct loadparm_context *lp_ctx)
{
+ extern NTSTATUS ntptr_simple_ldb_init(void);
init_module_fn static_init[] = { STATIC_ntptr_MODULES };
init_module_fn *shared_init = load_samba_modules(NULL, lp_ctx, "ntptr");
diff --git a/source4/ntvfs/ntvfs_base.c b/source4/ntvfs/ntvfs_base.c
index 51faa44372..8f574fa96b 100644
--- a/source4/ntvfs/ntvfs_base.c
+++ b/source4/ntvfs/ntvfs_base.c
@@ -204,6 +204,16 @@ NTSTATUS ntvfs_init_connection(TALLOC_CTX *mem_ctx, struct share_config *scfg, e
NTSTATUS ntvfs_init(struct loadparm_context *lp_ctx)
{
static bool initialized = false;
+ extern NTSTATUS ntvfs_posix_init(void);
+ extern NTSTATUS ntvfs_cifs_init(void);
+ extern NTSTATUS ntvfs_nbench_init(void);
+ extern NTSTATUS ntvfs_unixuid_init(void);
+ extern NTSTATUS ntvfs_ipc_init(void);
+ extern NTSTATUS pvfs_acl_nfs4_init(void);
+ extern NTSTATUS pvfs_acl_xattr_init(void);
+ extern NTSTATUS ntvfs_print_init(void);
+ extern NTSTATUS ntvfs_simple_init(void);
+ extern NTSTATUS ntvfs_cifs_posix_init(void);
init_module_fn static_init[] = { STATIC_ntvfs_MODULES };
init_module_fn *shared_init;
diff --git a/source4/ntvfs/sysdep/sys_lease.c b/source4/ntvfs/sysdep/sys_lease.c
index 28dd27a708..b8a165aa51 100644
--- a/source4/ntvfs/sysdep/sys_lease.c
+++ b/source4/ntvfs/sysdep/sys_lease.c
@@ -112,6 +112,7 @@ _PUBLIC_ NTSTATUS sys_lease_register(const struct sys_lease_ops *backend)
_PUBLIC_ NTSTATUS sys_lease_init(void)
{
static bool initialized = false;
+ extern NTSTATUS sys_lease_linux_init(void);
init_module_fn static_init[] = { STATIC_sys_lease_MODULES };
diff --git a/source4/ntvfs/sysdep/sys_notify.c b/source4/ntvfs/sysdep/sys_notify.c
index 84ba745f5b..eb5cc3793f 100644
--- a/source4/ntvfs/sysdep/sys_notify.c
+++ b/source4/ntvfs/sysdep/sys_notify.c
@@ -124,6 +124,7 @@ _PUBLIC_ NTSTATUS sys_notify_register(struct sys_notify_backend *backend)
_PUBLIC_ NTSTATUS sys_notify_init(void)
{
static bool initialized = false;
+ extern NTSTATUS sys_notify_inotify_init(void);
init_module_fn static_init[] = { STATIC_sys_notify_MODULES };
diff --git a/source4/param/share.c b/source4/param/share.c
index bc2999b03d..51134d8970 100644
--- a/source4/param/share.c
+++ b/source4/param/share.c
@@ -146,6 +146,8 @@ NTSTATUS share_get_context_by_name(TALLOC_CTX *mem_ctx, const char *backend_name
*/
NTSTATUS share_init(void)
{
+ extern NTSTATUS share_ldb_init(void);
+ extern NTSTATUS share_classic_init(void);
init_module_fn static_init[] = { STATIC_share_MODULES };
run_init_functions(static_init);
diff --git a/source4/rpc_server/service_rpc.c b/source4/rpc_server/service_rpc.c
index ddcf1c2a99..e81b8cd0aa 100644
--- a/source4/rpc_server/service_rpc.c
+++ b/source4/rpc_server/service_rpc.c
@@ -459,6 +459,18 @@ failed:
NTSTATUS server_service_rpc_init(void)
{
+ extern NTSTATUS dcerpc_server_wkssvc_init(void);
+ extern NTSTATUS dcerpc_server_drsuapi_init(void);
+ extern NTSTATUS dcerpc_server_winreg_init(void);
+ extern NTSTATUS dcerpc_server_spoolss_init(void);
+ extern NTSTATUS dcerpc_server_epmapper_init(void);
+ extern NTSTATUS dcerpc_server_srvsvc_init(void);
+ extern NTSTATUS dcerpc_server_netlogon_init(void);
+ extern NTSTATUS dcerpc_server_rpcecho_init(void);
+ extern NTSTATUS dcerpc_server_unixinfo_init(void);
+ extern NTSTATUS dcerpc_server_samr_init(void);
+ extern NTSTATUS dcerpc_server_remote_init(void);
+ extern NTSTATUS dcerpc_server_lsa_init(void);
init_module_fn static_init[] = { STATIC_dcerpc_server_MODULES };
init_module_fn *shared_init = load_samba_modules(NULL, global_loadparm, "dcerpc_server");
diff --git a/source4/scripting/ejs/smbcalls.c b/source4/scripting/ejs/smbcalls.c
index 63a80e17db..b1a2f6a37b 100644
--- a/source4/scripting/ejs/smbcalls.c
+++ b/source4/scripting/ejs/smbcalls.c
@@ -173,6 +173,32 @@ _PUBLIC_ void ejs_exception(const char *reason)
*/
void smb_setup_ejs_functions(void (*exception_handler)(const char *))
{
+ extern NTSTATUS ejs_init_security(void);
+ extern NTSTATUS ejs_init_initshutdown(void);
+ extern NTSTATUS smb_setup_ejs_reg(void);
+ extern NTSTATUS smb_setup_ejs_string(void);
+ extern NTSTATUS ejs_init_lsarpc(void);
+ extern NTSTATUS ejs_init_rpcecho(void);
+ extern NTSTATUS ejs_init_winreg(void);
+ extern NTSTATUS smb_setup_ejs_random(void);
+ extern NTSTATUS smb_setup_ejs_config(void);
+ extern NTSTATUS ejs_init_misc(void);
+ extern NTSTATUS ejs_init_netdfs(void);
+ extern NTSTATUS smb_setup_ejs_datablob(void);
+ extern NTSTATUS smb_setup_ejs_auth(void);
+ extern NTSTATUS smb_setup_ejs_nss(void);
+ extern NTSTATUS ejs_init_samr(void);
+ extern NTSTATUS ejs_init_wkssvc(void);
+ extern NTSTATUS smb_setup_ejs_system(void);
+ extern NTSTATUS smb_setup_ejs_ldb(void);
+ extern NTSTATUS ejs_init_svcctl(void);
+ extern NTSTATUS smb_setup_ejs_nbt(void);
+ extern NTSTATUS smb_setup_ejs_net(void);
+ extern NTSTATUS ejs_init_srvsvc(void);
+ extern NTSTATUS ejs_init_netlogon(void);
+ extern NTSTATUS ejs_init_drsuapi(void);
+ extern NTSTATUS ejs_init_irpc(void);
+ extern NTSTATUS ejs_init_eventlog(void);
init_module_fn static_init[] = { STATIC_smbcalls_MODULES };
init_module_fn *shared_init;
diff --git a/source4/smbd/process_model.c b/source4/smbd/process_model.c
index fcbe2d9872..2cb551a520 100644
--- a/source4/smbd/process_model.c
+++ b/source4/smbd/process_model.c
@@ -82,6 +82,9 @@ _PUBLIC_ NTSTATUS register_process_model(const void *_ops)
_PUBLIC_ NTSTATUS process_model_init(struct loadparm_context *lp_ctx)
{
+ extern NTSTATUS process_model_standard_init(void);
+ extern NTSTATUS process_model_prefork_init(void);
+ extern NTSTATUS process_model_single_init(void);
init_module_fn static_init[] = { STATIC_process_model_MODULES };
init_module_fn *shared_init = load_samba_modules(NULL, lp_ctx, "process_model");
diff --git a/source4/smbd/server.c b/source4/smbd/server.c
index d6e2fb19e4..3f6cb48013 100644
--- a/source4/smbd/server.c
+++ b/source4/smbd/server.c
@@ -187,6 +187,18 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
bool opt_interactive = false;
int opt;
poptContext pc;
+ extern NTSTATUS server_service_wrepl_init(void);
+ extern NTSTATUS server_service_kdc_init(void);
+ extern NTSTATUS server_service_ldap_init(void);
+ extern NTSTATUS server_service_web_init(void);
+ extern NTSTATUS server_service_ldap_init(void);
+ extern NTSTATUS server_service_winbind_init(void);
+ extern NTSTATUS server_service_nbtd_init(void);
+ extern NTSTATUS server_service_auth_init(void);
+ extern NTSTATUS server_service_cldapd_init(void);
+ extern NTSTATUS server_service_smb_init(void);
+ extern NTSTATUS server_service_drepl_init(void);
+ extern NTSTATUS server_service_rpc_init(void);
init_module_fn static_init[] = { STATIC_service_MODULES };
init_module_fn *shared_init;
struct event_context *event_ctx;
diff --git a/source4/torture/torture.c b/source4/torture/torture.c
index ea8efaa8c3..8a41b72249 100644
--- a/source4/torture/torture.c
+++ b/source4/torture/torture.c
@@ -48,6 +48,18 @@ bool torture_register_suite(struct torture_suite *suite)
_PUBLIC_ int torture_init(void)
{
+ extern NTSTATUS torture_base_init(void);
+ extern NTSTATUS torture_ldap_init(void);
+ extern NTSTATUS torture_local_init(void);
+ extern NTSTATUS torture_nbt_init(void);
+ extern NTSTATUS torture_nbench_init(void);
+ extern NTSTATUS torture_rap_init(void);
+ extern NTSTATUS torture_rpc_init(void);
+ extern NTSTATUS torture_smb2_init(void);
+ extern NTSTATUS torture_net_init(void);
+ extern NTSTATUS torture_raw_init(void);
+ extern NTSTATUS torture_unix_init(void);
+ extern NTSTATUS torture_winbind_init(void);
init_module_fn static_init[] = { STATIC_torture_MODULES };
init_module_fn *shared_init = load_samba_modules(NULL, cmdline_lp_ctx, "torture");