summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-11-14 22:23:23 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:48 -0500
commit31ded4901b4529ad2e49871502cab5ecba71483a (patch)
tree9ee5bf3ede7f672060e843c3c09cf5e9ad5f0fb4
parente856a8d83c18820a270ef865d2d7869849ce4e20 (diff)
downloadsamba-31ded4901b4529ad2e49871502cab5ecba71483a.tar.gz
samba-31ded4901b4529ad2e49871502cab5ecba71483a.tar.bz2
samba-31ded4901b4529ad2e49871502cab5ecba71483a.zip
r3737: - Get rid of the register_subsystem() and register_backend() functions.
- Re-disable tdbtool (it was building fine on my Debian box but other machines were having problems) (This used to be commit 0d7bb2c40b7a9ed59df3f8944133ea562697e814)
-rw-r--r--source4/auth/auth.c20
-rw-r--r--source4/auth/auth_builtin.c6
-rw-r--r--source4/auth/auth_sam.c4
-rw-r--r--source4/auth/auth_winbind.c2
-rw-r--r--source4/auth/config.mk1
-rw-r--r--source4/build/pidl/proxy.pm2
-rw-r--r--source4/build/pidl/server.pm2
-rw-r--r--source4/build/smb_build/output.pm7
-rw-r--r--source4/build/smb_build/smb_build_h.pm28
-rw-r--r--source4/lib/basic.mk1
-rw-r--r--source4/lib/dcom/common/tables.c21
-rw-r--r--source4/lib/dcom/config.mk1
-rw-r--r--source4/lib/iconv.c19
-rw-r--r--source4/lib/module.c172
-rw-r--r--source4/lib/registry/common/reg_interface.c15
-rw-r--r--source4/lib/registry/config.mk1
-rw-r--r--source4/lib/registry/reg_backend_dir/reg_backend_dir.c2
-rw-r--r--source4/lib/registry/reg_backend_gconf/reg_backend_gconf.c2
-rw-r--r--source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c2
-rw-r--r--source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c2
-rw-r--r--source4/lib/registry/reg_backend_rpc/reg_backend_rpc.c2
-rw-r--r--source4/lib/registry/reg_backend_w95/reg_backend_w95.c2
-rw-r--r--source4/lib/tdb/config.mk1
-rw-r--r--source4/libcli/auth/gensec.c11
-rw-r--r--source4/libcli/auth/gensec_ntlmssp.c2
-rw-r--r--source4/libcli/auth/spnego.c2
-rw-r--r--source4/librpc/rpc/dcerpc_schannel.c2
-rw-r--r--source4/ntvfs/cifs/vfs_cifs.c2
-rw-r--r--source4/ntvfs/config.mk1
-rw-r--r--source4/ntvfs/ipc/vfs_ipc.c2
-rw-r--r--source4/ntvfs/nbench/vfs_nbench.c2
-rw-r--r--source4/ntvfs/ntvfs_base.c21
-rw-r--r--source4/ntvfs/posix/vfs_posix.c4
-rw-r--r--source4/ntvfs/print/vfs_print.c2
-rw-r--r--source4/ntvfs/simple/vfs_simple.c2
-rw-r--r--source4/ntvfs/unixuid/vfs_unixuid.c6
-rw-r--r--source4/rpc_server/config.mk1
-rw-r--r--source4/rpc_server/dcerpc_server.c20
-rw-r--r--source4/rpc_server/dcom/remact.c13
-rw-r--r--source4/rpc_server/remote/dcesrv_remote.c2
-rw-r--r--source4/smbd/config.mk1
-rw-r--r--source4/smbd/process_model.c20
-rw-r--r--source4/smbd/process_model.mk1
-rw-r--r--source4/smbd/process_single.c2
-rw-r--r--source4/smbd/process_standard.c2
-rw-r--r--source4/smbd/process_thread.c2
-rw-r--r--source4/smbd/service.c21
47 files changed, 41 insertions, 418 deletions
diff --git a/source4/auth/auth.c b/source4/auth/auth.c
index 58075b4c75..cd59190a42 100644
--- a/source4/auth/auth.c
+++ b/source4/auth/auth.c
@@ -411,7 +411,7 @@ static int num_backends;
The 'name' can be later used by other backends to find the operations
structure for this backend.
*/
-static NTSTATUS auth_register(const void *_ops)
+NTSTATUS auth_register(const void *_ops)
{
const struct auth_operations *ops = _ops;
struct auth_operations *new_ops;
@@ -477,24 +477,6 @@ const struct auth_critical_sizes *auth_interface_version(void)
return &critical_sizes;
}
-/*
- initialise the AUTH subsystem
-*/
-NTSTATUS auth_init(void)
-{
- NTSTATUS status;
-
- status = register_subsystem("auth", auth_register);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- auth_init_static_modules;
-
- DEBUG(3,("AUTH subsystem version %d initialised\n", AUTH_INTERFACE_VERSION));
- return status;
-}
-
NTSTATUS server_service_auth_init(void)
{
return NT_STATUS_OK;
diff --git a/source4/auth/auth_builtin.c b/source4/auth/auth_builtin.c
index c67b9b6835..56c465cfae 100644
--- a/source4/auth/auth_builtin.c
+++ b/source4/auth/auth_builtin.c
@@ -177,7 +177,7 @@ NTSTATUS auth_builtin_init(void)
ops.name = "guest";
ops.init = auth_init_guest;
- ret = register_backend("auth", &ops);
+ ret = auth_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' auth backend!\n",
ops.name));
@@ -187,7 +187,7 @@ NTSTATUS auth_builtin_init(void)
#ifdef DEVELOPER
ops.name = "name_to_ntstatus";
ops.init = auth_init_name_to_ntstatus;
- ret = register_backend("auth", &ops);
+ ret = auth_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' auth backend!\n",
ops.name));
@@ -196,7 +196,7 @@ NTSTATUS auth_builtin_init(void)
ops.name = "fixed_challenge";
ops.init = auth_init_fixed_challenge;
- ret = register_backend("auth", &ops);
+ ret = auth_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' auth backend!\n",
ops.name));
diff --git a/source4/auth/auth_sam.c b/source4/auth/auth_sam.c
index 636935e0b9..7cba6e83b3 100644
--- a/source4/auth/auth_sam.c
+++ b/source4/auth/auth_sam.c
@@ -631,7 +631,7 @@ NTSTATUS auth_sam_init(void)
ops.name = "sam";
ops.init = auth_init_sam;
- ret = register_backend("auth", &ops);
+ ret = auth_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' auth backend!\n",
ops.name));
@@ -640,7 +640,7 @@ NTSTATUS auth_sam_init(void)
ops.name = "sam_ignoredomain";
ops.init = auth_init_sam_ignoredomain;
- ret = register_backend("auth", &ops);
+ ret = auth_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' auth backend!\n",
ops.name));
diff --git a/source4/auth/auth_winbind.c b/source4/auth/auth_winbind.c
index 2d8cdb72c9..6607295033 100644
--- a/source4/auth/auth_winbind.c
+++ b/source4/auth/auth_winbind.c
@@ -151,7 +151,7 @@ NTSTATUS auth_winbind_init(void)
ops.name = "winbind";
ops.init = auth_init_winbind;
- ret = register_backend("auth", &ops);
+ ret = auth_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' auth backend!\n",
ops.name));
diff --git a/source4/auth/config.mk b/source4/auth/config.mk
index 65c24ca897..cf794e30a9 100644
--- a/source4/auth/config.mk
+++ b/source4/auth/config.mk
@@ -37,7 +37,6 @@ REQUIRED_SUBSYSTEMS = \
#######################
# Start SUBSYSTEM AUTH
[SUBSYSTEM::AUTH]
-INIT_FUNCTION = auth_init
INIT_OBJ_FILES = \
auth/auth.o
ADD_OBJ_FILES = \
diff --git a/source4/build/pidl/proxy.pm b/source4/build/pidl/proxy.pm
index b6d9733419..fabf7cc97e 100644
--- a/source4/build/pidl/proxy.pm
+++ b/source4/build/pidl/proxy.pm
@@ -66,7 +66,7 @@ sub ParseRegFunc($)
GUID_from_string(DCERPC_" . (uc $interface->{NAME}) . "_UUID, &iface.iid);
iface.proxy_vtable = talloc_memdup(NULL, &proxy, sizeof(struct dcom_$interface->{NAME}_vtable));
- return register_backend(\"dcom_interface\", &iface);
+ return dcom_register_interface(&iface);
}\n\n";
}
diff --git a/source4/build/pidl/server.pm b/source4/build/pidl/server.pm
index 6a9ea157a9..2a838ccf48 100644
--- a/source4/build/pidl/server.pm
+++ b/source4/build/pidl/server.pm
@@ -190,7 +190,7 @@ NTSTATUS dcerpc_server_$name\_init(void)
ep_server.interface_by_name = $name\__op_interface_by_name;
/* register ourselves with the DCERPC subsystem. */
- ret = register_backend(\"dcerpc\", &ep_server);
+ ret = dcerpc_register_ep_server(&ep_server);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,(\"Failed to register \'$name\' endpoint server!\\n\"));
diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm
index 11e994407e..d0e00c7565 100644
--- a/source4/build/smb_build/output.pm
+++ b/source4/build/smb_build/output.pm
@@ -98,15 +98,8 @@ sub create_output($)
push(@{$part->{LINK_FLAGS}}, @{$elem->{LIBS}}) if defined($elem->{LIBS});
push(@{$part->{LINK_FLAGS}},@{$elem->{LDFLAGS}}) if defined($elem->{LDFLAGS});
- push(@{$part->{MODULE_INIT_FUNCTIONS}}, @{$elem->{INIT_FUNCTION}}) if
- $elem->{TYPE} eq "MODULE" and
- defined($elem->{INIT_FUNCTION}) and
- $elem->{INIT_FUNCTION} ne "" and
- $elem->{SUBSYSTEM} eq $part->{NAME};
-
push(@{$part->{SUBSYSTEM_INIT_FUNCTIONS}}, @{$elem->{INIT_FUNCTION}}) if
$part->{OUTPUT_TYPE} eq "BINARY" and
- $elem->{TYPE} eq "SUBSYSTEM" and
defined($elem->{INIT_FUNCTION}) and
$elem->{INIT_FUNCTION} ne "";
}
diff --git a/source4/build/smb_build/smb_build_h.pm b/source4/build/smb_build/smb_build_h.pm
index 0f1411dde1..f074f92199 100644
--- a/source4/build/smb_build/smb_build_h.pm
+++ b/source4/build/smb_build/smb_build_h.pm
@@ -28,34 +28,6 @@ sub _prepare_smb_build_h($)
my @defines = ();
#
- # loop over all subsystems
- #
- foreach my $key (values %{$depend}) {
- next if $key->{TYPE} ne "SUBSYSTEM";
-
- my $NAME = $key->{NAME};
- my $DEFINE = ();
- my $name = lc($NAME);
-
- #
- # Static modules
- #
- $DEFINE->{COMMENT} = "SUBSYSTEM $NAME INIT";
- $DEFINE->{KEY} = $name . "_init_static_modules";
- $DEFINE->{VAL} = "do { \\\n";
- foreach my $subkey (@{$key->{MODULE_INIT_FUNCTIONS}}) {
- $DEFINE->{VAL} .= "\t\textern NTSTATUS $subkey(void); \\\n";
- }
-
- foreach my $subkey (@{$key->{MODULE_INIT_FUNCTIONS}}) {
- $DEFINE->{VAL} .= "\t\t$subkey(); \\\n";
- }
- $DEFINE->{VAL} .= "\t} while(0)";
-
- push(@defines,$DEFINE);
- }
-
- #
# loop over all binaries
#
foreach my $key (values %{$depend}) {
diff --git a/source4/lib/basic.mk b/source4/lib/basic.mk
index 68f41db089..7360eddf94 100644
--- a/source4/lib/basic.mk
+++ b/source4/lib/basic.mk
@@ -66,7 +66,6 @@ ADD_OBJ_FILES = \
lib/select.o \
lib/pam_errors.o \
intl/lang_tdb.o \
- lib/module.o \
lib/mutex.o \
lib/events.o \
lib/server_mutex.o \
diff --git a/source4/lib/dcom/common/tables.c b/source4/lib/dcom/common/tables.c
index d6b7cfa78f..f9f1c49380 100644
--- a/source4/lib/dcom/common/tables.c
+++ b/source4/lib/dcom/common/tables.c
@@ -72,7 +72,7 @@ const void *dcom_proxy_vtable_by_iid(const struct GUID *iid)
return iface->proxy_vtable;
}
-static NTSTATUS dcom_register_interface(const void *_iface)
+NTSTATUS dcom_register_interface(const void *_iface)
{
const struct dcom_interface *iface = _iface;
struct interface_list *l = talloc_zero_p(interfaces, struct interface_list);
@@ -84,7 +84,7 @@ static NTSTATUS dcom_register_interface(const void *_iface)
return NT_STATUS_OK;
}
-static NTSTATUS dcom_register_class(const void *_class)
+NTSTATUS dcom_register_class(const void *_class)
{
const struct dcom_class *class = _class;
struct class_list *l = talloc_zero_p(classes, struct class_list);
@@ -95,20 +95,3 @@ static NTSTATUS dcom_register_class(const void *_class)
return NT_STATUS_OK;
}
-
-NTSTATUS libdcom_init(void)
-{
- NTSTATUS status;
-
- status = register_subsystem("dcom_interface", dcom_register_interface);
- if (NT_STATUS_IS_ERR(status)) {
- return status;
- }
-
- register_subsystem("dcom_class", dcom_register_class);
- if (NT_STATUS_IS_ERR(status)) {
- return status;
- }
-
- return status;
-}
diff --git a/source4/lib/dcom/config.mk b/source4/lib/dcom/config.mk
index 6ebf16324f..21d90024d4 100644
--- a/source4/lib/dcom/config.mk
+++ b/source4/lib/dcom/config.mk
@@ -1,7 +1,6 @@
################################################
# Start SUBSYSTEM LIBDCOM
[SUBSYSTEM::LIBDCOM]
-INIT_FUNCTION = libdcom_init
INIT_OBJ_FILES = \
lib/dcom/common/main.o \
lib/dcom/common/tables.o
diff --git a/source4/lib/iconv.c b/source4/lib/iconv.c
index 085ec0ec2f..045ed36320 100644
--- a/source4/lib/iconv.c
+++ b/source4/lib/iconv.c
@@ -73,7 +73,7 @@ static const struct charset_functions builtin_functions[] = {
static struct charset_functions *charsets = NULL;
-static NTSTATUS charset_register_backend(const void *_funcs)
+NTSTATUS charset_register_backend(const void *_funcs)
{
struct charset_functions *funcs = memdup(_funcs,sizeof(struct charset_functions));
struct charset_functions *c = charsets;
@@ -92,22 +92,6 @@ static NTSTATUS charset_register_backend(const void *_funcs)
return NT_STATUS_OK;
}
-static void lazy_initialize_iconv(void)
-{
- static BOOL initialized = False;
- int i;
-
- if (!initialized) {
- initialized = True;
- register_subsystem("charset", charset_register_backend);
-
- charset_init_static_modules;
-
- for(i = 0; builtin_functions[i].name; i++)
- register_backend("charset", &builtin_functions[i]);
- }
-}
-
#ifdef HAVE_NATIVE_ICONV
/* if there was an error then reset the internal state,
this ensures that we don't have a shift state remaining for
@@ -179,7 +163,6 @@ smb_iconv_t smb_iconv_open(const char *tocode, const char *fromcode)
smb_iconv_t ret;
struct charset_functions *from, *to;
- lazy_initialize_iconv();
from = charsets;
to = charsets;
diff --git a/source4/lib/module.c b/source4/lib/module.c
deleted file mode 100644
index 80360e4e72..0000000000
--- a/source4/lib/module.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- module loading system
-
- Copyright (C) Jelmer Vernooij 2002-2004
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#include "includes.h"
-#include "system/dir.h"
-#include "system/filesys.h"
-#include "dlinklist.h"
-
-#ifdef HAVE_DLOPEN
-
-/* Load module (or directory with modules) recursively.
- * Includes running the init_module() function */
-NTSTATUS smb_load_module(const char *module_name)
-{
- void *handle;
- init_module_function init;
- NTSTATUS status;
- const char *error;
- struct stat st;
- DIR *dir;
- struct dirent *dirent;
-
- if(stat(module_name, &st) < 0) {
- DEBUG(0, ("Can't stat module '%s'\n", module_name));
- return NT_STATUS_UNSUCCESSFUL;
- }
-
- /* If the argument is a directory, recursively load all files /
- * directories in it */
-
- /* How about symlinks pointing to themselves - wouldn't we rather
- * want to use wildcards here? */
- if(S_ISDIR(st.st_mode)) {
- dir = opendir(module_name);
- while ((dirent = readdir(dir))) {
- smb_load_module(dirent->d_name);
- }
- }
-
- /* Always try to use LAZY symbol resolving; if the plugin has
- * backwards compatibility, there might be symbols in the
- * plugin referencing to old (removed) functions
- */
- handle = sys_dlopen(module_name, RTLD_LAZY);
-
- if(!handle) {
- DEBUG(0, ("Error loading module '%s': %s\n", module_name, sys_dlerror()));
- return NT_STATUS_UNSUCCESSFUL;
- }
-
- init = (init_module_function)sys_dlsym(handle, "init_module");
-
- /* we must check sys_dlerror() to determine if it worked, because
- sys_dlsym() can validly return NULL */
- error = sys_dlerror();
- if (error) {
- DEBUG(0, ("Error trying to resolve symbol 'init_module' in %s: %s\n", module_name, error));
- return NT_STATUS_UNSUCCESSFUL;
- }
-
- status = init();
-
- DEBUG(2, ("Module '%s' loaded\n", module_name));
-
- return status;
-}
-
-/* Load all modules in list and return number of
- * modules that has been successfully loaded */
-int smb_load_modules(const char **modules)
-{
- int i;
- int success = 0;
-
- for(i = 0; modules[i]; i++){
- if(NT_STATUS_IS_OK(smb_load_module(modules[i]))) {
- success++;
- }
- }
-
- DEBUG(2, ("%d modules successfully loaded\n", success));
-
- return success;
-}
-
-#else /* HAVE_DLOPEN */
-
-NTSTATUS smb_load_module(const char *module_name)
-{
- DEBUG(0,("This samba executable has not been built with plugin support\n"));
- return NT_STATUS_NOT_SUPPORTED;
-}
-
-int smb_load_modules(const char **modules)
-{
- DEBUG(0,("This samba executable has not been built with plugin support\n"));
- return -1;
-}
-
-#endif /* HAVE_DLOPEN */
-
-void init_modules(void)
-{
- if(lp_preload_modules())
- smb_load_modules(lp_preload_modules());
-}
-
-struct subsystem {
- char *name;
- register_backend_function callback;
- struct subsystem *prev, *next;
-};
-
-static struct subsystem *subsystems = NULL;
-
-NTSTATUS register_subsystem(const char *name, register_backend_function callback)
-{
- struct subsystem *s;
- struct subsystem *t = subsystems;
-
- while(t) {
- if(!strcmp(name, t->name)) {
- /* its already registered! */
- DEBUG(0,("Subsystem '%s' already registered\n", name));
- return NT_STATUS_OBJECT_NAME_COLLISION;
- }
- t = t->next;
- }
-
- s = smb_xmalloc(sizeof(struct subsystem));
-
- s->name = smb_xstrdup(name);
- s->callback = callback;
- s->prev = s->next = NULL;
-
- DLIST_ADD(subsystems, s);
-
- return NT_STATUS_OK;
-}
-
-NTSTATUS register_backend(const char *subsystem, const void *args)
-{
- /* Find the specified subsystem */
- struct subsystem *s = subsystems;
-
- while(s) {
- if(!strcmp(subsystem, s->name)) return s->callback(args);
- s = s->next;
- }
-
- DEBUG(0, ("Unable to register backend for subsystem '%s'\n", subsystem));
-
- return NT_STATUS_NOT_IMPLEMENTED;
-}
diff --git a/source4/lib/registry/common/reg_interface.c b/source4/lib/registry/common/reg_interface.c
index 0399fc26aa..77440cea0f 100644
--- a/source4/lib/registry/common/reg_interface.c
+++ b/source4/lib/registry/common/reg_interface.c
@@ -59,21 +59,6 @@ NTSTATUS registry_register(const void *_function)
return NT_STATUS_OK;
}
-NTSTATUS registry_init(void)
-{
- NTSTATUS status;
-
- status = register_subsystem("registry", registry_register);
- if (NT_STATUS_IS_ERR(status)) {
- DEBUG(0, ("Error registering registry subsystem: %s\n", nt_errstr(status)));
- return status;
- }
-
- registry_init_static_modules;
-
- return NT_STATUS_OK;
-}
-
/* Find a backend in the list of available backends */
static struct reg_init_function_entry *reg_find_backend_entry(const char *name)
{
diff --git a/source4/lib/registry/config.mk b/source4/lib/registry/config.mk
index 9c6ed24148..ec9dbec7db 100644
--- a/source4/lib/registry/config.mk
+++ b/source4/lib/registry/config.mk
@@ -68,7 +68,6 @@ REQUIRED_SUBSYSTEMS = \
################################################
# Start SUBSYSTEM REGISTRY
[SUBSYSTEM::REGISTRY]
-INIT_FUNCTION = registry_init
INIT_OBJ_FILES = \
lib/registry/common/reg_interface.o
ADD_OBJ_FILES = \
diff --git a/source4/lib/registry/reg_backend_dir/reg_backend_dir.c b/source4/lib/registry/reg_backend_dir/reg_backend_dir.c
index 247d723252..8712e7ce7c 100644
--- a/source4/lib/registry/reg_backend_dir/reg_backend_dir.c
+++ b/source4/lib/registry/reg_backend_dir/reg_backend_dir.c
@@ -144,5 +144,5 @@ static struct registry_operations reg_backend_dir = {
NTSTATUS registry_dir_init(void)
{
- return register_backend("registry", &reg_backend_dir);
+ return registry_register(&reg_backend_dir);
}
diff --git a/source4/lib/registry/reg_backend_gconf/reg_backend_gconf.c b/source4/lib/registry/reg_backend_gconf/reg_backend_gconf.c
index 382bc6dba5..fd258ca285 100644
--- a/source4/lib/registry/reg_backend_gconf/reg_backend_gconf.c
+++ b/source4/lib/registry/reg_backend_gconf/reg_backend_gconf.c
@@ -189,5 +189,5 @@ static struct registry_operations reg_backend_gconf = {
NTSTATUS registry_gconf_init(void)
{
- return register_backend("registry", &reg_backend_gconf);
+ return registry_register(&reg_backend_gconf);
}
diff --git a/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c b/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c
index 22c81018c7..bdebe34ff4 100644
--- a/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c
+++ b/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c
@@ -214,5 +214,5 @@ static struct registry_operations reg_backend_ldb = {
NTSTATUS registry_ldb_init(void)
{
- return register_backend("registry", &reg_backend_ldb);
+ return registry_register(&reg_backend_ldb);
}
diff --git a/source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c b/source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c
index c1b9b43445..aac6e548a8 100644
--- a/source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c
+++ b/source4/lib/registry/reg_backend_nt4/reg_backend_nt4.c
@@ -1743,5 +1743,5 @@ static struct registry_operations reg_backend_nt4 = {
NTSTATUS registry_nt4_init(void)
{
- return register_backend("registry", &reg_backend_nt4);
+ return registry_register(&reg_backend_nt4);
}
diff --git a/source4/lib/registry/reg_backend_rpc/reg_backend_rpc.c b/source4/lib/registry/reg_backend_rpc/reg_backend_rpc.c
index 954e7684bb..47afc31d96 100644
--- a/source4/lib/registry/reg_backend_rpc/reg_backend_rpc.c
+++ b/source4/lib/registry/reg_backend_rpc/reg_backend_rpc.c
@@ -401,5 +401,5 @@ static struct registry_operations reg_backend_rpc = {
NTSTATUS registry_rpc_init(void)
{
- return register_backend("registry", &reg_backend_rpc);
+ return registry_register(&reg_backend_rpc);
}
diff --git a/source4/lib/registry/reg_backend_w95/reg_backend_w95.c b/source4/lib/registry/reg_backend_w95/reg_backend_w95.c
index 72ec882b8a..fb73e9052c 100644
--- a/source4/lib/registry/reg_backend_w95/reg_backend_w95.c
+++ b/source4/lib/registry/reg_backend_w95/reg_backend_w95.c
@@ -352,5 +352,5 @@ static struct registry_operations reg_backend_w95 = {
NTSTATUS registry_w95_init(void)
{
- return register_backend("registry", &reg_backend_w95);
+ return registry_register(&reg_backend_w95);
}
diff --git a/source4/lib/tdb/config.mk b/source4/lib/tdb/config.mk
index bfcd462453..96c2c590cb 100644
--- a/source4/lib/tdb/config.mk
+++ b/source4/lib/tdb/config.mk
@@ -37,6 +37,7 @@ REQUIRED_SUBSYSTEMS = \
################################################
# Start BINARY tdbtool
[BINARY::tdbtool]
+ENABLE = NO
OBJ_FILES= \
lib/tdb/tools/tdbtool.o
REQUIRED_SUBSYSTEMS = \
diff --git a/source4/libcli/auth/gensec.c b/source4/libcli/auth/gensec.c
index 88b1081b11..360a69c0e0 100644
--- a/source4/libcli/auth/gensec.c
+++ b/source4/libcli/auth/gensec.c
@@ -751,7 +751,7 @@ NTSTATUS gensec_get_password(struct gensec_security *gensec_security,
The 'name' can be later used by other backends to find the operations
structure for this backend.
*/
-static NTSTATUS gensec_register(const void *_ops)
+NTSTATUS gensec_register(const void *_ops)
{
const struct gensec_security_ops *ops = _ops;
@@ -803,15 +803,6 @@ const struct gensec_critical_sizes *gensec_interface_version(void)
*/
NTSTATUS gensec_init(void)
{
- NTSTATUS status = register_subsystem("gensec", gensec_register);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- gensec_init_static_modules;
-
gensec_dcerpc_schannel_init();
-
- DEBUG(3,("GENSEC subsystem version %d initialised\n", GENSEC_INTERFACE_VERSION));
return NT_STATUS_OK;
}
diff --git a/source4/libcli/auth/gensec_ntlmssp.c b/source4/libcli/auth/gensec_ntlmssp.c
index e774efe94e..ee8d1aa79c 100644
--- a/source4/libcli/auth/gensec_ntlmssp.c
+++ b/source4/libcli/auth/gensec_ntlmssp.c
@@ -419,7 +419,7 @@ static const struct gensec_security_ops gensec_ntlmssp_security_ops = {
NTSTATUS gensec_ntlmssp_init(void)
{
NTSTATUS ret;
- ret = register_backend("gensec", &gensec_ntlmssp_security_ops);
+ ret = gensec_register(&gensec_ntlmssp_security_ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' gensec backend!\n",
gensec_ntlmssp_security_ops.name));
diff --git a/source4/libcli/auth/spnego.c b/source4/libcli/auth/spnego.c
index ab3aff32bb..bafbf64294 100644
--- a/source4/libcli/auth/spnego.c
+++ b/source4/libcli/auth/spnego.c
@@ -714,7 +714,7 @@ static const struct gensec_security_ops gensec_spnego_security_ops = {
NTSTATUS gensec_spnego_init(void)
{
NTSTATUS ret;
- ret = register_backend("gensec", &gensec_spnego_security_ops);
+ ret = gensec_register(&gensec_spnego_security_ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' gensec backend!\n",
gensec_spnego_security_ops.name));
diff --git a/source4/librpc/rpc/dcerpc_schannel.c b/source4/librpc/rpc/dcerpc_schannel.c
index 1e1bdb8227..4016f2d5d6 100644
--- a/source4/librpc/rpc/dcerpc_schannel.c
+++ b/source4/librpc/rpc/dcerpc_schannel.c
@@ -521,7 +521,7 @@ static const struct gensec_security_ops gensec_dcerpc_schannel_security_ops = {
NTSTATUS gensec_dcerpc_schannel_init(void)
{
NTSTATUS ret;
- ret = register_backend("gensec", &gensec_dcerpc_schannel_security_ops);
+ ret = gensec_register(&gensec_dcerpc_schannel_security_ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register '%s' gensec backend!\n",
gensec_dcerpc_schannel_security_ops.name));
diff --git a/source4/ntvfs/cifs/vfs_cifs.c b/source4/ntvfs/cifs/vfs_cifs.c
index ea169b7ee6..bfba31b46f 100644
--- a/source4/ntvfs/cifs/vfs_cifs.c
+++ b/source4/ntvfs/cifs/vfs_cifs.c
@@ -872,7 +872,7 @@ NTSTATUS ntvfs_cifs_init(void)
/* register ourselves with the NTVFS subsystem. We register
under the name 'cifs'. */
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register CIFS backend!\n"));
diff --git a/source4/ntvfs/config.mk b/source4/ntvfs/config.mk
index 14215004ea..43157a8c66 100644
--- a/source4/ntvfs/config.mk
+++ b/source4/ntvfs/config.mk
@@ -61,7 +61,6 @@ INIT_OBJ_FILES = \
################################################
# Start SUBSYSTEM NTVFS
[SUBSYSTEM::NTVFS]
-INIT_FUNCTION = ntvfs_init
INIT_OBJ_FILES = \
ntvfs/ntvfs_base.o
ADD_OBJ_FILES = \
diff --git a/source4/ntvfs/ipc/vfs_ipc.c b/source4/ntvfs/ipc/vfs_ipc.c
index 271be09ac3..a53accd533 100644
--- a/source4/ntvfs/ipc/vfs_ipc.c
+++ b/source4/ntvfs/ipc/vfs_ipc.c
@@ -756,7 +756,7 @@ NTSTATUS ntvfs_ipc_init(void)
ops.cancel = ipc_cancel;
/* register ourselves with the NTVFS subsystem. */
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register IPC backend!\n"));
diff --git a/source4/ntvfs/nbench/vfs_nbench.c b/source4/ntvfs/nbench/vfs_nbench.c
index 1bcfda1371..560f4a646b 100644
--- a/source4/ntvfs/nbench/vfs_nbench.c
+++ b/source4/ntvfs/nbench/vfs_nbench.c
@@ -924,7 +924,7 @@ NTSTATUS ntvfs_nbench_init(void)
ops.trans2 = NULL;
/* register ourselves with the NTVFS subsystem. */
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register nbench backend!\n"));
diff --git a/source4/ntvfs/ntvfs_base.c b/source4/ntvfs/ntvfs_base.c
index c168467eae..136ef14e4c 100644
--- a/source4/ntvfs/ntvfs_base.c
+++ b/source4/ntvfs/ntvfs_base.c
@@ -45,7 +45,7 @@ static int num_backends;
The 'type' is used to specify whether this is for a disk, printer or IPC$ share
*/
-static NTSTATUS ntvfs_register(const void *_ops)
+NTSTATUS ntvfs_register(const void *_ops)
{
const struct ntvfs_ops *ops = _ops;
struct ntvfs_ops *new_ops;
@@ -117,25 +117,6 @@ const struct ntvfs_critical_sizes *ntvfs_interface_version(void)
/*
- initialise the NTVFS subsystem
-*/
-NTSTATUS ntvfs_init(void)
-{
- NTSTATUS status;
-
- status = register_subsystem("ntvfs", ntvfs_register);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- ntvfs_init_static_modules;
-
- DEBUG(3,("NTVFS subsystem version %d initialised\n", NTVFS_INTERFACE_VERSION));
- return status;
-}
-
-
-/*
initialise a connection structure to point at a NTVFS backend
*/
NTSTATUS ntvfs_init_connection(struct smbsrv_request *req, enum ntvfs_type type)
diff --git a/source4/ntvfs/posix/vfs_posix.c b/source4/ntvfs/posix/vfs_posix.c
index 39f6717cae..e5712e3e7d 100644
--- a/source4/ntvfs/posix/vfs_posix.c
+++ b/source4/ntvfs/posix/vfs_posix.c
@@ -252,10 +252,10 @@ NTSTATUS ntvfs_posix_init(void)
under the name 'default' as we wish to be the default
backend, and also register as 'posix' */
ops.name = "default";
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
ops.name = "posix";
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register POSIX backend!\n"));
diff --git a/source4/ntvfs/print/vfs_print.c b/source4/ntvfs/print/vfs_print.c
index 372f64e982..4e2dfad0ca 100644
--- a/source4/ntvfs/print/vfs_print.c
+++ b/source4/ntvfs/print/vfs_print.c
@@ -107,7 +107,7 @@ NTSTATUS ntvfs_print_init(void)
/* register ourselves with the NTVFS subsystem. We register under the name 'default'
as we wish to be the default backend */
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register PRINT backend!\n"));
diff --git a/source4/ntvfs/simple/vfs_simple.c b/source4/ntvfs/simple/vfs_simple.c
index 807f51a43d..57d626465a 100644
--- a/source4/ntvfs/simple/vfs_simple.c
+++ b/source4/ntvfs/simple/vfs_simple.c
@@ -1006,7 +1006,7 @@ NTSTATUS ntvfs_simple_init(void)
ops.type = NTVFS_DISK;
ops.name = "simple";
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register simple backend with name: %s!\n",
diff --git a/source4/ntvfs/unixuid/vfs_unixuid.c b/source4/ntvfs/unixuid/vfs_unixuid.c
index 7f8f8acf99..4520df59fc 100644
--- a/source4/ntvfs/unixuid/vfs_unixuid.c
+++ b/source4/ntvfs/unixuid/vfs_unixuid.c
@@ -803,15 +803,15 @@ NTSTATUS ntvfs_unixuid_init(void)
/* we register under all 3 backend types, as we are not type specific */
ops.type = NTVFS_DISK;
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) goto failed;
ops.type = NTVFS_PRINT;
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) goto failed;
ops.type = NTVFS_IPC;
- ret = register_backend("ntvfs", &ops);
+ ret = ntvfs_register(&ops);
if (!NT_STATUS_IS_OK(ret)) goto failed;
failed:
diff --git a/source4/rpc_server/config.mk b/source4/rpc_server/config.mk
index 4326120e57..401d8c62fb 100644
--- a/source4/rpc_server/config.mk
+++ b/source4/rpc_server/config.mk
@@ -190,7 +190,6 @@ REQUIRED_SUBSYSTEMS = \
################################################
# Start SUBSYSTEM DCERPC
[SUBSYSTEM::DCERPC]
-INIT_FUNCTION = dcerpc_server_init
INIT_OBJ_FILES = \
rpc_server/dcerpc_server.o
ADD_OBJ_FILES = \
diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c
index 83c0872ba7..67baa6281c 100644
--- a/source4/rpc_server/dcerpc_server.c
+++ b/source4/rpc_server/dcerpc_server.c
@@ -1100,7 +1100,7 @@ static int num_ep_servers;
The 'type' is used to specify whether this is for a disk, printer or IPC$ share
*/
-static NTSTATUS dcerpc_register_ep_server(const void *_ep_server)
+NTSTATUS dcerpc_register_ep_server(const void *_ep_server)
{
const struct dcesrv_endpoint_server *ep_server = _ep_server;
@@ -1166,24 +1166,6 @@ const struct dcesrv_critical_sizes *dcerpc_module_version(void)
return &critical_sizes;
}
-/*
- initialise the DCERPC subsystem
-*/
-NTSTATUS dcerpc_server_init(void)
-{
- NTSTATUS status;
-
- status = register_subsystem("dcerpc", dcerpc_register_ep_server);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- dcerpc_init_static_modules;
-
- DEBUG(3,("DCERPC subsystem version %d initialised\n", DCERPC_MODULE_VERSION));
- return NT_STATUS_OK;
-}
-
static const struct server_service_ops dcesrv_ops = {
.name = "rpc",
.service_init = dcesrv_init,
diff --git a/source4/rpc_server/dcom/remact.c b/source4/rpc_server/dcom/remact.c
index ce7c9c0c23..e133cb745d 100644
--- a/source4/rpc_server/dcom/remact.c
+++ b/source4/rpc_server/dcom/remact.c
@@ -75,14 +75,6 @@ static WERROR RemoteActivation(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
}
-static NTSTATUS register_dcom_class(const void *_c)
-{
- const struct dcom_class *class = _c;
- /* FIXME */
-
- return NT_STATUS_NOT_SUPPORTED;
-}
-
NTSTATUS dcerpc_server_dcom_init(void)
{
NTSTATUS status;
@@ -96,11 +88,6 @@ NTSTATUS dcerpc_server_dcom_init(void)
return status;
}
- status = register_subsystem("dcom", register_dcom_class);
- if (NT_STATUS_IS_ERR(status)) {
- return status;
- }
-
return NT_STATUS_OK;
}
diff --git a/source4/rpc_server/remote/dcesrv_remote.c b/source4/rpc_server/remote/dcesrv_remote.c
index fbd6f65a1a..957f5aa1b2 100644
--- a/source4/rpc_server/remote/dcesrv_remote.c
+++ b/source4/rpc_server/remote/dcesrv_remote.c
@@ -200,7 +200,7 @@ NTSTATUS dcerpc_server_remote_init(void)
ep_server.interface_by_name = remote_op_interface_by_name;
/* register ourselves with the DCERPC subsystem. */
- ret = register_backend("dcerpc", &ep_server);
+ ret = dcerpc_register_ep_server(&ep_server);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register 'remote' endpoint server!\n"));
return ret;
diff --git a/source4/smbd/config.mk b/source4/smbd/config.mk
index 52e8e69c30..df421326d8 100644
--- a/source4/smbd/config.mk
+++ b/source4/smbd/config.mk
@@ -43,7 +43,6 @@ REQUIRED_SUBSYSTEMS = \
#######################
# Start SUBSYSTEM SERVICE
[SUBSYSTEM::SERVER_SERVICE]
-INIT_FUNCTION = server_service_init
INIT_OBJ_FILES = \
smbd/service.o
REQUIRED_SUBSYSTEMS = \
diff --git a/source4/smbd/process_model.c b/source4/smbd/process_model.c
index 69e321e0c2..2a3efe2088 100644
--- a/source4/smbd/process_model.c
+++ b/source4/smbd/process_model.c
@@ -54,7 +54,7 @@ static int num_models;
The 'name' can be later used by other backends to find the operations
structure for this backend.
*/
-static NTSTATUS register_process_model(const void *_ops)
+NTSTATUS register_process_model(const void *_ops)
{
const struct model_ops *ops = _ops;
@@ -114,21 +114,3 @@ const struct process_model_critical_sizes *process_model_version(void)
return &critical_sizes;
}
-
-/*
- initialise the PROCESS_MODEL subsystem
-*/
-NTSTATUS process_model_init(void)
-{
- NTSTATUS status;
-
- status = register_subsystem("process_model", register_process_model);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- process_model_init_static_modules;
-
- DEBUG(3,("PROCESS subsystem version %d initialised\n", PROCESS_MODEL_VERSION));
- return NT_STATUS_OK;
-}
diff --git a/source4/smbd/process_model.mk b/source4/smbd/process_model.mk
index 70ccddd828..f110cbb8fa 100644
--- a/source4/smbd/process_model.mk
+++ b/source4/smbd/process_model.mk
@@ -34,7 +34,6 @@ REQUIRED_SUBSYSTEMS = EXT_LIB_PTHREAD
################################################
# Start SUBSYSTEM PROCESS_MODEL
[SUBSYSTEM::PROCESS_MODEL]
-INIT_FUNCTION = process_model_init
INIT_OBJ_FILES = \
smbd/process_model.o
#
diff --git a/source4/smbd/process_single.c b/source4/smbd/process_single.c
index 02d025b29c..da23470303 100644
--- a/source4/smbd/process_single.c
+++ b/source4/smbd/process_single.c
@@ -111,7 +111,7 @@ NTSTATUS process_model_single_init(void)
ops.get_id = single_get_id;
/* register ourselves with the PROCESS_MODEL subsystem. */
- ret = register_backend("process_model", &ops);
+ ret = register_process_model(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register process_model 'single'!\n"));
return ret;
diff --git a/source4/smbd/process_standard.c b/source4/smbd/process_standard.c
index c794605dc5..3612c6a7f4 100644
--- a/source4/smbd/process_standard.c
+++ b/source4/smbd/process_standard.c
@@ -148,7 +148,7 @@ NTSTATUS process_model_standard_init(void)
ops.get_id = standard_get_id;
/* register ourselves with the PROCESS_MODEL subsystem. */
- ret = register_backend("process_model", &ops);
+ ret = register_process_model(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register process_model 'standard'!\n"));
return ret;
diff --git a/source4/smbd/process_thread.c b/source4/smbd/process_thread.c
index 0eead7f33c..8e8ee23aaf 100644
--- a/source4/smbd/process_thread.c
+++ b/source4/smbd/process_thread.c
@@ -474,7 +474,7 @@ NTSTATUS process_model_thread_init(void)
ops.get_id = thread_get_id;
/* register ourselves with the PROCESS_MODEL subsystem. */
- ret = register_backend("process_model", &ops);
+ ret = register_process_model(&ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register process_model 'thread'!\n"));
return ret;
diff --git a/source4/smbd/service.c b/source4/smbd/service.c
index fdbd5d0c80..a15bf0105c 100644
--- a/source4/smbd/service.c
+++ b/source4/smbd/service.c
@@ -313,31 +313,12 @@ const struct server_service_ops *server_service_byname(const char *name)
return NULL;
}
-static NTSTATUS register_server_service_ops(const void *_ops)
+NTSTATUS register_server_service_ops(const void *_ops)
{
return NT_STATUS_NOT_IMPLEMENTED;
}
/*
- initialise the SERVER SERVICE subsystem
-*/
-NTSTATUS server_service_init(void)
-{
- NTSTATUS status;
-
- status = register_subsystem("service", register_server_service_ops);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- server_service_init_static_modules;
-
- DEBUG(3,("SERVER SERVICE subsystem version %d initialised\n", SERVER_SERVICE_VERSION));
- return NT_STATUS_OK;
-}
-
-
-/*
close all listening sockets. This is called by process models that fork, to
ensure that the listen sockets from the parent are closed
*/