lib: modules: Change XXX_init interface from XXX_init(void) to XXX_init(TALLOC_CTX *)
authorJeremy Allison <jra@samba.org>
Thu, 20 Apr 2017 19:24:43 +0000 (12:24 -0700)
committerJeremy Allison <jra@samba.org>
Fri, 21 Apr 2017 23:17:00 +0000 (01:17 +0200)
Not currently used - no logic changes inside.

This will make it possible to pass down a long-lived talloc
context from the loading function for modules to use instead
of having them internally all use talloc_autofree_context()
which is a hidden global.

Updated all known module interface numbers, and added a
WHATSNEW.

Signed-off-by: Jeremy Allison <jra@samba.org>
Signed-off-by: Ralph Böhme <slow@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Sat Apr 22 01:17:00 CEST 2017 on sn-devel-144

205 files changed:
WHATSNEW.txt
auth/gensec/external.c
auth/gensec/gensec.h
auth/gensec/gensec_start.c
auth/gensec/ncalrpc.c
auth/gensec/schannel.c
auth/gensec/spnego.c
auth/ntlmssp/ntlmssp.c
auth/ntlmssp/ntlmssp.h
buildtools/wafsamba/samba_patterns.py
docs-xml/Samba3-Developers-Guide/modules.xml
examples/VFS/shadow_copy_test.c
examples/VFS/skel_opaque.c
examples/VFS/skel_transparent.c
examples/auth/auth_skel.c
examples/pdb/test.c
file_server/file_server.c
lib/util/modules.c
lib/util/samba_modules.h
libcli/echo/tests/echo.c
pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm
source3/auth/auth.c
source3/auth/auth_builtin.c
source3/auth/auth_domain.c
source3/auth/auth_sam.c
source3/auth/auth_samba4.c
source3/auth/auth_script.c
source3/auth/auth_unix.c
source3/auth/auth_winbind.c
source3/auth/proto.h
source3/include/auth.h
source3/include/idmap.h
source3/include/nss_info.h
source3/include/passdb.h
source3/include/smb_perfcount.h
source3/include/vfs.h
source3/modules/perfcount_test.c
source3/modules/vfs_acl_tdb.c
source3/modules/vfs_acl_xattr.c
source3/modules/vfs_afsacl.c
source3/modules/vfs_aio_fork.c
source3/modules/vfs_aio_linux.c
source3/modules/vfs_aio_pthread.c
source3/modules/vfs_aixacl.c
source3/modules/vfs_aixacl2.c
source3/modules/vfs_audit.c
source3/modules/vfs_btrfs.c
source3/modules/vfs_cacheprime.c
source3/modules/vfs_cap.c
source3/modules/vfs_catia.c
source3/modules/vfs_ceph.c
source3/modules/vfs_commit.c
source3/modules/vfs_crossrename.c
source3/modules/vfs_default.c
source3/modules/vfs_default_quota.c
source3/modules/vfs_dfs_samba4.c
source3/modules/vfs_dirsort.c
source3/modules/vfs_expand_msdfs.c
source3/modules/vfs_extd_audit.c
source3/modules/vfs_fake_acls.c
source3/modules/vfs_fake_dfq.c
source3/modules/vfs_fake_perms.c
source3/modules/vfs_fileid.c
source3/modules/vfs_fruit.c
source3/modules/vfs_full_audit.c
source3/modules/vfs_glusterfs.c
source3/modules/vfs_gpfs.c
source3/modules/vfs_hpuxacl.c
source3/modules/vfs_linux_xfs_sgid.c
source3/modules/vfs_media_harmony.c
source3/modules/vfs_netatalk.c
source3/modules/vfs_nfs4acl_xattr.c
source3/modules/vfs_offline.c
source3/modules/vfs_posix_eadb.c
source3/modules/vfs_posixacl.c
source3/modules/vfs_posixacl.h
source3/modules/vfs_prealloc.c
source3/modules/vfs_preopen.c
source3/modules/vfs_readahead.c
source3/modules/vfs_readonly.c
source3/modules/vfs_recycle.c
source3/modules/vfs_shadow_copy.c
source3/modules/vfs_shadow_copy2.c
source3/modules/vfs_shell_snap.c
source3/modules/vfs_snapper.c
source3/modules/vfs_solarisacl.c
source3/modules/vfs_streams_depot.c
source3/modules/vfs_streams_xattr.c
source3/modules/vfs_syncops.c
source3/modules/vfs_time_audit.c
source3/modules/vfs_tru64acl.c
source3/modules/vfs_tsmsm.c
source3/modules/vfs_unityed_media.c
source3/modules/vfs_vxfs.c
source3/modules/vfs_worm.c
source3/modules/vfs_xattr_tdb.c
source3/modules/vfs_zfsacl.c
source3/passdb/pdb_interface.c
source3/passdb/pdb_ldap.c
source3/passdb/pdb_ldap.h
source3/passdb/pdb_nds.c
source3/passdb/pdb_nds.h
source3/passdb/pdb_samba_dsdb.c
source3/passdb/pdb_smbpasswd.c
source3/passdb/pdb_smbpasswd.h
source3/passdb/pdb_tdb.c
source3/passdb/pdb_tdb.h
source3/rpc_server/mdssvc/srv_mdssvc_nt.c
source3/rpc_server/rpc_service_setup.c
source3/smbd/vfs.c
source3/winbindd/idmap.c
source3/winbindd/idmap_ad.c
source3/winbindd/idmap_ad_nss.c
source3/winbindd/idmap_autorid.c
source3/winbindd/idmap_hash/idmap_hash.c
source3/winbindd/idmap_ldap.c
source3/winbindd/idmap_nss.c
source3/winbindd/idmap_passdb.c
source3/winbindd/idmap_proto.h
source3/winbindd/idmap_rfc2307.c
source3/winbindd/idmap_rid.c
source3/winbindd/idmap_script.c
source3/winbindd/idmap_tdb.c
source3/winbindd/idmap_tdb2.c
source3/winbindd/nss_info.c
source3/winbindd/nss_info_template.c
source3/wscript
source4/auth/auth.h
source4/auth/gensec/gensec_gssapi.c
source4/auth/gensec/gensec_krb5.c
source4/auth/ntlm/auth.c
source4/auth/ntlm/auth_anonymous.c
source4/auth/ntlm/auth_developer.c
source4/auth/ntlm/auth_sam.c
source4/auth/ntlm/auth_server_service.c
source4/auth/ntlm/auth_unix.c
source4/auth/ntlm/auth_winbind.c
source4/cldap_server/cldap_server.c
source4/dns_server/dns_server.c
source4/dsdb/dns/dns_update.c
source4/dsdb/kcc/kcc_service.c
source4/dsdb/repl/drepl_service.c
source4/echo_server/echo_server.c
source4/kdc/kdc-heimdal.c
source4/ldap_server/ldap_server.c
source4/lib/com/classes/simple.c
source4/lib/http/gensec/basic.c
source4/lib/http/gensec/ntlm.c
source4/nbt_server/nbt_server.c
source4/ntp_signd/ntp_signd.c
source4/ntvfs/cifs/vfs_cifs.c
source4/ntvfs/cifs_posix_cli/vfs_cifs_posix.c
source4/ntvfs/ipc/vfs_ipc.c
source4/ntvfs/nbench/vfs_nbench.c
source4/ntvfs/ntvfs_base.c
source4/ntvfs/posix/pvfs_acl.c
source4/ntvfs/posix/pvfs_acl_nfs4.c
source4/ntvfs/posix/pvfs_acl_xattr.c
source4/ntvfs/posix/vfs_posix.c
source4/ntvfs/print/vfs_print.c
source4/ntvfs/simple/vfs_simple.c
source4/ntvfs/smb2/vfs_smb2.c
source4/ntvfs/sysdep/inotify.c
source4/ntvfs/sysdep/sys_lease.c
source4/ntvfs/sysdep/sys_lease_linux.c
source4/ntvfs/sysdep/sys_notify.c
source4/ntvfs/unixuid/vfs_unixuid.c
source4/param/share.c
source4/param/share_classic.c
source4/param/share_ldb.c
source4/rpc_server/dcerpc_server.c
source4/rpc_server/lsa/dcesrv_lsa.c
source4/rpc_server/service_rpc.c
source4/smb_server/service_smb.c
source4/smbd/process_model.c
source4/smbd/process_single.c
source4/smbd/process_standard.c
source4/smbd/server.c
source4/torture/basic/base.c
source4/torture/dfs/domaindfs.c
source4/torture/dns/dlz_bind9.c
source4/torture/dns/internal_dns.c
source4/torture/drs/drs_init.c
source4/torture/krb5/kdc-heimdal.c
source4/torture/krb5/kdc-mit.c
source4/torture/ldap/common.c
source4/torture/libnet/libnet.c
source4/torture/libnetapi/libnetapi.c
source4/torture/libsmbclient/libsmbclient.c
source4/torture/local/local.c
source4/torture/nbench/nbench.c
source4/torture/nbt/nbt.c
source4/torture/ntp/ntp_signd.c
source4/torture/rap/rap.c
source4/torture/raw/raw.c
source4/torture/rpc/rpc.c
source4/torture/smb2/smb2.c
source4/torture/smbtorture.c
source4/torture/torture.c
source4/torture/unix/unix.c
source4/torture/vfs/vfs.c
source4/torture/winbind/winbind.c
source4/web_server/web_server.c
source4/winbind/winbindd.c
source4/wrepl_server/wrepl_server.c

index 5e6d159..d9324e7 100644 (file)
@@ -60,6 +60,25 @@ was using this call please raise the issue on
 samba-technical@lists.samba.org in order to design a supported
 way of obtaining the same functionality.
 
+Change of loadable module interface
+-----------------------------------
+
+The _init function of all loadable modules in Samba has changed
+from:
+
+NTSTATUS _init(void);
+
+to:
+
+NTSTATUS _init(TALLOC_CTX *);
+
+This allows a program loading a module to pass in a long-lived
+talloc context (which must be guaranteed to be alive for the
+lifetime of the module). This allows modules to avoid use of
+the talloc_autofree_context() (which is inherently thread-unsafe)
+and still be valgrind-clean on exit. Modules that don't need to
+free long-lived data on exist should use the NULL talloc context.
+
 KNOWN ISSUES
 ============
 
index 9c17888..92295bc 100644 (file)
@@ -32,7 +32,7 @@
  * layer is already mutually authenticated.
  */
 
