mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
r12620: Get rid of automatically generated lists of init functions of subsystems.
This allows Samba libraries to be used by other projects (and parts of Samba to be built as shared libraries).
This commit is contained in:
parent
d0dc0ffa31
commit
44f0aba715
@ -943,9 +943,14 @@ const struct gensec_critical_sizes *gensec_interface_version(void)
|
||||
*/
|
||||
NTSTATUS gensec_init(void)
|
||||
{
|
||||
static BOOL initialized = False;
|
||||
|
||||
init_module_fn static_init[] = STATIC_GENSEC_MODULES;
|
||||
init_module_fn *shared_init = load_samba_modules(NULL, "gensec");
|
||||
|
||||
if (initialized) return NT_STATUS_OK;
|
||||
initialized = False;
|
||||
|
||||
run_init_functions(static_init);
|
||||
run_init_functions(shared_init);
|
||||
|
||||
|
@ -20,7 +20,6 @@ my $section_types = {
|
||||
"LDFLAGS" => "list",
|
||||
},
|
||||
"SUBSYSTEM" => {
|
||||
"INIT_FUNCTION" => "string",
|
||||
"OBJ_FILES" => "list",
|
||||
|
||||
"REQUIRED_SUBSYSTEMS" => "list",
|
||||
@ -64,7 +63,6 @@ my $section_types = {
|
||||
"MINOR_VERSION" => "string",
|
||||
"RELEASE_VERSION" => "string",
|
||||
|
||||
"INIT_FUNCTION" => "string",
|
||||
"OBJ_FILES" => "list",
|
||||
|
||||
"DESCRIPTION" => "string",
|
||||
|
@ -24,39 +24,8 @@ sub _prepare_smb_build_h($)
|
||||
{
|
||||
my $depend = shift;
|
||||
my @defines = ();
|
||||
my %declared = ();
|
||||
my $output = "";
|
||||
|
||||
#
|
||||
# loop over all binaries
|
||||
#
|
||||
foreach my $key (values %{$depend}) {
|
||||
next if ($key->{TYPE} ne "BINARY");
|
||||
|
||||
my $NAME = $key->{NAME};
|
||||
my $DEFINE = ();
|
||||
my $name = lc($NAME);
|
||||
|
||||
#
|
||||
# Static modules
|
||||
#
|
||||
$DEFINE->{COMMENT} = "BINARY $NAME INIT";
|
||||
$DEFINE->{KEY} = $name . "_init_subsystems";
|
||||
$DEFINE->{VAL} = "do { \\\n";
|
||||
foreach my $subkey (@{$key->{SUBSYSTEM_INIT_FUNCTIONS}}) {
|
||||
next if defined($declared{$subkey});
|
||||
$output .= "NTSTATUS $subkey(void);\n";
|
||||
$declared{$subkey} = 1;
|
||||
}
|
||||
|
||||
foreach my $subkey (@{$key->{SUBSYSTEM_INIT_FUNCTIONS}}) {
|
||||
$DEFINE->{VAL} .= "\t\tif (NT_STATUS_IS_ERR($subkey())) exit(1); \\\n";
|
||||
}
|
||||
$DEFINE->{VAL} .= "\t} while(0)";
|
||||
|
||||
push(@defines,$DEFINE);
|
||||
}
|
||||
|
||||
foreach my $key (values %{$depend}) {
|
||||
my $DEFINE = ();
|
||||
next if ($key->{TYPE} ne "LIBRARY" and $key->{TYPE} ne "SUBSYSTEM");
|
||||
|
@ -33,7 +33,7 @@
|
||||
#include "dlinklist.h"
|
||||
#include "system/readline.h"
|
||||
#include "pstring.h"
|
||||
#include "smb_build.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
|
||||
static struct smbcli_state *cli;
|
||||
static int port = 0;
|
||||
@ -3402,7 +3402,7 @@ static void remember_query_host(const char *arg,
|
||||
}
|
||||
}
|
||||
|
||||
smbclient_init_subsystems;
|
||||
gensec_init();
|
||||
|
||||
if(poptPeekArg(pc)) {
|
||||
pstrcpy(service,poptGetArg(pc));
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include "librpc/gen_ndr/ndr_mgmt.h"
|
||||
#include "gtk/common/gtk-smb.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
/*
|
||||
* Show:
|
||||
@ -461,7 +460,7 @@ static GtkWidget* create_mainwindow (void)
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
gepdump_init_subsystems;
|
||||
dcerpc_init();
|
||||
lp_load();
|
||||
setup_logging(argv[0], DEBUG_STDERR);
|
||||
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "includes.h"
|
||||
#include "lib/registry/registry.h"
|
||||
#include "gtk/common/gtk-smb.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
static GtkTreeStore *store_keys;
|
||||
static GtkListStore *store_vals;
|
||||
@ -964,8 +963,8 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
int ret;
|
||||
|
||||
gregedit_init_subsystems;
|
||||
registry_init();
|
||||
|
||||
lp_load();
|
||||
setup_logging(argv[0], DEBUG_STDERR);
|
||||
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "includes.h"
|
||||
#include "librpc/gen_ndr/ndr_atsvc.h"
|
||||
#include "gtk/common/gtk-smb.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
static struct dcerpc_pipe *at_pipe = NULL;
|
||||
static GtkWidget *mainwin;
|
||||
@ -489,10 +488,9 @@ static GtkWidget*create_new_job_dialog (void)
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
gwcrontab_init_subsystems;
|
||||
dcerpc_init();
|
||||
lp_load();
|
||||
setup_logging(argv[0], DEBUG_STDERR);
|
||||
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "librpc/gen_ndr/ndr_samr.h"
|
||||
#include "gtk/common/select.h"
|
||||
#include "gtk/common/gtk-smb.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
struct policy_handle sam_handle;
|
||||
struct dcerpc_pipe *sam_pipe = NULL;
|
||||
@ -398,11 +397,8 @@ static GtkWidget* create_mainwindow (void)
|
||||
return mainwin;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
gwsam_init_subsystems;
|
||||
lp_load();
|
||||
setup_logging(argv[0], DEBUG_STDERR);
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
[SUBSYSTEM::COM]
|
||||
INIT_FUNCTION = com_init
|
||||
OBJ_FILES = \
|
||||
tables.o \
|
||||
rot.o \
|
||||
|
@ -92,8 +92,15 @@ WERROR com_get_class_object(struct com_context *ctx, struct GUID *clsid, struct
|
||||
|
||||
NTSTATUS com_init(void)
|
||||
{
|
||||
init_module_fn static_init[] = STATIC_COM_MODULES;
|
||||
init_module_fn *shared_init = load_samba_modules(NULL, "com");
|
||||
static BOOL initialized = False;
|
||||
|
||||
init_module_fn static_init[] = STATIC_COM_MODULES;
|
||||
init_module_fn *shared_init;
|
||||
|
||||
if (initialized) return NT_STATUS_OK;
|
||||
initialized = True;
|
||||
|
||||
shared_init = load_samba_modules(NULL, "com");
|
||||
|
||||
run_init_functions(static_init);
|
||||
run_init_functions(shared_init);
|
||||
|
@ -28,7 +28,6 @@
|
||||
#include "ldb/tools/cmdline.h"
|
||||
#ifdef _SAMBA_BUILD_
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "smb_build.h"
|
||||
#include "auth/auth.h"
|
||||
#endif
|
||||
|
||||
@ -72,7 +71,8 @@ struct ldb_cmdline *ldb_cmdline_process(struct ldb_context *ldb, int argc, const
|
||||
};
|
||||
|
||||
#ifdef _SAMBA_BUILD_
|
||||
ldbsearch_init_subsystems;
|
||||
gensec_init();
|
||||
|
||||
r = ldb_register_samba_handlers(ldb);
|
||||
if (r != 0) {
|
||||
goto failed;
|
||||
|
@ -389,5 +389,6 @@ WERROR reg_open_remote(struct registry_context **ctx, struct cli_credentials *cr
|
||||
|
||||
NTSTATUS registry_rpc_init(void)
|
||||
{
|
||||
dcerpc_init();
|
||||
return registry_register(®_backend_rpc);
|
||||
}
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "includes.h"
|
||||
#include "lib/registry/registry.h"
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
@ -45,8 +44,6 @@ int main(int argc, char **argv)
|
||||
POPT_TABLEEND
|
||||
};
|
||||
|
||||
regdiff_init_subsystems;
|
||||
|
||||
registry_init();
|
||||
|
||||
pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "includes.h"
|
||||
#include "lib/registry/registry.h"
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
@ -41,8 +40,6 @@ int main(int argc, char **argv)
|
||||
POPT_TABLEEND
|
||||
};
|
||||
|
||||
regpatch_init_subsystems;
|
||||
|
||||
registry_init();
|
||||
|
||||
pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "lib/registry/registry.h"
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "system/time.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
/*
|
||||
* ck/cd - change key
|
||||
@ -415,8 +414,6 @@ static char **reg_completion(const char *text, int start, int end)
|
||||
POPT_TABLEEND
|
||||
};
|
||||
|
||||
regshell_init_subsystems;
|
||||
|
||||
registry_init();
|
||||
|
||||
pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "includes.h"
|
||||
#include "lib/registry/registry.h"
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
static void print_tree(int l, struct registry_key *p, int fullpath, int novals)
|
||||
{
|
||||
@ -98,8 +97,6 @@ int main(int argc, char **argv)
|
||||
POPT_TABLEEND
|
||||
};
|
||||
|
||||
regtree_init_subsystems;
|
||||
|
||||
registry_init();
|
||||
|
||||
pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
|
||||
|
@ -302,14 +302,9 @@ librpc/gen_ndr/tables.c: librpc/gen_ndr/ndr_*.h
|
||||
@$(PERL) librpc/tables.pl --output=librpc/gen_ndr/tables.c \
|
||||
librpc/gen_ndr/ndr_*.h
|
||||
|
||||
[SUBSYSTEM::NDR_IFACE_TABLE]
|
||||
NOPROTO = YES
|
||||
OBJ_FILES = gen_ndr/tables.o
|
||||
|
||||
[SUBSYSTEM::NDR_ALL]
|
||||
INIT_FUNCTION = dcerpc_table_init
|
||||
OBJ_FILES = rpc/table.o
|
||||
REQUIRED_SUBSYSTEMS = NDR_IFACE_TABLE NDR_AUDIOSRV NDR_ECHO NDR_DCERPC NDR_EXCHANGE \
|
||||
OBJ_FILES = rpc/table.o gen_ndr/tables.o
|
||||
REQUIRED_SUBSYSTEMS = NDR_AUDIOSRV NDR_ECHO NDR_DCERPC NDR_EXCHANGE \
|
||||
NDR_DSBACKUP NDR_EFS NDR_MISC NDR_LSA NDR_DFS NDR_DRSUAPI \
|
||||
NDR_POLICYAGENT NDR_UNIXINFO NDR_SAMR NDR_SPOOLSS NDR_WKSSVC NDR_SRVSVC NDR_ATSVC \
|
||||
NDR_EVENTLOG NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINS \
|
||||
|
@ -29,6 +29,13 @@
|
||||
#include "libcli/composite/composite.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
|
||||
NTSTATUS dcerpc_init(void)
|
||||
{
|
||||
gensec_init();
|
||||
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
static void dcerpc_ship_next_request(struct dcerpc_connection *c);
|
||||
|
||||
/* destroy a dcerpc connection */
|
||||
|
@ -82,6 +82,11 @@ print TABLEC <<EOF;
|
||||
|
||||
NTSTATUS dcerpc_table_init(void)
|
||||
{
|
||||
static BOOL initialized = False;
|
||||
|
||||
if (initialized) return NT_STATUS_OK;
|
||||
initialized = True;
|
||||
|
||||
$init_fns
|
||||
|
||||
return NT_STATUS_OK;
|
||||
|
@ -309,5 +309,8 @@ NTSTATUS dcerpc_server_remote_init(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* We need the full DCE/RPC interface table */
|
||||
dcerpc_table_init();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -367,6 +367,8 @@ done:
|
||||
*/
|
||||
int ejs_rpc_init(struct MprVar *obj, const char *name)
|
||||
{
|
||||
dcerpc_table_init();
|
||||
|
||||
mprSetStringCFunction(obj, "connect", ejs_rpc_connect);
|
||||
if (mprGetProperty(obj, "pipe_name", NULL) == NULL) {
|
||||
mprSetVar(obj, "pipe_name", mprString(name));
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "lib/appweb/ejs/ejs.h"
|
||||
#include "lib/appweb/ejs/ejsInternal.h"
|
||||
#include "scripting/ejs/smbcalls.h"
|
||||
#include "smb_build.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
|
||||
static EjsId eid;
|
||||
|
||||
@ -50,7 +50,7 @@ void ejs_exception(const char *reason)
|
||||
int exit_status, i;
|
||||
|
||||
fault_setup(argv[0]);
|
||||
smbscript_init_subsystems;
|
||||
gensec_init();
|
||||
mprSetCtx(mem_ctx);
|
||||
|
||||
lp_load();
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "registry/registry.h"
|
||||
#include "ntvfs/ntvfs.h"
|
||||
#include "ntptr/ntptr.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
|
||||
/*
|
||||
recursively delete a directory tree
|
||||
@ -217,7 +218,7 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
|
||||
exit(1);
|
||||
}
|
||||
|
||||
smbd_init_subsystems;
|
||||
gensec_init();
|
||||
|
||||
registry_init(); /* FIXME: maybe run this in the initialization function
|
||||
of the winreg RPC server instead? */
|
||||
|
@ -38,6 +38,8 @@ static BOOL test_readwrite(TALLOC_CTX *mem_ctx, const char *host)
|
||||
char test_data[5];
|
||||
int i;
|
||||
|
||||
com_init();
|
||||
|
||||
com_init_ctx(&ctx, NULL);
|
||||
dcom_client_init(ctx, cmdline_credentials);
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "request.h"
|
||||
#include "libcli/raw/libcliraw.h"
|
||||
#include "librpc/gen_ndr/ndr_security.h"
|
||||
#include "smb_build.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
|
||||
#define NSERVERS 2
|
||||
#define NINSTANCES 2
|
||||
@ -2234,7 +2234,7 @@ static void usage(void)
|
||||
}
|
||||
}
|
||||
|
||||
gentest_init_subsystems;
|
||||
gensec_init();
|
||||
|
||||
if (username_count == 0) {
|
||||
usage();
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "system/filesys.h"
|
||||
#include "system/time.h"
|
||||
#include "pstring.h"
|
||||
#include "smb_build.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
|
||||
static int numops = 1000;
|
||||
static BOOL showall;
|
||||
@ -550,7 +550,7 @@ static void usage(void)
|
||||
servers[1] = servers[0];
|
||||
}
|
||||
|
||||
locktest_init_subsystems;
|
||||
gensec_init();
|
||||
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "libcli/raw/libcliraw.h"
|
||||
#include "system/time.h"
|
||||
#include "pstring.h"
|
||||
#include "smb_build.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
|
||||
static struct cli_credentials *credentials;
|
||||
static BOOL showall = False;
|
||||
@ -353,7 +353,7 @@ static void usage(void)
|
||||
}
|
||||
}
|
||||
|
||||
masktest_init_subsystems;
|
||||
gensec_init();
|
||||
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include "system/wait.h"
|
||||
#include "system/filesys.h"
|
||||
#include "ioctl.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
int torture_nprocs=4;
|
||||
int torture_numops=10;
|
||||
@ -2609,7 +2608,7 @@ static void max_runtime_handler(int sig)
|
||||
alarm(max_runtime);
|
||||
}
|
||||
|
||||
smbtorture_init_subsystems;
|
||||
dcerpc_init();
|
||||
|
||||
dcerpc_table_init();
|
||||
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "system/iconv.h"
|
||||
#include "system/filesys.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
static const struct dcerpc_interface_call *find_function(
|
||||
const struct dcerpc_interface_table *p,
|
||||
|
@ -44,7 +44,6 @@
|
||||
#include "includes.h"
|
||||
#include "utils/net/net.h"
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
/*
|
||||
run a function from a function table. If not found then
|
||||
@ -186,7 +185,7 @@ static int binary_net(int argc, const char **argv)
|
||||
return net_usage(ctx, argc, argv);
|
||||
}
|
||||
|
||||
net_init_subsystems;
|
||||
dcerpc_init();
|
||||
|
||||
mem_ctx = talloc_init("net_context");
|
||||
ctx = talloc(mem_ctx, struct net_context);
|
||||
|
@ -27,7 +27,6 @@
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "auth/auth.h"
|
||||
#include "pstring.h"
|
||||
#include "smb_build.h"
|
||||
|
||||
#define SQUID_BUFFER_SIZE 2010
|
||||
|
||||
@ -931,8 +930,7 @@ int main(int argc, const char **argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
ntlm_auth_init_subsystems;
|
||||
|
||||
gensec_init();
|
||||
|
||||
if (opt_domain == NULL) {
|
||||
opt_domain = lp_workgroup();
|
||||
|
Loading…
Reference in New Issue
Block a user