-NTSTATUS gensec_external_init(void);
+NTSTATUS gensec_external_init(TALLOC_CTX *ctx);
 
 static NTSTATUS gensec_external_start(struct gensec_security *gensec_security)
 {
@@ -111,7 +111,7 @@ static const struct gensec_security_ops gensec_external_ops = {
 };
 
 
-NTSTATUS gensec_external_init(void)
+NTSTATUS gensec_external_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 6764ee5..3924a7c 100644 (file)
@@ -107,7 +107,8 @@ struct gensec_settings {
 struct gensec_security_ops;
 struct gensec_security_ops_wrapper;
 
-#define GENSEC_INTERFACE_VERSION 0
+/* Change to 1, loadable modules now take a TALLOC_CTX * init() parameter. */
+#define GENSEC_INTERFACE_VERSION 1
 
 /* this structure is used by backends to determine the size of some critical types */
 struct gensec_critical_sizes;
index 31a5559..83a86cf 100644 (file)
@@ -956,7 +956,7 @@ bool gensec_setting_bool(struct gensec_settings *settings, const char *mechanism
 _PUBLIC_ NTSTATUS gensec_init(void)
 {
        static bool initialized = false;
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
 #ifdef STATIC_gensec_MODULES
        STATIC_gensec_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_gensec_MODULES };
@@ -970,8 +970,8 @@ _PUBLIC_ NTSTATUS gensec_init(void)
 
        shared_init = load_samba_modules(NULL, "gensec");
 
-       run_init_functions(static_init);
-       run_init_functions(shared_init);
+       run_init_functions(NULL, static_init);
+       run_init_functions(NULL, shared_init);
 
        talloc_free(shared_init);
 
index e6f33f3..8916ef5 100644 (file)
@@ -30,7 +30,7 @@
 #include "lib/param/param.h"
 #include "tsocket.h"
 
-_PUBLIC_ NTSTATUS gensec_ncalrpc_as_system_init(void);
+_PUBLIC_ NTSTATUS gensec_ncalrpc_as_system_init(TALLOC_CTX *ctx);
 
 struct gensec_ncalrpc_state {
        enum {
@@ -338,7 +338,7 @@ static const struct gensec_security_ops gensec_ncalrpc_security_ops = {
        .priority       = GENSEC_EXTERNAL,
 };
 
-_PUBLIC_ NTSTATUS gensec_ncalrpc_as_system_init(void)
+_PUBLIC_ NTSTATUS gensec_ncalrpc_as_system_init(TALLOC_CTX *ctx)
 {
        NTSTATUS status;
 
index 1b99bb7..bf169d4 100644 (file)
@@ -441,7 +441,7 @@ static NTSTATUS netsec_outgoing_packet(struct schannel_state *state,
        return NT_STATUS_OK;
 }
 
-_PUBLIC_ NTSTATUS gensec_schannel_init(void);
+_PUBLIC_ NTSTATUS gensec_schannel_init(TALLOC_CTX *ctx);
 
 static size_t schannel_sig_size(struct gensec_security *gensec_security, size_t data_size)
 {
@@ -849,7 +849,7 @@ static const struct gensec_security_ops gensec_schannel_security_ops = {
        .priority       = GENSEC_SCHANNEL
 };
 
-_PUBLIC_ NTSTATUS gensec_schannel_init(void)
+_PUBLIC_ NTSTATUS gensec_schannel_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        ret = gensec_register(&gensec_schannel_security_ops);
index 017181a..4b3edc6 100644 (file)
@@ -34,7 +34,7 @@
 
 #undef strcasecmp
 
-_PUBLIC_ NTSTATUS gensec_spnego_init(void);
+_PUBLIC_ NTSTATUS gensec_spnego_init(TALLOC_CTX *ctx);
 
 enum spnego_state_position {
        SPNEGO_SERVER_START,
@@ -1694,7 +1694,7 @@ static const struct gensec_security_ops gensec_spnego_security_ops = {
        .priority         = GENSEC_SPNEGO
 };
 
-_PUBLIC_ NTSTATUS gensec_spnego_init(void)
+_PUBLIC_ NTSTATUS gensec_spnego_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        ret = gensec_register(&gensec_spnego_security_ops);
index 6f7c089..ec2f6d9 100644 (file)
@@ -252,7 +252,7 @@ static const struct gensec_security_ops gensec_ntlmssp_resume_ccache_ops = {
        .priority       = GENSEC_NTLMSSP
 };
 
-_PUBLIC_ NTSTATUS gensec_ntlmssp_init(void)
+_PUBLIC_ NTSTATUS gensec_ntlmssp_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 2412768..658d3fa 100644 (file)
@@ -145,7 +145,7 @@ bool ntlmssp_blob_matches_magic(const DATA_BLOB *blob);
 
 /* The following definitions come from auth/ntlmssp/gensec_ntlmssp.c  */
 
-NTSTATUS gensec_ntlmssp_init(void);
+NTSTATUS gensec_ntlmssp_init(TALLOC_CTX *ctx);
 
 uint32_t gensec_ntlmssp_neg_flags(struct gensec_security *gensec_security);
 const char *gensec_ntlmssp_server_domain(struct gensec_security *gensec_security);
index ceca2cc..0481520 100644 (file)
@@ -178,6 +178,9 @@ def write_build_options(task):
                 keys_header_other.append(key)
             else:
                 keys_option_have.append(key)
+        elif key.startswith("static_init_"):
+            l = key.split("(")
+            keys_misc.append(l[0])
         else:
             keys_misc.append(key)
 
index a74c176..f0d19f1 100644 (file)
@@ -101,7 +101,7 @@ The prototype for these functions is:
 </para>
 
 <para><programlisting>
-NTSTATUS init_module(void);
+NTSTATUS init_module(TALLOC_CTX *);
 </programlisting></para>
 
 <para>This function should call one or more 
@@ -111,7 +111,7 @@ NT_STATUS_UNSUCCESSFUL or a more useful nt error code on failure.</para>
 <para>For example, pdb_ldap_init() contains: </para>
 
 <para><programlisting>
-NTSTATUS pdb_ldap_init(void)
+NTSTATUS pdb_ldap_init(TALLOC_CTX *)
 {
 smb_register_passdb(PASSDB_INTERFACE_VERSION, "ldapsam", pdb_init_ldapsam);
 smb_register_passdb(PASSDB_INTERFACE_VERSION, "ldapsam_nua", pdb_init_ldapsam_nua);
@@ -119,6 +119,16 @@ smb_register_passdb(PASSDB_INTERFACE_VERSION, "ldapsam_nua", pdb_init_ldapsam_nu
 }
 </programlisting></para>
 
+<para>
+The TALLOC_CTX pointer passed as a parameter must be a long-lived context,
+that will stay around for as long as the program that loads the module
+exists. It allows the caller to taloc_free any long lived data the
+module choses to place on this context on program exit (giving a cleaner
+valgrind trace). It should be used by modules in place of talloc_autofree_context(),
+use of which makes programs thread-unsafe. Modules that don't care about
+free on exist should use the NULL talloc context.
+</para>
+
 <sect2>
 <title>Static/Shared selection in configure.in</title>
 
index 05d6e16..48bf9d5 100644 (file)
@@ -84,7 +84,7 @@ static struct vfs_fn_pointers vfs_test_shadow_copy_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_shadow_copy_test_init(void)
+NTSTATUS vfs_shadow_copy_test_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "shadow_copy_test",
index 9479595..ffd951c 100644 (file)
@@ -994,7 +994,7 @@ struct vfs_fn_pointers skel_opaque_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_skel_opaque_init(void)
+NTSTATUS vfs_skel_opaque_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "skel_opaque",
                                &skel_opaque_fns);
index f601312..afadbc1 100644 (file)
@@ -1119,7 +1119,7 @@ struct vfs_fn_pointers skel_transparent_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_skel_transparent_init(void)
+NTSTATUS vfs_skel_transparent_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "skel_transparent",
                                &skel_transparent_fns);
index 3f3379f..6abd5ad 100644 (file)
@@ -67,8 +67,8 @@ static NTSTATUS auth_init_skel(struct auth_context *auth_context, const char *pa
        return NT_STATUS_OK;
 }
 
-NTSTATUS auth_skel_init(void);
-NTSTATUS auth_skel_init(void)
+NTSTATUS auth_skel_init(TALLOC_CTX *ctx);
+NTSTATUS auth_skel_init(TALLOC_CTX *ctx)
 {
        return smb_register_auth(AUTH_INTERFACE_VERSION, "skel", auth_init_skel);
 }
index 6d68d87..a5e7dac 100644 (file)
@@ -108,7 +108,7 @@ static NTSTATUS testsam_init(struct pdb_methods **pdb_method, const char *locati
 }
 
 static_decl_pdb;
-NTSTATUS pdb_test_init(void)
+NTSTATUS pdb_test_init(TALLOC_CTX *ctx)
 {
        return smb_register_passdb(PASSDB_INTERFACE_VERSION, "testsam",
                                   testsam_init);
index aab5f39..72d7de5 100644 (file)
@@ -93,9 +93,9 @@ static void s3fs_task_init(struct task_server *task)
 }
 
 /* called at smbd startup - register ourselves as a server service */
-NTSTATUS server_service_s3fs_init(void);
+NTSTATUS server_service_s3fs_init(TALLOC_CTX *);
 
-NTSTATUS server_service_s3fs_init(void)
+NTSTATUS server_service_s3fs_init(TALLOC_CTX *ctx)
 {
        return register_server_service("s3fs", s3fs_task_init);
 }
index c7e9f64..c3c05f2 100644 (file)
@@ -116,7 +116,7 @@ static init_module_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path)
  *
  * @return true if all functions ran successfully, false otherwise
  */
-bool run_init_functions(init_module_fn *fns)
+bool run_init_functions(TALLOC_CTX *ctx, init_module_fn *fns)
 {
        int i;
        bool ret = true;
@@ -124,7 +124,7 @@ bool run_init_functions(init_module_fn *fns)
        if (fns == NULL)
                return true;
 
-       for (i = 0; fns[i]; i++) { ret &= (bool)NT_STATUS_IS_OK(fns[i]()); }
+       for (i = 0; fns[i]; i++) { ret &= (bool)NT_STATUS_IS_OK(fns[i](ctx)); }
 
        return ret;
 }
@@ -195,7 +195,7 @@ static NTSTATUS do_smb_load_module(const char *subsystem,
 
        DEBUG(2, ("Module '%s' loaded\n", module_name));
 
-       status = init();
+       status = init(NULL);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("Module '%s' initialization failed: %s\n",
                          module_name, get_friendly_nt_error_msg(status)));
index 2f40811..1ae9c6e 100644 (file)
@@ -22,9 +22,9 @@
 #define _SAMBA_MODULES_H
 
 /* Module support */
-typedef NTSTATUS (*init_module_fn) (void);
+typedef NTSTATUS (*init_module_fn) (TALLOC_CTX *ctx);
 
-NTSTATUS samba_init_module(void);
+NTSTATUS samba_init_module(TALLOC_CTX *ctx);
 
 /* this needs to be a string which is not in the C library. We
    previously used "init_module", but that meant that modules which
@@ -44,7 +44,7 @@ init_module_fn load_module(const char *path, bool is_probe, void **handle);
  *
  * @return true if all functions ran successfully, false otherwise
  */
-bool run_init_functions(init_module_fn *fns);
+bool run_init_functions(TALLOC_CTX *ctx, init_module_fn *fns);
 
 /**
  * Load the initialization functions from DSO files for a specific subsystem.
index 6424c81..8e51504 100644 (file)
@@ -26,7 +26,7 @@
 #include "libcli/util/ntstatus.h"
 #include "libcli/echo/libecho.h"
 
-NTSTATUS torture_libcli_echo_init(void);
+NTSTATUS torture_libcli_echo_init(TALLOC_CTX *);
 
 /* Basic test function that sends an echo request and checks the reply */
 static bool echo_udp_basic(struct torture_context *tctx, const char *address)
@@ -81,7 +81,7 @@ static bool torture_echo_udp(struct torture_context *tctx)
 }
 
 /* Test suite that bundles all the libecho tests */
-NTSTATUS torture_libcli_echo_init(void)
+NTSTATUS torture_libcli_echo_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite;
 
index 88c7705..ad36f00 100644 (file)
@@ -259,7 +259,7 @@ static bool $name\__op_interface_by_name(struct dcesrv_interface *iface, const c
        return false;
 }
 
-NTSTATUS dcerpc_server_$name\_init(void)
+NTSTATUS dcerpc_server_$name\_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        static const struct dcesrv_endpoint_server ep_server = {
@@ -296,7 +296,7 @@ sub ParseInterface($)
        my($interface) = shift;
        my $count = 0;
 
-       $res .= "NTSTATUS dcerpc_server_$interface->{NAME}\_init(void);\n";
+       $res .= "NTSTATUS dcerpc_server_$interface->{NAME}\_init(TALLOC_CTX *);\n";
        $res .= "\n";
 
        if (!defined $interface->{PROPERTIES}->{uuid}) {
index ba6245d..54e9433 100644 (file)
@@ -392,7 +392,7 @@ bool load_auth_module(struct auth_context *auth_context,
 
        /* Initialise static modules if not done so yet */
        if(!initialised_static_modules) {
-               static_init_auth;
+               static_init_auth(NULL);
                initialised_static_modules = True;
        }
 
index 7480799..0fa95d9 100644 (file)
@@ -167,7 +167,7 @@ static NTSTATUS auth_init_name_to_ntstatus(struct auth_context *auth_context, co
 
 #endif /* DEVELOPER */
 
-NTSTATUS auth_builtin_init(void)
+NTSTATUS auth_builtin_init(TALLOC_CTX *mem_ctx)
 {
        smb_register_auth(AUTH_INTERFACE_VERSION, "guest", auth_init_guest);
 #ifdef DEVELOPER
index b3ff518..40d717d 100644 (file)
@@ -406,7 +406,7 @@ static NTSTATUS auth_init_trustdomain(struct auth_context *auth_context, const c
        return NT_STATUS_OK;
 }
 
-NTSTATUS auth_domain_init(void) 
+NTSTATUS auth_domain_init(TALLOC_CTX *mem_ctx)
 {
        smb_register_auth(AUTH_INTERFACE_VERSION, "trustdomain", auth_init_trustdomain);
        smb_register_auth(AUTH_INTERFACE_VERSION, "ntdomain", auth_init_ntdomain);
index 634386f..4bcb792 100644 (file)
@@ -188,7 +188,7 @@ static NTSTATUS auth_init_sam_netlogon3(struct auth_context *auth_context,
        return NT_STATUS_OK;
 }
 
-NTSTATUS auth_sam_init(void)
+NTSTATUS auth_sam_init(TALLOC_CTX *mem_ctx)
 {
        smb_register_auth(AUTH_INTERFACE_VERSION, "sam", auth_init_sam);
        smb_register_auth(AUTH_INTERFACE_VERSION, "sam_ignoredomain", auth_init_sam_ignoredomain);
index 4c83c2a..46c8f9f 100644 (file)
@@ -391,8 +391,8 @@ static NTSTATUS auth_init_samba4(struct auth_context *auth_context,
        return NT_STATUS_OK;
 }
 
-NTSTATUS auth_samba4_init(void);
-NTSTATUS auth_samba4_init(void)
+NTSTATUS auth_samba4_init(TALLOC_CTX *mem_ctx);
+NTSTATUS auth_samba4_init(TALLOC_CTX *mem_ctx)
 {
        smb_register_auth(AUTH_INTERFACE_VERSION, "samba4",
                          auth_init_samba4);
index dc8794b..fae55e9 100644 (file)
@@ -180,8 +180,8 @@ static NTSTATUS auth_init_script(struct auth_context *auth_context, const char *
        return NT_STATUS_OK;
 }
 
-NTSTATUS auth_script_init(void);
-NTSTATUS auth_script_init(void)
+NTSTATUS auth_script_init(TALLOC_CTX *);
+NTSTATUS auth_script_init(TALLOC_CTX *ctx)
 {
        return smb_register_auth(AUTH_INTERFACE_VERSION, "script", auth_init_script);
 }
index a4e5b74..08d4e00 100644 (file)
@@ -98,7 +98,7 @@ static NTSTATUS auth_init_unix(struct auth_context *auth_context, const char* pa
        return NT_STATUS_OK;
 }
 
-NTSTATUS auth_unix_init(void)
+NTSTATUS auth_unix_init(TALLOC_CTX *mem_ctx)
 {
        return smb_register_auth(AUTH_INTERFACE_VERSION, "unix", auth_init_unix);
 }
index e6a6296..6bf2118 100644 (file)
@@ -178,7 +178,7 @@ static NTSTATUS auth_init_winbind(struct auth_context *auth_context, const char
        return NT_STATUS_OK;
 }
 
-NTSTATUS auth_winbind_init(void)
+NTSTATUS auth_winbind_init(TALLOC_CTX *mem_ctx)
 {
        return smb_register_auth(AUTH_INTERFACE_VERSION, "winbind", auth_init_winbind);
 }
index 348b882..4a1aa24 100644 (file)
@@ -95,12 +95,12 @@ NTSTATUS auth_check_ntlm_password(TALLOC_CTX *mem_ctx,
 
 /* The following definitions come from auth/auth_builtin.c  */
 
-NTSTATUS auth_builtin_init(void);
+NTSTATUS auth_builtin_init(TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from auth/auth_domain.c  */
 
 void attempt_machine_password_change(void);
-NTSTATUS auth_domain_init(void);
+NTSTATUS auth_domain_init(TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from auth/auth_generic.c  */
 
@@ -149,11 +149,11 @@ NTSTATUS check_sam_security_info3(const DATA_BLOB *challenge,
                                  TALLOC_CTX *mem_ctx,
                                  const struct auth_usersupplied_info *user_info,
                                  struct netr_SamInfo3 **pinfo3);
-NTSTATUS auth_sam_init(void);
+NTSTATUS auth_sam_init(TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from auth/auth_unix.c  */
 
-NTSTATUS auth_unix_init(void);
+NTSTATUS auth_unix_init(TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from auth/auth_util.c  */
 struct tsocket_address;
@@ -302,7 +302,7 @@ NTSTATUS do_map_to_guest_server_info(TALLOC_CTX *mem_ctx,
 
 /* The following definitions come from auth/auth_winbind.c  */
 
-NTSTATUS auth_winbind_init(void);
+NTSTATUS auth_winbind_init(TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from auth/server_info.c  */
 
@@ -409,6 +409,6 @@ NTSTATUS make_session_info_krb5(TALLOC_CTX *mem_ctx,
 
 /* The following definitions come from auth/auth_samba4.c  */
 
-NTSTATUS auth_samba4_init(void);
+NTSTATUS auth_samba4_init(TALLOC_CTX *mem_ctx);
 
 #endif /* _AUTH_PROTO_H_ */
index 406c2c5..b7223c1 100644 (file)
@@ -140,7 +140,8 @@ enum session_key_use_intent {
 /* Changed from 1 -> 2 to add the logon_parameters field. */
 /* Changed from 2 -> 3 when we reworked many auth structures to use IDL or be in common with Samba4 */
 /* Changed from 3 -> 4 when we reworked added the flags */
-#define AUTH_INTERFACE_VERSION 4
+/* Changed from 4 -> 5 as module init functions now take a TALLOC_CTX * */
+#define AUTH_INTERFACE_VERSION 5
 
 #include "auth/proto.h"
 
index c379eba..75d2e45 100644 (file)
@@ -27,8 +27,9 @@
 
 /* Updated to 4, completely new interface, SSS */
 /* Updated to 5, simplified interface by Volker */
+/* Updated to 6, modules now take TALLOC_CTX * init parameter. */
 
-#define SMB_IDMAP_INTERFACE_VERSION 5
+#define SMB_IDMAP_INTERFACE_VERSION 6
 
 #include "librpc/gen_ndr/idmap.h"
 
index 54b4399..448f884 100644 (file)
@@ -90,7 +90,7 @@ NTSTATUS nss_close( const char *parameters );
 
 /* The following definitions come from winbindd/nss_info_template.c  */
 
-NTSTATUS nss_info_template_init( void );
+NTSTATUS nss_info_template_init(TALLOC_CTX *mem_ctx);
 
 #endif /* _IDMAP_NSS_H_ */
 
index 8175829..dcf806b 100644 (file)
@@ -418,9 +418,10 @@ enum pdb_policy_type {
  * Changed to 23, new idmap control functions
  * Changed to 24, removed uid_to_sid and gid_to_sid, replaced with id_to_sid
  * Leave at 24, add optional get_trusteddom_creds()
+ * Change to 25, loadable modules now have a TALLOC_CTX * parameter in init.
  */
 
-#define PASSDB_INTERFACE_VERSION 24
+#define PASSDB_INTERFACE_VERSION 25
 
 struct pdb_methods 
 {
index 9c83147..efefb3c 100644 (file)
@@ -20,7 +20,8 @@
 #ifndef _SMB_PERFCOUNT_H_
 #define _SMB_PERFCOUNT_H_
 
-#define SMB_PERFCOUNTER_INTERFACE_VERSION      1
+/* Change to 2, loadable modules now take a TALLOC_CTX * parameter. */
+#define SMB_PERFCOUNTER_INTERFACE_VERSION      2
 
 struct smb_perfcount_data{
        struct smb_perfcount_handlers *handlers;
index 0810fc2..f6df93a 100644 (file)
 /* Version 35 - Add bool use_ofd_locks to struct files_struct */
 /* Bump to version 36 - Samba 4.6 will ship with that */
 /* Version 36 - Remove is_offline and set_offline */
+/* Version 37 - Module init functions now take a TALLOC_CTX * parameter. */
 
-#define SMB_VFS_INTERFACE_VERSION 36
+#define SMB_VFS_INTERFACE_VERSION 37
 
 /*
     All intercepted VFS operations must be declared as static functions inside module source
index ccc74dd..1e006c3 100644 (file)
@@ -386,7 +386,7 @@ static struct smb_perfcount_handlers perfcount_test_handlers = {
 };
 
 static_decl_perfcount;
-NTSTATUS perfcount_test_init(void)
+NTSTATUS perfcount_test_init(TALLOC_CTX *ctx)
 {
        return smb_register_perfcounter(SMB_PERFCOUNTER_INTERFACE_VERSION,
                                        "pc_test", &perfcount_test_handlers);
index a71bfdc..68abc33 100644 (file)
@@ -455,7 +455,7 @@ static struct vfs_fn_pointers vfs_acl_tdb_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_acl_tdb_init(void)
+NTSTATUS vfs_acl_tdb_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "acl_tdb",
                                &vfs_acl_tdb_fns);
index bb2e565..96bd016 100644 (file)
@@ -295,7 +295,7 @@ static struct vfs_fn_pointers vfs_acl_xattr_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_acl_xattr_init(void)
+NTSTATUS vfs_acl_xattr_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "acl_xattr",
                                &vfs_acl_xattr_fns);
index 5838fd0..f34495b 100644 (file)
@@ -1107,8 +1107,8 @@ static struct vfs_fn_pointers vfs_afsacl_fns = {
        .sys_acl_blob_get_fd_fn = afsacl_sys_acl_blob_get_fd
 };
 
-NTSTATUS vfs_afsacl_init(void);
-NTSTATUS vfs_afsacl_init(void)
+NTSTATUS vfs_afsacl_init(TALLOC_CTX *);
+NTSTATUS vfs_afsacl_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "afsacl",
                                &vfs_afsacl_fns);
index e9ba4a3..8e47531 100644 (file)
@@ -919,8 +919,8 @@ static struct vfs_fn_pointers vfs_aio_fork_fns = {
        .fsync_recv_fn = aio_fork_fsync_recv,
 };
 
-NTSTATUS vfs_aio_fork_init(void);
-NTSTATUS vfs_aio_fork_init(void)
+NTSTATUS vfs_aio_fork_init(TALLOC_CTX *);
+NTSTATUS vfs_aio_fork_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "aio_fork", &vfs_aio_fork_fns);
index 55ef1df..e89c290 100644 (file)
@@ -339,7 +339,7 @@ static struct vfs_fn_pointers vfs_aio_linux_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_aio_linux_init(void)
+NTSTATUS vfs_aio_linux_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "aio_linux", &vfs_aio_linux_fns);
index 97ae86f..1d9346c 100644 (file)
@@ -496,8 +496,8 @@ static struct vfs_fn_pointers vfs_aio_pthread_fns = {
 #endif
 };
 
-NTSTATUS vfs_aio_pthread_init(void);
-NTSTATUS vfs_aio_pthread_init(void)
+NTSTATUS vfs_aio_pthread_init(TALLOC_CTX *);
+NTSTATUS vfs_aio_pthread_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "aio_pthread", &vfs_aio_pthread_fns);
index 459ea6f..169058f 100644 (file)
@@ -189,8 +189,8 @@ static struct vfs_fn_pointers vfs_aixacl_fns = {
        .sys_acl_delete_def_file_fn = aixacl_sys_acl_delete_def_file,
 };
 
-NTSTATUS vfs_aixacl_init(void);
-NTSTATUS vfs_aixacl_init(void)
+NTSTATUS vfs_aixacl_init(TALLOC_CTX *);
+NTSTATUS vfs_aixacl_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "aixacl",
                                &vfs_aixacl_fns);
index c4a0264..aaf6e29 100644 (file)
@@ -559,8 +559,8 @@ static struct vfs_fn_pointers vfs_aixacl2_fns = {
        .sys_acl_delete_def_file_fn = aixjfs2_sys_acl_delete_def_file
 };
 
-NTSTATUS vfs_aixacl2_init(void);
-NTSTATUS vfs_aixacl2_init(void)
+NTSTATUS vfs_aixacl2_init(TALLOC_CTX *);
+NTSTATUS vfs_aixacl2_init(TALLOC_CTX *ctx)
 {
         return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, AIXACL2_MODULE_NAME,
                                &vfs_aixacl2_fns);
index cef3bb5..12477d5 100644 (file)
@@ -294,7 +294,7 @@ static struct vfs_fn_pointers vfs_audit_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_audit_init(void)
+NTSTATUS vfs_audit_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "audit",
                                &vfs_audit_fns);
index 154fcc3..ab4fd99 100644 (file)
@@ -676,8 +676,8 @@ static struct vfs_fn_pointers btrfs_fns = {
        .snap_delete_fn = btrfs_snap_delete,
 };
 
-NTSTATUS vfs_btrfs_init(void);
-NTSTATUS vfs_btrfs_init(void)
+NTSTATUS vfs_btrfs_init(TALLOC_CTX *);
+NTSTATUS vfs_btrfs_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "btrfs", &btrfs_fns);
index cb8b328..526a057 100644 (file)
@@ -189,8 +189,8 @@ static struct vfs_fn_pointers vfs_cacheprime_fns = {
  * -------------------------------------------------------------------------
  */
 
-NTSTATUS vfs_cacheprime_init(void);
-NTSTATUS vfs_cacheprime_init(void)
+NTSTATUS vfs_cacheprime_init(TALLOC_CTX *);
+NTSTATUS vfs_cacheprime_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, MODULE,
                                &vfs_cacheprime_fns);
index eece198..0360830 100644 (file)
@@ -694,8 +694,8 @@ static struct vfs_fn_pointers vfs_cap_fns = {
        .fsetxattr_fn = cap_fsetxattr
 };
 
-NTSTATUS vfs_cap_init(void);
-NTSTATUS vfs_cap_init(void)
+NTSTATUS vfs_cap_init(TALLOC_CTX *);
+NTSTATUS vfs_cap_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "cap",
                                &vfs_cap_fns);
index 0ee7c36..9a28371 100644 (file)
@@ -2427,7 +2427,7 @@ static struct vfs_fn_pointers vfs_catia_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_catia_init(void)
+NTSTATUS vfs_catia_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index b74c214..d819fe1 100644 (file)
@@ -1433,8 +1433,8 @@ static struct vfs_fn_pointers ceph_fns = {
        .aio_force_fn = cephwrap_aio_force,
 };
 
-NTSTATUS vfs_ceph_init(void);
-NTSTATUS vfs_ceph_init(void)
+NTSTATUS vfs_ceph_init(TALLOC_CTX *);
+NTSTATUS vfs_ceph_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "ceph", &ceph_fns);
index b870eb2..340276a 100644 (file)
@@ -403,8 +403,8 @@ static struct vfs_fn_pointers vfs_commit_fns = {
         .ftruncate_fn = commit_ftruncate
 };
 
-NTSTATUS vfs_commit_init(void);
-NTSTATUS vfs_commit_init(void)
+NTSTATUS vfs_commit_init(TALLOC_CTX *);
+NTSTATUS vfs_commit_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, MODULE,
                                &vfs_commit_fns);
index c7534b4..4daa82c 100644 (file)
@@ -198,8 +198,8 @@ static struct vfs_fn_pointers vfs_crossrename_fns = {
        .rename_fn = crossrename_rename
 };
 
-NTSTATUS vfs_crossrename_init(void);
-NTSTATUS vfs_crossrename_init(void)
+NTSTATUS vfs_crossrename_init(TALLOC_CTX *);
+NTSTATUS vfs_crossrename_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, MODULE,
                                &vfs_crossrename_fns);
index 73af4f7..d660120 100644 (file)
@@ -2961,8 +2961,8 @@ static struct vfs_fn_pointers vfs_default_fns = {
        .durable_reconnect_fn = vfswrap_durable_reconnect,
 };
 
-NTSTATUS vfs_default_init(void);
-NTSTATUS vfs_default_init(void)
+NTSTATUS vfs_default_init(TALLOC_CTX *);
+NTSTATUS vfs_default_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                DEFAULT_VFS_MODULE_NAME, &vfs_default_fns);
index c8d718c..6f1d2a7 100644 (file)
@@ -225,8 +225,8 @@ static struct vfs_fn_pointers vfs_default_quota_fns = {
        .set_quota_fn = default_quota_set_quota
 };
 
-NTSTATUS vfs_default_quota_init(void);
-NTSTATUS vfs_default_quota_init(void)
+NTSTATUS vfs_default_quota_init(TALLOC_CTX *);
+NTSTATUS vfs_default_quota_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, DEFAULT_QUOTA_NAME,
                                &vfs_default_quota_fns);
index e77a993..0bf1a29 100644 (file)
@@ -135,8 +135,8 @@ static struct vfs_fn_pointers vfs_dfs_samba4_fns = {
        .get_dfs_referrals_fn = dfs_samba4_get_referrals,
 };
 
-NTSTATUS vfs_dfs_samba4_init(void);
-NTSTATUS vfs_dfs_samba4_init(void)
+NTSTATUS vfs_dfs_samba4_init(TALLOC_CTX *);
+NTSTATUS vfs_dfs_samba4_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index cd5597a..fc35186 100644 (file)
@@ -379,7 +379,7 @@ static struct vfs_fn_pointers vfs_dirsort_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_dirsort_init(void)
+NTSTATUS vfs_dirsort_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "dirsort",
                                &vfs_dirsort_fns);
index e42d009..b0e5198 100644 (file)
@@ -226,8 +226,8 @@ static struct vfs_fn_pointers vfs_expand_msdfs_fns = {
        .readlink_fn = expand_msdfs_readlink
 };
 
-NTSTATUS vfs_expand_msdfs_init(void);
-NTSTATUS vfs_expand_msdfs_init(void)
+NTSTATUS vfs_expand_msdfs_init(TALLOC_CTX *);
+NTSTATUS vfs_expand_msdfs_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "expand_msdfs",
                                &vfs_expand_msdfs_fns);
index 0d8ca59..7d1fe27 100644 (file)
@@ -371,7 +371,7 @@ static struct vfs_fn_pointers vfs_extd_audit_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_extd_audit_init(void)
+NTSTATUS vfs_extd_audit_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                        "extd_audit", &vfs_extd_audit_fns);
index 55ff7db..62b53b6 100644 (file)
@@ -508,8 +508,8 @@ static struct vfs_fn_pointers vfs_fake_acls_fns = {
        
 };
 
-NTSTATUS vfs_fake_acls_init(void);
-NTSTATUS vfs_fake_acls_init(void)
+NTSTATUS vfs_fake_acls_init(TALLOC_CTX *);
+NTSTATUS vfs_fake_acls_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "fake_acls",
                                &vfs_fake_acls_fns);
index 51ab7bb..f13ec7d 100644 (file)
@@ -175,7 +175,7 @@ struct vfs_fn_pointers vfs_fake_dfq_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_fake_dfq_init(void)
+NTSTATUS vfs_fake_dfq_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "fake_dfq",
                                &vfs_fake_dfq_fns);
index 8eb6e3c..299bb48 100644 (file)
@@ -100,8 +100,8 @@ static struct vfs_fn_pointers vfs_fake_perms_fns = {
        .fstat_fn = fake_perms_fstat
 };
 
-NTSTATUS vfs_fake_perms_init(void);
-NTSTATUS vfs_fake_perms_init(void)
+NTSTATUS vfs_fake_perms_init(TALLOC_CTX *);
+NTSTATUS vfs_fake_perms_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "fake_perms",
                                &vfs_fake_perms_fns);
index f274059..f751486 100644 (file)
@@ -258,8 +258,8 @@ static struct vfs_fn_pointers vfs_fileid_fns = {
        .file_id_create_fn = fileid_file_id_create
 };
 
-NTSTATUS vfs_fileid_init(void);
-NTSTATUS vfs_fileid_init(void)
+NTSTATUS vfs_fileid_init(TALLOC_CTX *);
+NTSTATUS vfs_fileid_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index b747145..1c1b7d7 100644 (file)
@@ -5428,8 +5428,8 @@ static struct vfs_fn_pointers vfs_fruit_fns = {
        .fset_nt_acl_fn = fruit_fset_nt_acl,
 };
 
-NTSTATUS vfs_fruit_init(void);
-NTSTATUS vfs_fruit_init(void)
+NTSTATUS vfs_fruit_init(TALLOC_CTX *);
+NTSTATUS vfs_fruit_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "fruit",
                                        &vfs_fruit_fns);
index 613ce6c..6614fbb 100644 (file)
@@ -2560,7 +2560,7 @@ static struct vfs_fn_pointers vfs_full_audit_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_full_audit_init(void)
+NTSTATUS vfs_full_audit_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 1c9be2d..628dea7 100644 (file)
@@ -1488,8 +1488,8 @@ static struct vfs_fn_pointers glusterfs_fns = {
        .durable_reconnect_fn = NULL,
 };
 
-NTSTATUS vfs_glusterfs_init(void);
-NTSTATUS vfs_glusterfs_init(void)
+NTSTATUS vfs_glusterfs_init(TALLOC_CTX *);
+NTSTATUS vfs_glusterfs_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "glusterfs", &glusterfs_fns);
index f7434c9..d1d59ce 100644 (file)
@@ -2513,8 +2513,8 @@ static struct vfs_fn_pointers vfs_gpfs_fns = {
        .ftruncate_fn = vfs_gpfs_ftruncate
 };
 
-NTSTATUS vfs_gpfs_init(void);
-NTSTATUS vfs_gpfs_init(void)
+NTSTATUS vfs_gpfs_init(TALLOC_CTX *);
+NTSTATUS vfs_gpfs_init(TALLOC_CTX *ctx)
 {
        int ret;
 
index df27c89..d91657a 100644 (file)
@@ -1165,7 +1165,7 @@ static struct vfs_fn_pointers hpuxacl_fns = {
        .sys_acl_delete_def_file_fn = hpuxacl_sys_acl_delete_def_file,
 };
 
-NTSTATUS vfs_hpuxacl_init(void)
+NTSTATUS vfs_hpuxacl_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "hpuxacl",
                                &hpuxacl_fns);
index 0c0507b..841d7c3 100644 (file)
@@ -108,8 +108,8 @@ static struct vfs_fn_pointers linux_xfs_sgid_fns = {
        .chmod_acl_fn = linux_xfs_sgid_chmod_acl,
 };
 
-NTSTATUS vfs_linux_xfs_sgid_init(void);
-NTSTATUS vfs_linux_xfs_sgid_init(void)
+NTSTATUS vfs_linux_xfs_sgid_init(TALLOC_CTX *);
+NTSTATUS vfs_linux_xfs_sgid_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "linux_xfs_sgid", &linux_xfs_sgid_fns);
index d6a93f8..794644e 100644 (file)
@@ -2431,8 +2431,8 @@ static struct vfs_fn_pointers vfs_mh_fns = {
        /* aio operations */
 };
 
-NTSTATUS vfs_media_harmony_init(void);
-NTSTATUS vfs_media_harmony_init(void)
+NTSTATUS vfs_media_harmony_init(TALLOC_CTX *);
+NTSTATUS vfs_media_harmony_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "media_harmony", &vfs_mh_fns);
index 2b67b91..5715c6d 100644 (file)
@@ -480,8 +480,8 @@ static struct vfs_fn_pointers vfs_netatalk_fns = {
        .lchown_fn = atalk_lchown,
 };
 
-NTSTATUS vfs_netatalk_init(void);
-NTSTATUS vfs_netatalk_init(void)
+NTSTATUS vfs_netatalk_init(TALLOC_CTX *);
+NTSTATUS vfs_netatalk_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "netatalk",
                                &vfs_netatalk_fns);
index 273c926..a22ae7f 100644 (file)
@@ -645,8 +645,8 @@ static struct vfs_fn_pointers nfs4acl_xattr_fns = {
        .fset_nt_acl_fn = nfs4acl_xattr_fset_nt_acl,
 };
 
-NTSTATUS vfs_nfs4acl_xattr_init(void);
-NTSTATUS vfs_nfs4acl_xattr_init(void)
+NTSTATUS vfs_nfs4acl_xattr_init(TALLOC_CTX *);
+NTSTATUS vfs_nfs4acl_xattr_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "nfs4acl_xattr",
                                &nfs4acl_xattr_fns);
index e2d66fa..e8cb439 100644 (file)
@@ -49,8 +49,8 @@ static struct vfs_fn_pointers offline_fns = {
        .fget_dos_attributes_fn = offline_fget_dos_attributes,
 };
 
-NTSTATUS vfs_offline_init(void);
-NTSTATUS vfs_offline_init(void)
+NTSTATUS vfs_offline_init(TALLOC_CTX *);
+NTSTATUS vfs_offline_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "offline",
                                &offline_fns);
index 2c7717a..129f072 100644 (file)
@@ -434,7 +434,7 @@ static struct vfs_fn_pointers vfs_posix_eadb_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_posix_eadb_init(void)
+NTSTATUS vfs_posix_eadb_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "posix_eadb",
                                &vfs_posix_eadb_fns);
index aeadcbc..85d84a5 100644 (file)
@@ -380,8 +380,8 @@ static struct vfs_fn_pointers posixacl_fns = {
        .sys_acl_delete_def_file_fn = posixacl_sys_acl_delete_def_file,
 };
 
-NTSTATUS vfs_posixacl_init(void);
-NTSTATUS vfs_posixacl_init(void)
+NTSTATUS vfs_posixacl_init(TALLOC_CTX *);
+NTSTATUS vfs_posixacl_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "posixacl",
                                &posixacl_fns);
index b0fe841..59d3dc9 100644 (file)
@@ -42,7 +42,7 @@ int posixacl_sys_acl_set_fd(vfs_handle_struct *handle,
 int posixacl_sys_acl_delete_def_file(vfs_handle_struct *handle,
                                     const char *path);
 
-NTSTATUS vfs_posixacl_init(void);
+NTSTATUS vfs_posixacl_init(TALLOC_CTX *);
 
 #endif
 
index 7b96d36..cec537c 100644 (file)
@@ -213,8 +213,8 @@ static struct vfs_fn_pointers prealloc_fns = {
        .connect_fn = prealloc_connect,
 };
 
-NTSTATUS vfs_prealloc_init(void);
-NTSTATUS vfs_prealloc_init(void)
+NTSTATUS vfs_prealloc_init(TALLOC_CTX *);
+NTSTATUS vfs_prealloc_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                MODULE, &prealloc_fns);
index 8bf30b6..12ec476 100644 (file)
@@ -449,8 +449,8 @@ static struct vfs_fn_pointers vfs_preopen_fns = {
        .open_fn = preopen_open
 };
 
-NTSTATUS vfs_preopen_init(void);
-NTSTATUS vfs_preopen_init(void)
+NTSTATUS vfs_preopen_init(TALLOC_CTX *);
+NTSTATUS vfs_preopen_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "preopen", &vfs_preopen_fns);
index 8cb85c7..129ac1b 100644 (file)
@@ -178,8 +178,8 @@ static struct vfs_fn_pointers vfs_readahead_fns = {
  Module initialization boilerplate.
 *******************************************************************/
 
-NTSTATUS vfs_readahead_init(void);
-NTSTATUS vfs_readahead_init(void)
+NTSTATUS vfs_readahead_init(TALLOC_CTX *);
+NTSTATUS vfs_readahead_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "readahead",
                                &vfs_readahead_fns);
index 445f947..cde8ef9 100644 (file)
@@ -105,8 +105,8 @@ static struct vfs_fn_pointers vfs_readonly_fns = {
        .connect_fn = readonly_connect
 };
 
-NTSTATUS vfs_readonly_init(void);
-NTSTATUS vfs_readonly_init(void)
+NTSTATUS vfs_readonly_init(TALLOC_CTX *);
+NTSTATUS vfs_readonly_init(TALLOC_CTX *ctx)
 {
   return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, MODULE_NAME,
                          &vfs_readonly_fns);
index dfc3b9c..5032f26 100644 (file)
@@ -662,8 +662,8 @@ static struct vfs_fn_pointers vfs_recycle_fns = {
        .unlink_fn = recycle_unlink
 };
 
-NTSTATUS vfs_recycle_init(void);
-NTSTATUS vfs_recycle_init(void)
+NTSTATUS vfs_recycle_init(TALLOC_CTX *);
+NTSTATUS vfs_recycle_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "recycle",
                                        &vfs_recycle_fns);
index dae70f5..59f9e52 100644 (file)
@@ -309,8 +309,8 @@ static struct vfs_fn_pointers vfs_shadow_copy_fns = {
        .get_shadow_copy_data_fn = shadow_copy_get_shadow_copy_data,
 };
 
-NTSTATUS vfs_shadow_copy_init(void);
-NTSTATUS vfs_shadow_copy_init(void)
+NTSTATUS vfs_shadow_copy_init(TALLOC_CTX *);
+NTSTATUS vfs_shadow_copy_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                        "shadow_copy", &vfs_shadow_copy_fns);
index 7cacac8..6777d7a 100644 (file)
@@ -3104,8 +3104,8 @@ static struct vfs_fn_pointers vfs_shadow_copy2_fns = {
        .connectpath_fn = shadow_copy2_connectpath,
 };
 
-NTSTATUS vfs_shadow_copy2_init(void);
-NTSTATUS vfs_shadow_copy2_init(void)
+NTSTATUS vfs_shadow_copy2_init(TALLOC_CTX *);
+NTSTATUS vfs_shadow_copy2_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "shadow_copy2", &vfs_shadow_copy2_fns);
index 2273652..97bcf64 100644 (file)
@@ -193,8 +193,8 @@ static struct vfs_fn_pointers shell_snap_fns = {
        .snap_delete_fn = shell_snap_delete,
 };
 
-NTSTATUS vfs_shell_snap_init(void);
-NTSTATUS vfs_shell_snap_init(void)
+NTSTATUS vfs_shell_snap_init(TALLOC_CTX *);
+NTSTATUS vfs_shell_snap_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "shell_snap", &shell_snap_fns);
index a0d3d91..69e2ab9 100644 (file)
@@ -2974,8 +2974,8 @@ static struct vfs_fn_pointers snapper_fns = {
        .get_real_filename_fn = snapper_gmt_get_real_filename,
 };
 
-NTSTATUS vfs_snapper_init(void);
-NTSTATUS vfs_snapper_init(void)
+NTSTATUS vfs_snapper_init(TALLOC_CTX *);
+NTSTATUS vfs_snapper_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "snapper", &snapper_fns);
index 6367794..e5a581c 100644 (file)
@@ -766,8 +766,8 @@ static struct vfs_fn_pointers solarisacl_fns = {
        .sys_acl_delete_def_file_fn = solarisacl_sys_acl_delete_def_file,
 };
 
-NTSTATUS vfs_solarisacl_init(void);
-NTSTATUS vfs_solarisacl_init(void)
+NTSTATUS vfs_solarisacl_init(TALLOC_CTX *);
+NTSTATUS vfs_solarisacl_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "solarisacl",
                                &solarisacl_fns);
index aa54b8d..58d3a06 100644 (file)
@@ -1059,8 +1059,8 @@ static struct vfs_fn_pointers vfs_streams_depot_fns = {
        .streaminfo_fn = streams_depot_streaminfo,
 };
 
-NTSTATUS vfs_streams_depot_init(void);
-NTSTATUS vfs_streams_depot_init(void)
+NTSTATUS vfs_streams_depot_init(TALLOC_CTX *);
+NTSTATUS vfs_streams_depot_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "streams_depot",
                                &vfs_streams_depot_fns);
index 6692636..2943e52 100644 (file)
@@ -1158,8 +1158,8 @@ static struct vfs_fn_pointers vfs_streams_xattr_fns = {
        .streaminfo_fn = streams_xattr_streaminfo,
 };
 
-NTSTATUS vfs_streams_xattr_init(void);
-NTSTATUS vfs_streams_xattr_init(void)
+NTSTATUS vfs_streams_xattr_init(TALLOC_CTX *);
+NTSTATUS vfs_streams_xattr_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "streams_xattr",
                                &vfs_streams_xattr_fns);
index 8b5d79c..381b80b 100644 (file)
@@ -295,7 +295,7 @@ static struct vfs_fn_pointers vfs_syncops_fns = {
 };
 
 static_decl_vfs;
-NTSTATUS vfs_syncops_init(void)
+NTSTATUS vfs_syncops_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 986fe79..2ac3d97 100644 (file)
@@ -2680,8 +2680,8 @@ static struct vfs_fn_pointers vfs_time_audit_fns = {
 };
 
 
-NTSTATUS vfs_time_audit_init(void);
-NTSTATUS vfs_time_audit_init(void)
+NTSTATUS vfs_time_audit_init(TALLOC_CTX *);
+NTSTATUS vfs_time_audit_init(TALLOC_CTX *ctx)
 {
        smb_vfs_assert_all_fns(&vfs_time_audit_fns, "time_audit");
 
index 97f4d5c..83edc15 100644 (file)
@@ -480,8 +480,8 @@ static struct vfs_fn_pointers tru64acl_fns = {
        .sys_acl_delete_def_file_fn = tru64acl_sys_acl_delete_def_file,
 };
 
-NTSTATUS vfs_tru64acl_init(void);
-NTSTATUS vfs_tru64acl_init(void)
+NTSTATUS vfs_tru64acl_init(TALLOC_CTX *);
+NTSTATUS vfs_tru64acl_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "tru64acl",
                                &tru64acl_fns);
index eba19ff..b3493e7 100644 (file)
@@ -608,8 +608,8 @@ static struct vfs_fn_pointers tsmsm_fns = {
        .fget_dos_attributes_fn = tsmsm_fget_dos_attributes,
 };
 
-NTSTATUS vfs_tsmsm_init(void);
-NTSTATUS vfs_tsmsm_init(void)
+NTSTATUS vfs_tsmsm_init(TALLOC_CTX *);
+NTSTATUS vfs_tsmsm_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                "tsmsm", &tsmsm_fns);
index d8191e1..ccafb88 100644 (file)
@@ -1905,8 +1905,8 @@ static struct vfs_fn_pointers vfs_um_fns = {
        .setxattr_fn = um_setxattr,
 };
 
-NTSTATUS vfs_unityed_media_init(void);
-NTSTATUS vfs_unityed_media_init(void)
+NTSTATUS vfs_unityed_media_init(TALLOC_CTX *);
+NTSTATUS vfs_unityed_media_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
                                        "unityed_media", &vfs_um_fns);
index feb3d49..f8b0dfa 100644 (file)
@@ -826,8 +826,8 @@ static struct vfs_fn_pointers vfs_vxfs_fns = {
        .fsetxattr_fn = vxfs_fset_xattr,
 };
 
-NTSTATUS vfs_vxfs_init(void);
-NTSTATUS vfs_vxfs_init(void)
+NTSTATUS vfs_vxfs_init(TALLOC_CTX *);
+NTSTATUS vfs_vxfs_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "vxfs",
                                &vfs_vxfs_fns);
index 9638d96..f7dfe73 100644 (file)
@@ -86,8 +86,8 @@ static struct vfs_fn_pointers vfs_worm_fns = {
        .create_file_fn = vfs_worm_create_file,
 };
 
-NTSTATUS vfs_worm_init(void);
-NTSTATUS vfs_worm_init(void)
+NTSTATUS vfs_worm_init(TALLOC_CTX *);
+NTSTATUS vfs_worm_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 58acf44..12ccbca 100644 (file)
@@ -608,8 +608,8 @@ static struct vfs_fn_pointers vfs_xattr_tdb_fns = {
        .connect_fn = xattr_tdb_connect,
 };
 
-NTSTATUS vfs_xattr_tdb_init(void);
-NTSTATUS vfs_xattr_tdb_init(void)
+NTSTATUS vfs_xattr_tdb_init(TALLOC_CTX *);
+NTSTATUS vfs_xattr_tdb_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "xattr_tdb",
                                &vfs_xattr_tdb_fns);
index a0993ff..6eadf42 100644 (file)
@@ -344,8 +344,8 @@ static struct vfs_fn_pointers zfsacl_fns = {
        .fset_nt_acl_fn = zfsacl_fset_nt_acl,
 };
 
-NTSTATUS vfs_zfsacl_init(void);
-NTSTATUS vfs_zfsacl_init(void)
+NTSTATUS vfs_zfsacl_init(TALLOC_CTX *);
+NTSTATUS vfs_zfsacl_init(TALLOC_CTX *ctx)
 {
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "zfsacl",
                                &zfsacl_fns);
index 36ae576..49752dd 100644 (file)
@@ -51,7 +51,7 @@ static void lazy_initialize_passdb(void)
        if(initialized) {
                return;
        }
-       static_init_pdb;
+       static_init_pdb(NULL);
        initialized = True;
 }
 
index 9514175..c495448 100644 (file)
@@ -6726,7 +6726,7 @@ NTSTATUS pdb_ldapsam_init_common(struct pdb_methods **pdb_method,
        return NT_STATUS_OK;
 }
 
-NTSTATUS pdb_ldapsam_init(void)
+NTSTATUS pdb_ldapsam_init(TALLOC_CTX *ctx)
 {
        NTSTATUS nt_status;
 
@@ -6738,7 +6738,7 @@ NTSTATUS pdb_ldapsam_init(void)
        }
 
        /* Let pdb_nds register backends */
-       pdb_nds_init();
+       pdb_nds_init(ctx);
 
        return NT_STATUS_OK;
 }
index e55b0a4..d83c2af 100644 (file)
@@ -60,7 +60,7 @@ struct ldapsam_privates {
 
 const char** get_userattr_list( TALLOC_CTX *mem_ctx, int schema_ver );
 NTSTATUS pdb_ldapsam_init_common(struct pdb_methods **pdb_method, const char *location);
-NTSTATUS pdb_ldapsam_init(void);
+NTSTATUS pdb_ldapsam_init(TALLOC_CTX *);
 int ldapsam_search_suffix_by_name(struct ldapsam_privates *ldap_state,
                                   const char *user,
                                   LDAPMessage ** result,
index 6d16373..6245ecb 100644 (file)
@@ -893,7 +893,7 @@ static NTSTATUS pdb_init_NDS_ldapsam(struct pdb_methods **pdb_method, const char
        return nt_status;
 }
 
-NTSTATUS pdb_nds_init(void)
+NTSTATUS pdb_nds_init(TALLOC_CTX *ctx)
 {
        NTSTATUS nt_status;
        if (!NT_STATUS_IS_OK(nt_status = smb_register_passdb(PASSDB_INTERFACE_VERSION, "NDS_ldapsam", pdb_init_NDS_ldapsam)))
index e73a3ba..66d8319 100644 (file)
@@ -34,6 +34,6 @@ int pdb_nds_set_password(
        struct smbldap_state *ldap_state,
        char *object_dn,
        const char *pwd );
-NTSTATUS pdb_nds_init(void);
+NTSTATUS pdb_nds_init(TALLOC_CTX *);
 
 #endif /* _PASSDB_PDB_NDS_H_ */
index 97c05c6..cfa492b 100644 (file)
@@ -3090,8 +3090,8 @@ fail:
        return status;
 }
 
-NTSTATUS pdb_samba_dsdb_init(void);
-NTSTATUS pdb_samba_dsdb_init(void)
+NTSTATUS pdb_samba_dsdb_init(TALLOC_CTX *);
+NTSTATUS pdb_samba_dsdb_init(TALLOC_CTX *ctx)
 {
        NTSTATUS status = smb_register_passdb(PASSDB_INTERFACE_VERSION, "samba_dsdb",
                                              pdb_init_samba_dsdb);
index 8a75fde..9c38147 100644 (file)
@@ -1720,7 +1720,7 @@ static NTSTATUS pdb_init_smbpasswd( struct pdb_methods **pdb_method, const char
        return NT_STATUS_OK;
 }
 
-NTSTATUS pdb_smbpasswd_init(void
+NTSTATUS pdb_smbpasswd_init(TALLOC_CTX *ctx
 {
        return smb_register_passdb(PASSDB_INTERFACE_VERSION, "smbpasswd", pdb_init_smbpasswd);
 }
index ccabd38..5dd7c8c 100644 (file)
@@ -25,6 +25,6 @@
 
 /* The following definitions come from passdb/pdb_smbpasswd.c  */
 
-NTSTATUS pdb_smbpasswd_init(void) ;
+NTSTATUS pdb_smbpasswd_init(TALLOC_CTX *) ;
 
 #endif /* _PASSDB_PDB_SMBPASSWD_H_ */
index 6453c9f..6f3dda6 100644 (file)
@@ -1348,7 +1348,7 @@ static NTSTATUS pdb_init_tdbsam(struct pdb_methods **pdb_method, const char *loc
        return NT_STATUS_OK;
 }
 
-NTSTATUS pdb_tdbsam_init(void)
+NTSTATUS pdb_tdbsam_init(TALLOC_CTX *ctx)
 {
        return smb_register_passdb(PASSDB_INTERFACE_VERSION, "tdbsam", pdb_init_tdbsam);
 }
index e2ecfb2..b90beb7 100644 (file)
@@ -27,6 +27,6 @@
 #ifndef _PASSDB_PDB_TDB_H_
 #define _PASSDB_PDB_TDB_H_
 
-NTSTATUS pdb_tdbsam_init(void);
+NTSTATUS pdb_tdbsam_init(TALLOC_CTX *);
 
 #endif /* _PASSDB_PDB_TDB_H_ */
index 37b13e7..c2770a2 100644 (file)
@@ -86,7 +86,7 @@ static struct rpc_module_fns rpc_module_mdssvc_fns = {
 };
 
 static_decl_rpc;
-NTSTATUS rpc_mdssvc_module_init(void)
+NTSTATUS rpc_mdssvc_module_init(TALLOC_CTX *mem_ctx)
 {
        DBG_DEBUG("Registering mdsvc RPC service\n");
 
index 751a638..9c755e6 100644 (file)
@@ -531,7 +531,7 @@ bool dcesrv_ep_setup(struct tevent_context *ev_ctx,
        }
 
        /* Initialize static subsystems */
-       static_init_rpc;
+       static_init_rpc(NULL);
 
        /* Initialize shared modules */
        mod_init_fns = load_samba_modules(tmp_ctx, "rpc");
@@ -547,7 +547,7 @@ bool dcesrv_ep_setup(struct tevent_context *ev_ctx,
                goto done;
        }
 
-       ok = run_init_functions(mod_init_fns);
+       ok = run_init_functions(NULL, mod_init_fns);
        if (!ok) {
                DBG_ERR("Initializing shared RPC modules failed\n");
                goto done;
index b7364b7..f75172a 100644 (file)
@@ -133,7 +133,7 @@ bool vfs_init_custom(connection_struct *conn, const char *vfs_object)
        }
 
        if(!backends) {
-               static_init_vfs;
+               static_init_vfs(NULL);
        }
 
        DEBUG(3, ("Initialising custom vfs hooks from [%s]\n", vfs_object));
index dda8d0a..70f35ae 100644 (file)
@@ -143,7 +143,7 @@ static bool idmap_init(void)
 
        DEBUG(10, ("idmap_init(): calling static_init_idmap\n"));
 
-       static_init_idmap;
+       static_init_idmap(NULL);
 
        initialized = true;
 
index 1dbc3e4..8c9e97b 100644 (file)
@@ -931,7 +931,7 @@ static struct idmap_methods ad_methods = {
 };
 
 static_decl_idmap;
-NTSTATUS idmap_ad_init(void)
+NTSTATUS idmap_ad_init(TALLOC_CTX *ctx)
 {
        NTSTATUS status;
 
@@ -941,7 +941,7 @@ NTSTATUS idmap_ad_init(void)
                return status;
        }
 
-       status = idmap_ad_nss_init();
+       status = idmap_ad_nss_init(ctx);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
index 8b27b36..87c7814 100644 (file)
@@ -394,7 +394,7 @@ static struct nss_info_methods nss_sfu20_methods = {
  Initialize the plugins
  ***********************************************************************/
 
-NTSTATUS idmap_ad_nss_init(void)
+NTSTATUS idmap_ad_nss_init(TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
 
index 9793bfe..5748c80 100644 (file)
@@ -924,7 +924,7 @@ static struct idmap_methods autorid_methods = {
 };
 
 static_decl_idmap;
-NTSTATUS idmap_autorid_init(void)
+NTSTATUS idmap_autorid_init(TALLOC_CTX *ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION,
                                  "autorid", &autorid_methods);
index 36cc0f1..5890271 100644 (file)
@@ -350,7 +350,7 @@ static struct nss_info_methods hash_nss_methods = {
  **********************************************************************/
 
 static_decl_idmap;
-NTSTATUS idmap_hash_init(void)
+NTSTATUS idmap_hash_init(TALLOC_CTX *ctx)
 {
        static NTSTATUS idmap_status = NT_STATUS_UNSUCCESSFUL;
        static NTSTATUS nss_status = NT_STATUS_UNSUCCESSFUL;
index 4b896c2..39aa833 100644 (file)
@@ -1074,8 +1074,8 @@ static struct idmap_methods idmap_ldap_methods = {
        .allocate_id = idmap_ldap_allocate_id,
 };
 
-NTSTATUS idmap_ldap_init(void);
-NTSTATUS idmap_ldap_init(void)
+NTSTATUS idmap_ldap_init(TALLOC_CTX *);
+NTSTATUS idmap_ldap_init(TALLOC_CTX *ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "ldap",
                                  &idmap_ldap_methods);
index 24f8217..3fe98cb 100644 (file)
@@ -202,7 +202,7 @@ static struct idmap_methods nss_methods = {
        .sids_to_unixids = idmap_nss_sids_to_unixids,
 };
 
-NTSTATUS idmap_nss_init(void)
+NTSTATUS idmap_nss_init(TALLOC_CTX *mem_ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "nss", &nss_methods);
 }
index cf8ad74..75fc732 100644 (file)
@@ -86,7 +86,7 @@ static struct idmap_methods passdb_methods = {
        .sids_to_unixids = idmap_pdb_sids_to_unixids,
 };
 
-NTSTATUS idmap_passdb_init(void)
+NTSTATUS idmap_passdb_init(TALLOC_CTX *mem_ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "passdb", &passdb_methods);
 }
index 0e25963..596c22f 100644 (file)
@@ -40,15 +40,15 @@ struct idmap_domain *idmap_find_domain(const char *domname);
 
 /* The following definitions come from winbindd/idmap_nss.c  */
 
-NTSTATUS idmap_nss_init(void);
+NTSTATUS idmap_nss_init(TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from winbindd/idmap_passdb.c  */
 
-NTSTATUS idmap_passdb_init(void);
+NTSTATUS idmap_passdb_init(TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from winbindd/idmap_tdb.c  */
 
-NTSTATUS idmap_tdb_init(void);
+NTSTATUS idmap_tdb_init(TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from winbindd/idmap_util.c  */
 
@@ -64,6 +64,6 @@ struct id_map **id_map_ptrs_init(TALLOC_CTX *mem_ctx, size_t num_ids);
 /* max number of ids requested per LDAP batch query */
 #define IDMAP_LDAP_MAX_IDS 30
 
-NTSTATUS idmap_ad_nss_init(void);
+NTSTATUS idmap_ad_nss_init(TALLOC_CTX *mem_ctx);
 
 #endif /* _WINBINDD_IDMAP_PROTO_H_ */
index ff8bf52..deb25cc 100644 (file)
@@ -843,7 +843,7 @@ static struct idmap_methods rfc2307_methods = {
 };
 
 static_decl_idmap;
-NTSTATUS idmap_rfc2307_init(void)
+NTSTATUS idmap_rfc2307_init(TALLOC_CTX *ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "rfc2307",
                                  &rfc2307_methods);
index 8cf1f03..10088b5 100644 (file)
@@ -174,7 +174,7 @@ static struct idmap_methods rid_methods = {
 };
 
 static_decl_idmap;
-NTSTATUS idmap_rid_init(void)
+NTSTATUS idmap_rid_init(TALLOC_CTX *ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "rid", &rid_methods);
 }
index 4faf2d5..7b7f884 100644 (file)
@@ -628,7 +628,7 @@ static struct idmap_methods db_methods = {
 };
 
 static_decl_idmap;
-NTSTATUS idmap_script_init(void)
+NTSTATUS idmap_script_init(TALLOC_CTX *ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "script", &db_methods);
 }
index a04295f..24ef118 100644 (file)
@@ -434,7 +434,7 @@ static struct idmap_methods db_methods = {
        .allocate_id = idmap_tdb_common_get_new_id,
 };
 
-NTSTATUS idmap_tdb_init(void)
+NTSTATUS idmap_tdb_init(TALLOC_CTX *mem_ctx)
 {
        DEBUG(10, ("calling idmap_tdb_init\n"));
 
index 72c5b9e..4d42390 100644 (file)
@@ -606,7 +606,7 @@ static struct idmap_methods db_methods = {
 };
 
 static_decl_idmap;
-NTSTATUS idmap_tdb2_init(void)
+NTSTATUS idmap_tdb2_init(TALLOC_CTX *ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "tdb2", &db_methods);
 }
index 2c6bb01..9ef7e20 100644 (file)
@@ -173,7 +173,7 @@ static NTSTATUS nss_init(const char **nss_list)
 
        nss_backend = nss_get_backend("template");
        if (nss_backend == NULL) {
-               static_init_nss_info;
+               static_init_nss_info(NULL);
        }
 
        /* Create the list of nss_domains (loading any shared plugins
index 53159b6..c58a7fc 100644 (file)
@@ -71,7 +71,7 @@ static struct nss_info_methods nss_template_methods = {
        .close_fn       = nss_template_close
 };
 
-NTSTATUS nss_info_template_init( void )
+NTSTATUS nss_info_template_init(TALLOC_CTX *mem_ctx)
 {
        return smb_register_idmap_nss(SMB_NSS_INFO_INTERFACE_VERSION, 
                                      "template", 
index c526fc5..e9705b9 100644 (file)
@@ -1857,14 +1857,14 @@ main() {
         if p in static_list:
             decl_list=""
             for entry in static_list[p]:
-                decl_list += "extern NTSTATUS %s_init(void); " % entry
+                decl_list += "extern NTSTATUS %s_init(TALLOC_CTX *mem_ctx); " % entry
                 conf.env[static_env].append('%s' % entry)
             decl_list = decl_list.rstrip()
             conf.DEFINE('static_decl_%s' % p, decl_list)
-            conf.DEFINE('static_init_%s' % p, '{ %s_init(); }' % '_init();  '.join(static_list[p]))
+            conf.DEFINE('static_init_%s(mem_ctx)' % p, '{ %s_init((mem_ctx)); }' % '_init((mem_ctx));  '.join(static_list[p]))
         else:
             conf.DEFINE('static_decl_%s' % p, '')
-            conf.DEFINE('static_init_%s' % p, '{}')
+            conf.DEFINE('static_init_%s(mem_ctx)' % p, '{}')
         if p in shared_list:
             for entry in shared_list[p]:
                 conf.DEFINE('%s_init' % entry, 'samba_init_module')
index a97cfb8..0a691cf 100644 (file)
@@ -157,7 +157,7 @@ NTSTATUS auth_check_password(struct auth4_context *auth_ctx,
                             uint8_t *pauthoritative);
 NTSTATUS auth4_init(void);
 NTSTATUS auth_register(const struct auth_operations *ops);
-NTSTATUS server_service_auth_init(void);
+NTSTATUS server_service_auth_init(TALLOC_CTX *ctx);
 NTSTATUS authenticate_ldap_simple_bind(TALLOC_CTX *mem_ctx,
                                       struct tevent_context *ev,
                                       struct imessaging_context *msg,
index e2755b3..73a08f1 100644 (file)
@@ -50,7 +50,7 @@ gss_OID_desc spnego_mech_oid_desc =
 #define gss_mech_spnego (&spnego_mech_oid_desc)
 #endif
 
-_PUBLIC_ NTSTATUS gensec_gssapi_init(void);
+_PUBLIC_ NTSTATUS gensec_gssapi_init(TALLOC_CTX *);
 
 static size_t gensec_gssapi_max_input_size(struct gensec_security *gensec_security);
 static size_t gensec_gssapi_max_wrapped_size(struct gensec_security *gensec_security);
@@ -1640,7 +1640,7 @@ static const struct gensec_security_ops gensec_gssapi_sasl_krb5_security_ops = {
        .priority         = GENSEC_GSSAPI
 };
 
-_PUBLIC_ NTSTATUS gensec_gssapi_init(void)
+_PUBLIC_ NTSTATUS gensec_gssapi_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 4946929..4756c84 100644 (file)
@@ -43,7 +43,7 @@
 #include "auth/kerberos/pac_utils.h"
 #include "gensec_krb5.h"
 
-_PUBLIC_ NTSTATUS gensec_krb5_init(void);
+_PUBLIC_ NTSTATUS gensec_krb5_init(TALLOC_CTX *);
 
 enum GENSEC_KRB5_STATE {
        GENSEC_KRB5_SERVER_START,
@@ -1082,7 +1082,7 @@ static const struct gensec_security_ops gensec_krb5_security_ops = {
        .priority       = GENSEC_KRB5
 };
 
-_PUBLIC_ NTSTATUS gensec_krb5_init(void)
+_PUBLIC_ NTSTATUS gensec_krb5_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 56676bb..2f2cdc1 100644 (file)
@@ -832,14 +832,14 @@ const struct auth_critical_sizes *auth_interface_version(void)
 _PUBLIC_ NTSTATUS auth4_init(void)
 {
        static bool initialized = false;
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_auth4_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_auth4_MODULES };
        
        if (initialized) return NT_STATUS_OK;
        initialized = true;
        
-       run_init_functions(static_init);
+       run_init_functions(NULL, static_init);
        
        return NT_STATUS_OK;    
 }
index ab1aac2..9bdcf0c 100644 (file)
@@ -24,7 +24,7 @@
 #include "auth/ntlm/auth_proto.h"
 #include "param/param.h"
 
-_PUBLIC_ NTSTATUS auth4_anonymous_init(void);
+_PUBLIC_ NTSTATUS auth4_anonymous_init(TALLOC_CTX *);
 
 /**
  * Return a anonymous logon for anonymous users (username = "")
@@ -95,7 +95,7 @@ static const struct auth_operations anonymous_auth_ops = {
        .check_password = anonymous_check_password
 };
 
-_PUBLIC_ NTSTATUS auth4_anonymous_init(void)
+_PUBLIC_ NTSTATUS auth4_anonymous_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 58ccc2d..93a073b 100644 (file)
@@ -24,7 +24,7 @@
 #include "auth/ntlm/auth_proto.h"
 #include "libcli/security/security.h"
 
-_PUBLIC_ NTSTATUS auth4_developer_init(void);
+_PUBLIC_ NTSTATUS auth4_developer_init(TALLOC_CTX *);
 
 static NTSTATUS name_to_ntstatus_want_check(struct auth_method_context *ctx,
                                            TALLOC_CTX *mem_ctx,
@@ -137,7 +137,7 @@ static const struct auth_operations name_to_ntstatus_auth_ops = {
        .check_password = name_to_ntstatus_check_password
 };
 
-_PUBLIC_ NTSTATUS auth4_developer_init(void)
+_PUBLIC_ NTSTATUS auth4_developer_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 1c7fd90..305fdc5 100644 (file)
@@ -923,8 +923,8 @@ static const struct auth_operations sam_failtrusts_ops = {
        .check_password            = authsam_failtrusts_check_password,
 };
 
-_PUBLIC_ NTSTATUS auth4_sam_init(void);
-_PUBLIC_ NTSTATUS auth4_sam_init(void)
+_PUBLIC_ NTSTATUS auth4_sam_init(TALLOC_CTX *);
+_PUBLIC_ NTSTATUS auth4_sam_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 65b9dc2..9ac080a 100644 (file)
@@ -20,7 +20,7 @@
 #include "includes.h"
 #include "auth/auth.h"
 
-NTSTATUS server_service_auth_init(void)
+NTSTATUS server_service_auth_init(TALLOC_CTX *ctx)
 {
        return auth4_init();
 }
index 46e82f4..5fb8b4f 100644 (file)
@@ -28,7 +28,7 @@
 #include "../libcli/auth/pam_errors.h"
 #include "param/param.h"
 
-_PUBLIC_ NTSTATUS auth4_unix_init(void);
+_PUBLIC_ NTSTATUS auth4_unix_init(TALLOC_CTX *);
 
 /* TODO: look at how to best fill in parms retrieveing a struct passwd info
  * except in case USER_INFO_DONT_CHECK_UNIX_ACCOUNT is set
@@ -751,7 +751,7 @@ static const struct auth_operations unix_ops = {
        .check_password = authunix_check_password
 };
 
-_PUBLIC_ NTSTATUS auth4_unix_init(void)
+_PUBLIC_ NTSTATUS auth4_unix_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index 82a71f3..d5bf5ad 100644 (file)
@@ -32,7 +32,7 @@
 #include "libcli/security/security.h"
 #include "dsdb/samdb/samdb.h"
 
-_PUBLIC_ NTSTATUS auth4_winbind_init(void);
+_PUBLIC_ NTSTATUS auth4_winbind_init(TALLOC_CTX *);
 
 static NTSTATUS winbind_want_check(struct auth_method_context *ctx,
                                   TALLOC_CTX *mem_ctx,
@@ -313,7 +313,7 @@ static const struct auth_operations winbind_wbclient_ops = {
        .check_password = winbind_check_password_wbclient
 };
 
-_PUBLIC_ NTSTATUS auth4_winbind_init(void)
+_PUBLIC_ NTSTATUS auth4_winbind_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
index ced2a20..de8bc4e 100644 (file)
@@ -36,7 +36,7 @@
 #include "../lib/tsocket/tsocket.h"
 #include "libds/common/roles.h"
 
-NTSTATUS server_service_cldapd_init(void);
+NTSTATUS server_service_cldapd_init(TALLOC_CTX *);
 
 /*
   handle incoming cldap requests
@@ -241,7 +241,7 @@ static void cldapd_task_init(struct task_server *task)
 /*
   register ourselves as a available server
 */
-NTSTATUS server_service_cldapd_init(void)
+NTSTATUS server_service_cldapd_init(TALLOC_CTX *ctx)
 {
        return register_server_service("cldap", cldapd_task_init);
 }
index 86776b0..d467cca 100644 (file)
@@ -52,7 +52,7 @@
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_DNS
 
-NTSTATUS server_service_dns_init(void);
+NTSTATUS server_service_dns_init(TALLOC_CTX *);
 
 /* hold information about one dns socket */
 struct dns_socket {
@@ -927,7 +927,7 @@ static void dns_task_init(struct task_server *task)
        }
 }
 
-NTSTATUS server_service_dns_init(void)
+NTSTATUS server_service_dns_init(TALLOC_CTX *ctx)
 {
        return register_server_service("dns", dns_task_init);
 }
index 8962b08..d2e3466 100644 (file)
@@ -41,7 +41,7 @@
 #include "librpc/gen_ndr/ndr_irpc.h"
 #include "libds/common/roles.h"
 
-NTSTATUS server_service_dnsupdate_init(void);
+NTSTATUS server_service_dnsupdate_init(TALLOC_CTX *);
 
 struct dnsupdate_service {
        struct task_server *task;
@@ -665,7 +665,7 @@ static void dnsupdate_task_init(struct task_server *task)
 /*
   register ourselves as a available server
 */
-NTSTATUS server_service_dnsupdate_init(void)
+NTSTATUS server_service_dnsupdate_init(TALLOC_CTX *ctx)
 {
        return register_server_service("dnsupdate", dnsupdate_task_init);
 }
index 9266e75..000206f 100644 (file)
@@ -345,7 +345,7 @@ static void kccsrv_task_init(struct task_server *task)
 /*
   register ourselves as a available server
 */
-NTSTATUS server_service_kcc_init(void)
+NTSTATUS server_service_kcc_init(TALLOC_CTX *ctx)
 {
        return register_server_service("kcc", kccsrv_task_init);
 }
index c0ea1f2..787f2d7 100644 (file)
@@ -514,7 +514,7 @@ static void dreplsrv_task_init(struct task_server *task)
 /*
   register ourselves as a available server
 */
-NTSTATUS server_service_drepl_init(void)
+NTSTATUS server_service_drepl_init(TALLOC_CTX *ctx)
 {
        return register_server_service("drepl", dreplsrv_task_init);
 }
index a3e6974..a934b5b 100644 (file)
@@ -33,7 +33,7 @@
 #include "lib/tsocket/tsocket.h"
 #include "libds/common/roles.h"
 
-NTSTATUS server_service_echo_init(void);
+NTSTATUS server_service_echo_init(TALLOC_CTX *);
 
 /* Structure to hold an echo server socket */
 struct echo_socket {
@@ -341,7 +341,7 @@ static void echo_task_init(struct task_server *task)
  * This is the function you need to put into the wscript_build file as
  * init_function. All the real work happens in "echo_task_init" above.
  */
-NTSTATUS server_service_echo_init(void)
+NTSTATUS server_service_echo_init(TALLOC_CTX *ctx)
 {
        return register_server_service("echo", echo_task_init);
 }
index 25bb391..fd48114 100644 (file)
@@ -40,7 +40,7 @@
 #include <kdc.h>
 #include <hdb.h>
 
-NTSTATUS server_service_kdc_init(void);
+NTSTATUS server_service_kdc_init(TALLOC_CTX *);
 
 extern struct krb5plugin_windc_ftable windc_plugin_table;
 
@@ -466,7 +466,7 @@ static void kdc_task_init(struct task_server *task)
 
 
 /* called at smbd startup - register ourselves as a server service */
-NTSTATUS server_service_kdc_init(void)
+NTSTATUS server_service_kdc_init(TALLOC_CTX *ctx)
 {
        return register_server_service("kdc", kdc_task_init);
 }
index 96df39c..747e25d 100644 (file)
@@ -1182,7 +1182,7 @@ failed:
 }
 
 
-NTSTATUS server_service_ldap_init(void)
+NTSTATUS server_service_ldap_init(TALLOC_CTX *ctx)
 {
        return register_server_service("ldap", ldapsrv_task_init);
 }
index 367ce9d..28f5d84 100644 (file)
@@ -22,7 +22,7 @@
 #include "lib/com/com.h"
 #include "librpc/gen_ndr/com_dcom.h"
 
-NTSTATUS com_simple_init(void);
+NTSTATUS com_simple_init(TALLOC_CTX *);
 
 static struct IClassFactory_vtable simple_classobject_vtable;
 static struct IStream_vtable simple_IStream_vtable;
@@ -107,7 +107,7 @@ static struct IStream_vtable simple_IStream_vtable = {
        simple_IStream_Write
 };
 
-NTSTATUS com_simple_init(void)
+NTSTATUS com_simple_init(TALLOC_CTX *ctx)
 {
        struct GUID clsid;
        struct IUnknown *class_object = talloc(talloc_autofree_context(), struct IUnknown);
index 4a488a3..6477863 100644 (file)
@@ -26,7 +26,7 @@
 #include "auth/credentials/credentials.h"
 #include "lib/util/base64.h"
 
-_PUBLIC_ NTSTATUS gensec_http_basic_init(void);
+_PUBLIC_ NTSTATUS gensec_http_basic_init(TALLOC_CTX *);
 
 struct gensec_http_basic_state {
        enum {
@@ -123,7 +123,7 @@ static const struct gensec_security_ops gensec_http_basic_security_ops = {
        .priority       = GENSEC_EXTERNAL,
 };
 
-_PUBLIC_ NTSTATUS gensec_http_basic_init(void)
+_PUBLIC_ NTSTATUS gensec_http_basic_init(TALLOC_CTX *ctx)
 {
        NTSTATUS status;
 
index 8afb275..391f99f 100644 (file)
@@ -25,7 +25,7 @@
 #include "auth/gensec/gensec_internal.h"
 #include "lib/util/base64.h"
 
-_PUBLIC_ NTSTATUS gensec_http_ntlm_init(void);
+_PUBLIC_ NTSTATUS gensec_http_ntlm_init(TALLOC_CTX *);
 
 struct gensec_http_ntlm_state {
        struct gensec_security *sub;
@@ -106,7 +106,7 @@ static const struct gensec_security_ops gensec_http_ntlm_security_ops = {
        .priority       = GENSEC_EXTERNAL,
 };
 
-_PUBLIC_ NTSTATUS gensec_http_ntlm_init(void)
+_PUBLIC_ NTSTATUS gensec_http_ntlm_init(TALLOC_CTX *ctx)
 {
        NTSTATUS status;
 
index 232fb9d..2c20c10 100644 (file)
@@ -30,7 +30,7 @@
 #include "dsdb/samdb/samdb.h"
 #include "param/param.h"
 
-NTSTATUS server_service_nbtd_init(void);
+NTSTATUS server_service_nbtd_init(TALLOC_CTX *);
 
 /*
   startup the nbtd task
@@ -98,7 +98,7 @@ static void nbtd_task_init(struct task_server *task)
 /*
   register ourselves as a available server
 */
-NTSTATUS server_service_nbtd_init(void)
+NTSTATUS server_service_nbtd_init(TALLOC_CTX *ctx)
 {
        return register_server_service("nbt", nbtd_task_init);
 }
index 53c34ed..ddd38c1 100644 (file)
@@ -41,7 +41,7 @@
 #include "system/network.h"
 #include "system/passwd.h"
 
-NTSTATUS server_service_ntp_signd_init(void);
+NTSTATUS server_service_ntp_signd_init(TALLOC_CTX *);
 
 /*
   top level context structure for the ntp_signd server
@@ -552,7 +552,7 @@ static void ntp_signd_task_init(struct task_server *task)
 
 
 /* called at smbd startup - register ourselves as a server service */
-NTSTATUS server_service_ntp_signd_init(void)
+NTSTATUS server_service_ntp_signd_init(TALLOC_CTX *ctx)
 {
        return register_server_service("ntp_signd", ntp_signd_task_init);
 }
index 355b0bd..478428e 100644 (file)
@@ -64,7 +64,7 @@ struct async_info {
        void *parms;
 };
 
-NTSTATUS ntvfs_cifs_init(void);
+NTSTATUS ntvfs_cifs_init(TALLOC_CTX *);
 
 #define CHECK_UPSTREAM_OPEN do { \
        if (!smbXcli_conn_is_connected(p->transport->conn)) { \
@@ -1201,7 +1201,7 @@ static NTSTATUS cvfs_notify(struct ntvfs_module_context *ntvfs,
 /*
   initialise the CIFS->CIFS backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_cifs_init(void)
+NTSTATUS ntvfs_cifs_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index 9c1e6f6..83f02c0 100644 (file)
@@ -1055,7 +1055,7 @@ static NTSTATUS cifspsx_trans(struct ntvfs_module_context *ntvfs,
 /*
   initialialise the POSIX disk backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_cifs_posix_init(void)
+NTSTATUS ntvfs_cifs_posix_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index 88ac0c1..ff45aaf 100644 (file)
@@ -1297,7 +1297,7 @@ static NTSTATUS ipc_ioctl(struct ntvfs_module_context *ntvfs,
 /*
   initialialise the IPC backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_ipc_init(void)
+NTSTATUS ntvfs_ipc_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index c3e0a42..0b2ccf2 100644 (file)
@@ -28,7 +28,7 @@
 #include "system/filesys.h"
 #include "lib/util/sys_rw.h"
 
-NTSTATUS ntvfs_nbench_init(void);
+NTSTATUS ntvfs_nbench_init(TALLOC_CTX *);
 
 /* this is stored in ntvfs_private */
 struct nbench_private {
@@ -923,7 +923,7 @@ static NTSTATUS nbench_trans(struct ntvfs_module_context *ntvfs,
 /*
   initialise the nbench backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_nbench_init(void)
+NTSTATUS ntvfs_nbench_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index d037a0e..5c438bb 100644 (file)
@@ -228,7 +228,7 @@ static NTSTATUS ntvfs_add_ipc_share(struct loadparm_context *lp_ctx)
 NTSTATUS ntvfs_init(struct loadparm_context *lp_ctx)
 {
        static bool initialized = false;
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_ntvfs_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_ntvfs_MODULES };
        init_module_fn *shared_init;
@@ -238,8 +238,8 @@ NTSTATUS ntvfs_init(struct loadparm_context *lp_ctx)
        
        shared_init = load_samba_modules(NULL, "ntvfs");
 
-       run_init_functions(static_init);
-       run_init_functions(shared_init);
+       run_init_functions(NULL, static_init);
+       run_init_functions(NULL, shared_init);
 
        talloc_free(shared_init);
 
index b298764..9a110ca 100644 (file)
@@ -85,7 +85,7 @@ const struct pvfs_acl_ops *pvfs_acl_backend_byname(const char *name)
 NTSTATUS pvfs_acl_init(void)
 {
        static bool initialized = false;
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_pvfs_acl_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_pvfs_acl_MODULES };
        init_module_fn *shared_init;
@@ -95,8 +95,8 @@ NTSTATUS pvfs_acl_init(void)
 
        shared_init = load_samba_modules(NULL, "pvfs_acl");
 
-       run_init_functions(static_init);
-       run_init_functions(shared_init);
+       run_init_functions(NULL, static_init);
+       run_init_functions(NULL, shared_init);
 
        talloc_free(shared_init);
 
index bd00794..392dc92 100644 (file)
@@ -26,7 +26,7 @@
 #include "librpc/gen_ndr/ndr_nfs4acl.h"
 #include "libcli/security/security.h"
 
-NTSTATUS pvfs_acl_nfs4_init(void);
+NTSTATUS pvfs_acl_nfs4_init(TALLOC_CTX *);
 
 #define ACE4_IDENTIFIER_GROUP 0x40
 
@@ -188,7 +188,7 @@ static NTSTATUS pvfs_acl_save_nfs4(struct pvfs_state *pvfs, struct pvfs_filename
 /*
   initialise pvfs acl NFS4 backend
 */
-NTSTATUS pvfs_acl_nfs4_init(void)
+NTSTATUS pvfs_acl_nfs4_init(TALLOC_CTX *ctx)
 {
        struct pvfs_acl_ops ops = {
                .name = "nfs4acl",
index d9cceef..648c459 100644 (file)
@@ -24,7 +24,7 @@
 #include "../lib/util/unix_privs.h"
 #include "librpc/gen_ndr/ndr_xattr.h"
 
-NTSTATUS pvfs_acl_xattr_init(void);
+NTSTATUS pvfs_acl_xattr_init(TALLOC_CTX *);
 
 /*
   load the current ACL from extended attributes
@@ -93,7 +93,7 @@ static NTSTATUS pvfs_acl_save_xattr(struct pvfs_state *pvfs, struct pvfs_filenam
 /*
   initialise pvfs acl xattr backend
 */
-NTSTATUS pvfs_acl_xattr_init(void)
+NTSTATUS pvfs_acl_xattr_init(TALLOC_CTX *ctx)
 {
        struct pvfs_acl_ops ops = {
                .name = "xattr",
index 7d1fea5..4133723 100644 (file)
@@ -359,7 +359,7 @@ static NTSTATUS pvfs_trans(struct ntvfs_module_context *ntvfs,
 /*
   initialialise the POSIX disk backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_posix_init(void)
+NTSTATUS ntvfs_posix_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index 829fa78..3578f00 100644 (file)
@@ -26,7 +26,7 @@
 #include "ntvfs/ntvfs.h"
 #include "param/param.h"
 
-NTSTATUS ntvfs_print_init(void);
+NTSTATUS ntvfs_print_init(TALLOC_CTX *);
 
 /*
   connect to a share - used when a tree_connect operation comes
@@ -102,7 +102,7 @@ static NTSTATUS print_ioctl(struct ntvfs_module_context *ntvfs,
 /*
   initialialise the print backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_print_init(void)
+NTSTATUS ntvfs_print_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index abd76d2..2fe2084 100644 (file)
@@ -1055,7 +1055,7 @@ static NTSTATUS svfs_trans(struct ntvfs_module_context *ntvfs,
 /*
   initialialise the POSIX disk backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_simple_init(void)
+NTSTATUS ntvfs_simple_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index dbb76b3..b2b61f0 100644 (file)
@@ -41,7 +41,7 @@
 #include "libcli/smb2/smb2.h"
 #include "libcli/smb2/smb2_calls.h"
 
-NTSTATUS ntvfs_smb2_init(void);
+NTSTATUS ntvfs_smb2_init(TALLOC_CTX *);
 
 struct cvfs_file {
        struct cvfs_file *prev, *next;
@@ -847,7 +847,7 @@ static NTSTATUS cvfs_notify(struct ntvfs_module_context *ntvfs,
 /*
   initialise the CIFS->CIFS backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_smb2_init(void)
+NTSTATUS ntvfs_smb2_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index 091ca1d..c769618 100644 (file)
@@ -390,8 +390,8 @@ static struct sys_notify_backend inotify = {
 /*
   initialialise the inotify module
  */
-NTSTATUS sys_notify_inotify_init(void);
-NTSTATUS sys_notify_inotify_init(void)
+NTSTATUS sys_notify_inotify_init(TALLOC_CTX *);
+NTSTATUS sys_notify_inotify_init(TALLOC_CTX *ctx)
 {
        /* register ourselves as a system inotify module */
        return sys_notify_register(&inotify);
index 1c8c33f..3db6703 100644 (file)
@@ -118,14 +118,14 @@ _PUBLIC_ NTSTATUS sys_lease_register(const struct sys_lease_ops *backend)
 _PUBLIC_ NTSTATUS sys_lease_init(void)
 {
        static bool initialized = false;
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_sys_lease_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_sys_lease_MODULES };
 
        if (initialized) return NT_STATUS_OK;
        initialized = true;
 
-       run_init_functions(static_init);
+       run_init_functions(NULL, static_init);
 
        return NT_STATUS_OK;
 }
index 3b0605b..1c70f4e 100644 (file)
@@ -30,7 +30,7 @@
 #include "../lib/util/dlinklist.h"
 #include "cluster/cluster.h"
 
-NTSTATUS sys_lease_linux_init(void);
+NTSTATUS sys_lease_linux_init(TALLOC_CTX *);
 
 #define LINUX_LEASE_RT_SIGNAL (SIGRTMIN+1)
 
@@ -208,7 +208,7 @@ static struct sys_lease_ops linux_lease_ops = {
 /*
   initialialise the linux lease module
  */
-NTSTATUS sys_lease_linux_init(void)
+NTSTATUS sys_lease_linux_init(TALLOC_CTX *ctx)
 {
        /* register ourselves as a system lease module */
        return sys_lease_register(&linux_lease_ops);
index dee3295..aad3b90 100644 (file)
@@ -135,14 +135,14 @@ _PUBLIC_ NTSTATUS sys_notify_register(struct sys_notify_backend *backend)
 _PUBLIC_ NTSTATUS sys_notify_init(void)
 {
        static bool initialized = false;
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_sys_notify_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_sys_notify_MODULES };
 
        if (initialized) return NT_STATUS_OK;
        initialized = true;
 
-       run_init_functions(static_init);
+       run_init_functions(NULL, static_init);
        
        return NT_STATUS_OK;
 }
index ce7abfc..40ccd4a 100644 (file)
@@ -30,7 +30,7 @@
 #include <tevent.h>
 #include "../lib/util/setid.h"
 
-NTSTATUS ntvfs_unixuid_init(void);
+NTSTATUS ntvfs_unixuid_init(TALLOC_CTX *);
 
 struct unixuid_private {
        struct security_unix_token *last_sec_ctx;
@@ -665,7 +665,7 @@ static NTSTATUS unixuid_trans(struct ntvfs_module_context *ntvfs,
 /*
   initialise the unixuid backend, registering ourselves with the ntvfs subsystem
  */
-NTSTATUS ntvfs_unixuid_init(void)
+NTSTATUS ntvfs_unixuid_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
        struct ntvfs_ops ops;
index 2bf4b89..7a57151 100644 (file)
@@ -147,11 +147,11 @@ NTSTATUS share_get_context_by_name(TALLOC_CTX *mem_ctx, const char *backend_name
 */
 NTSTATUS share_init(void)
 {
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_share_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_share_MODULES };
 
-       run_init_functions(static_init);
+       run_init_functions(NULL, static_init);
 
        return NT_STATUS_OK;
 }
index 67ea392..d938cb2 100644 (file)
@@ -23,7 +23,7 @@
 #include "param/share.h"
 #include "param/param.h"
 
-NTSTATUS share_classic_init(void);
+NTSTATUS share_classic_init(TALLOC_CTX *);
 
 static NTSTATUS sclassic_init(TALLOC_CTX *mem_ctx, 
                              const struct share_ops *ops, 
@@ -383,7 +383,7 @@ static const struct share_ops ops = {
        .get_config = sclassic_get_config
 };
 
-NTSTATUS share_classic_init(void)
+NTSTATUS share_classic_init(TALLOC_CTX *ctx)
 {
        return share_register(&ops);
 }
index cf8c5bb..f8b1a3f 100644 (file)
@@ -27,7 +27,7 @@
 #include "param/share.h"
 #include "param/param.h"
 
-NTSTATUS share_ldb_init(void);
+NTSTATUS share_ldb_init(TALLOC_CTX *);
 
 static NTSTATUS sldb_init(TALLOC_CTX *mem_ctx, const struct share_ops *ops, 
                          struct tevent_context *ev_ctx,
@@ -598,7 +598,7 @@ static const struct share_ops ops = {
        .remove = sldb_remove
 };
 
-NTSTATUS share_ldb_init(void)
+NTSTATUS share_ldb_init(TALLOC_CTX *ctx)
 {
        return share_register(&ops);
 }
index 3663a2b..9f62c11 100644 (file)
@@ -2112,7 +2112,7 @@ const struct dcesrv_endpoint_server *dcesrv_ep_server_byname(const char *name)
 void dcerpc_server_init(struct loadparm_context *lp_ctx)
 {
        static bool initialized;
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_dcerpc_server_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_dcerpc_server_MODULES };
        init_module_fn *shared_init;
@@ -2124,8 +2124,8 @@ void dcerpc_server_init(struct loadparm_context *lp_ctx)
 
        shared_init = load_samba_modules(NULL, "dcerpc_server");
 
-       run_init_functions(static_init);
-       run_init_functions(shared_init);
+       run_init_functions(NULL, static_init);
+       run_init_functions(NULL, shared_init);
 
        talloc_free(shared_init);
 }
index 2aa7006..f013d99 100644 (file)
@@ -4771,15 +4771,15 @@ static WERROR dcesrv_dssetup_DsRoleAbortDownlevelServerUpgrade(struct dcesrv_cal
 /* include the generated boilerplate */
 #include "librpc/gen_ndr/ndr_dssetup_s.c"
 
-NTSTATUS dcerpc_server_lsa_init(void)
+NTSTATUS dcerpc_server_lsa_init(TALLOC_CTX *ctx)
 {
        NTSTATUS ret;
 
-       ret = dcerpc_server_dssetup_init();
+       ret = dcerpc_server_dssetup_init(ctx);
        if (!NT_STATUS_IS_OK(ret)) {
                return ret;
        }
-       ret = dcerpc_server_lsarpc_init();
+       ret = dcerpc_server_lsarpc_init(ctx);
        if (!NT_STATUS_IS_OK(ret)) {
                return ret;
        }
index 8fb8332..f6b1ac9 100644 (file)
@@ -39,7 +39,7 @@
 #include "../libcli/named_pipe_auth/npa_tstream.h"
 #include "smbd/process_model.h"
 
-NTSTATUS server_service_rpc_init(void);
+NTSTATUS server_service_rpc_init(TALLOC_CTX *);
 
 /*
   open the dcerpc server sockets
@@ -124,7 +124,7 @@ failed:
        task_server_terminate(task, "Failed to startup dcerpc server task", true);      
 }
 
-NTSTATUS server_service_rpc_init(void)
+NTSTATUS server_service_rpc_init(TALLOC_CTX *ctx)
 {
        return register_server_service("rpc", dcesrv_task_init);
 }
index 05004b0..1a830d0 100644 (file)
@@ -85,7 +85,7 @@ failed:
 }
 
 /* called at smbd startup - register ourselves as a server service */
-NTSTATUS server_service_smb_init(void)
+NTSTATUS server_service_smb_init(TALLOC_CTX *ctx)
 {
        ntvfs_init(cmdline_lp_ctx);
        share_init();
index bbcbe3b..20a130b 100644 (file)
@@ -101,7 +101,7 @@ _PUBLIC_ NTSTATUS register_process_model(const struct model_ops *ops)
 
 _PUBLIC_ NTSTATUS process_model_init(struct loadparm_context *lp_ctx)
 {
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_process_model_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_process_model_MODULES };
        init_module_fn *shared_init;
@@ -114,8 +114,8 @@ _PUBLIC_ NTSTATUS process_model_init(struct loadparm_context *lp_ctx)
 
        shared_init = load_samba_modules(NULL, "process_model");
        
-       run_init_functions(static_init);
-       run_init_functions(shared_init);
+       run_init_functions(NULL, static_init);
+       run_init_functions(NULL, shared_init);
 
        talloc_free(shared_init);
 
index a1b785e..f483e00 100644 (file)
@@ -26,7 +26,7 @@
 #include "system/filesys.h"
 #include "cluster/cluster.h"
 
-NTSTATUS process_model_single_init(void);
+NTSTATUS process_model_single_init(TALLOC_CTX *);
 
 /*
   called when the process model is selected
@@ -132,7 +132,7 @@ const struct model_ops single_ops = {
   initialise the single process model, registering ourselves with the
   process model subsystem
  */
-NTSTATUS process_model_single_init(void)
+NTSTATUS process_model_single_init(TALLOC_CTX *ctx)
 {
        return register_process_model(&single_ops);
 }
index 92f07ad..967b064 100644 (file)
@@ -39,7 +39,7 @@ struct standard_child_state {
        struct tevent_fd *from_child_fde;
 };
 
-NTSTATUS process_model_standard_init(void);
+NTSTATUS process_model_standard_init(TALLOC_CTX *);
 
 /* we hold a pipe open in the parent, and the any child
    processes wait for EOF on that pipe. This ensures that
@@ -502,7 +502,7 @@ static const struct model_ops standard_ops = {
 /*
   initialise the standard process model, registering ourselves with the process model subsystem
  */
-NTSTATUS process_model_standard_init(void)
+NTSTATUS process_model_standard_init(TALLOC_CTX *ctx)
 {
        return register_process_model(&standard_ops);
 }
index fdc36de..a8bad06 100644 (file)
@@ -343,7 +343,7 @@ static int binary_smbd_main(const char *binary_name,
        bool opt_interactive = false;
        int opt;
        poptContext pc;
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_service_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_service_MODULES };
        init_module_fn *shared_init;
@@ -484,8 +484,8 @@ static int binary_smbd_main(const char *binary_name,
 
        shared_init = load_samba_modules(NULL, "service");
 
-       run_init_functions(static_init);
-       run_init_functions(shared_init);
+       run_init_functions(NULL, static_init);
+       run_init_functions(NULL, shared_init);
 
        talloc_free(shared_init);
 
index 737c799..f5ee966 100644 (file)
@@ -1935,7 +1935,7 @@ static bool run_birthtimetest(struct torture_context *tctx,
 }
 
 
-NTSTATUS torture_base_init(void)
+NTSTATUS torture_base_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "base");
 
index ee884f1..82e6843 100644 (file)
@@ -501,7 +501,7 @@ static bool test_low_referral_level(struct torture_context *tctx,
        return true;
 }
 
-NTSTATUS torture_dfs_init(void)
+NTSTATUS torture_dfs_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "dfs");
        struct torture_suite *suite_basic = torture_suite_create(suite, "domain");
index d7f4c99..7a01ec0 100644 (file)
@@ -1080,8 +1080,8 @@ static struct torture_suite *dlz_bind9_suite(TALLOC_CTX *ctx)
 /**
  * DNS torture module initialization
  */
-NTSTATUS torture_bind_dns_init(void);
-NTSTATUS torture_bind_dns_init(void)
+NTSTATUS torture_bind_dns_init(TALLOC_CTX *);
+NTSTATUS torture_bind_dns_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite;
        TALLOC_CTX *mem_ctx = talloc_autofree_context();
index b1cb967..ac234e1 100644 (file)
@@ -171,12 +171,12 @@ static struct torture_suite *internal_dns_suite(TALLOC_CTX *ctx)
 
 
 /* Silence silly compiler warning */
-NTSTATUS torture_internal_dns_init(void);
+NTSTATUS torture_internal_dns_init(TALLOC_CTX *);
 
 /**
  * DNS torture module initialization
  */
-NTSTATUS torture_internal_dns_init(void)
+NTSTATUS torture_internal_dns_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite;
        TALLOC_CTX *mem_ctx = talloc_autofree_context();
index b0aeb41..2dcb6f1 100644 (file)
@@ -62,7 +62,7 @@ static struct torture_suite * torture_drs_unit_suite(TALLOC_CTX *mem_ctx,
 /**
  * DRSUAPI torture module initialization
  */
-NTSTATUS torture_drs_init(void)
+NTSTATUS torture_drs_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite;
        TALLOC_CTX *mem_ctx = talloc_autofree_context();
index 70fcc32..b6c8117 100644 (file)
@@ -685,7 +685,7 @@ static bool torture_krb5_as_req_aes_rc4(struct torture_context *tctx)
                                         TORTURE_KRB5_TEST_AES_RC4);
 }
 
-NTSTATUS torture_krb5_init(void)
+NTSTATUS torture_krb5_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "krb5");
        struct torture_suite *kdc_suite = torture_suite_create(suite, "kdc");
index 88bff0b..882627e 100644 (file)
@@ -38,7 +38,7 @@ static bool test_skip(struct torture_context *tctx)
        return true;
 }
 
-NTSTATUS torture_krb5_init(void)
+NTSTATUS torture_krb5_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite =
                torture_suite_create(talloc_autofree_context(), "krb5");
index a37af68..50c5e03 100644 (file)
@@ -129,7 +129,7 @@ NTSTATUS torture_ldap_close(struct ldap_connection *conn)
        return NT_STATUS_OK;
 }
 
-NTSTATUS torture_ldap_init(void)
+NTSTATUS torture_ldap_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "ldap");
        torture_suite_add_simple_test(suite, "bench-cldap", torture_bench_cldap);
index 3b9548c..7b9c31a 100644 (file)
@@ -24,7 +24,7 @@
 #include "libnet/libnet.h"
 #include "torture/libnet/proto.h"
 
-NTSTATUS torture_net_init(void)
+NTSTATUS torture_net_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(
                talloc_autofree_context(), "net");
index 5e316ac..856b2c8 100644 (file)
@@ -80,7 +80,7 @@ static bool torture_libnetapi_initialize(struct torture_context *tctx)
        return true;
 }
 
-NTSTATUS torture_libnetapi_init(void)
+NTSTATUS torture_libnetapi_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite;
 
index 2e78c3a..c714a97 100644 (file)
@@ -201,7 +201,7 @@ bool torture_libsmbclient_options(struct torture_context *tctx)
        return true;
 }
 
-NTSTATUS torture_libsmbclient_init(void)
+NTSTATUS torture_libsmbclient_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite;
 
index 353cc27..e723152 100644 (file)
@@ -79,7 +79,7 @@
        NULL
 };
 
-NTSTATUS torture_local_init(void)
+NTSTATUS torture_local_init(TALLOC_CTX *ctx)
 {
        int i;
        struct torture_suite *suite = torture_suite_create(
index 2f10435..979f16e 100644 (file)
@@ -284,7 +284,7 @@ bool torture_nbench(struct torture_context *torture)
        return correct;
 }
 
-NTSTATUS torture_nbench_init(void)
+NTSTATUS torture_nbench_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(
                                                   talloc_autofree_context(), "bench");
index 1b7fe49..ac53c91 100644 (file)
@@ -48,7 +48,7 @@ bool torture_nbt_get_name(struct torture_context *tctx,
        return true;
 }
 
-NTSTATUS torture_nbt_init(void)
+NTSTATUS torture_nbt_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(
                talloc_autofree_context(), "nbt");
index 18ac142..1963e57 100644 (file)
@@ -284,7 +284,7 @@ static bool test_ntp_signd(struct torture_context *tctx,
        return true;
 }
 
-NTSTATUS torture_ntp_init(void)
+NTSTATUS torture_ntp_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "ntp");
        struct torture_rpc_tcase *tcase;
index ee37158..043154b 100644 (file)
@@ -241,7 +241,7 @@ bool torture_rap_scan(struct torture_context *torture, struct smbcli_state *cli)
        return true;
 }
 
-NTSTATUS torture_rap_init(void)
+NTSTATUS torture_rap_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "rap");
        struct torture_suite *suite_basic = torture_suite_create(suite, "basic");
index bda463b..5b237d3 100644 (file)
@@ -23,7 +23,7 @@
 #include "torture/smbtorture.h"
 #include "torture/raw/proto.h"
 
-NTSTATUS torture_raw_init(void)
+NTSTATUS torture_raw_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(
                talloc_autofree_context(), "raw");
index 4c9f75f..12dcced 100644 (file)
@@ -482,7 +482,7 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_ex(
        return test;
 }
 
-NTSTATUS torture_rpc_init(void)
+NTSTATUS torture_rpc_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "rpc");
 
index d8e3a06..3c3c22a 100644 (file)
@@ -143,7 +143,7 @@ struct torture_test *torture_suite_add_2smb2_test(struct torture_suite *suite,
        return test;
 }
 
-NTSTATUS torture_smb2_init(void)
+NTSTATUS torture_smb2_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "smb2");
        torture_suite_add_simple_test(suite, "connect", torture_smb2_connect);
index fc50436..1595786 100644 (file)
@@ -560,7 +560,7 @@ int main(int argc, const char *argv[])
                if (fn == NULL) 
                        d_printf("Unable to load module from %s\n", poptGetOptArg(pc));
                else {
-                       status = fn();
+                       status = fn(NULL);
                        if (NT_STATUS_IS_ERR(status)) {
                                d_printf("Error initializing module %s: %s\n", 
                                        poptGetOptArg(pc), nt_errstr(status));
index b066d3e..0108921 100644 (file)
@@ -46,13 +46,13 @@ bool torture_register_suite(struct torture_suite *suite)
 
 _PUBLIC_ int torture_init(void)
 {
-#define _MODULE_PROTO(init) extern NTSTATUS init(void);
+#define _MODULE_PROTO(init) extern NTSTATUS init(TALLOC_CTX *);
        STATIC_smbtorture_MODULES_PROTO;
        init_module_fn static_init[] = { STATIC_smbtorture_MODULES };
        init_module_fn *shared_init = load_samba_modules(NULL, "smbtorture");
 
-       run_init_functions(static_init);
-       run_init_functions(shared_init);
+       run_init_functions(NULL, static_init);
+       run_init_functions(NULL, shared_init);
 
        talloc_free(shared_init);
 
index ec8afef..0ea1b51 100644 (file)
@@ -21,7 +21,7 @@
 #include "torture/smbtorture.h"
 #include "torture/unix/proto.h"
 
-NTSTATUS torture_unix_init(void)
+NTSTATUS torture_unix_init(TALLOC_CTX *ctx)
 {
         struct torture_suite *suite =
                 torture_suite_create(talloc_autofree_context(), "unix");
index 710e93b..8c1f1ff 100644 (file)
@@ -101,7 +101,7 @@ struct torture_test *torture_suite_add_2ns_smb2_test(struct torture_suite *suite
        return test;
 }
 
-NTSTATUS torture_vfs_init(void)
+NTSTATUS torture_vfs_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(
                talloc_autofree_context(), "vfs");
index 29ef5db..74de381 100644 (file)
@@ -290,7 +290,7 @@ static bool torture_winbind_pac_krb5(struct torture_context *tctx)
        return torture_winbind_pac(tctx, NULL, "krb5");
 }      
 
-NTSTATUS torture_winbind_init(void)
+NTSTATUS torture_winbind_init(TALLOC_CTX *ctx)
 {
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "winbind");
        struct torture_suite *pac_suite;
index d83b35a..02f2460 100644 (file)
@@ -28,7 +28,7 @@
 #include "lib/socket/netif.h"
 #include "param/param.h"
 
-NTSTATUS server_service_web_init(void);
+NTSTATUS server_service_web_init(TALLOC_CTX *);
 
 /* don't allow connections to hang around forever */
 #define HTTP_TIMEOUT 120
@@ -370,7 +370,7 @@ failed:
 
 
 /* called at smbd startup - register ourselves as a server service */
-NTSTATUS server_service_web_init(void)
+NTSTATUS server_service_web_init(TALLOC_CTX *ctx)
 {
        return register_server_service("web", websrv_task_init);
 }
index 80abd7a..6e6f262 100644 (file)
@@ -86,9 +86,9 @@ static void winbindd_task_init(struct task_server *task)
 }
 
 /* called at winbindd startup - register ourselves as a server service */
-NTSTATUS server_service_winbindd_init(void);
+NTSTATUS server_service_winbindd_init(TALLOC_CTX *);
 
-NTSTATUS server_service_winbindd_init(void)
+NTSTATUS server_service_winbindd_init(TALLOC_CTX *ctx)
 {
        NTSTATUS status = register_server_service("winbindd", winbindd_task_init);
        if (!NT_STATUS_IS_OK(status)) {
index 75a927a..d054a22 100644 (file)
@@ -506,7 +506,7 @@ static void wreplsrv_task_init(struct task_server *task)
 /*
   register ourselves as a available server
 */
-NTSTATUS server_service_wrepl_init(void)
+NTSTATUS server_service_wrepl_init(TALLOC_CTX *ctx)
 {
        return register_server_service("wrepl", wreplsrv_task_init);
 }