mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
Revert making public of the samba-module library.
This library was tiny - containing just two public functions than were themselves trivial. The amount of overhead this causes isn't really worth the benefits of sharing the code with other projects like OpenChange. In addition, this code isn't really generically useful anyway, as it can only load from the module path set for Samba at configure time. Adding a new library was breaking the API/ABI anyway, so OpenChange had to be updated to cope with the new situation one way or another. I've added a simpler (compatible) routine for loading modules to OpenChange, which is less than 100 lines of code. Autobuild-User: Jelmer Vernooij <jelmer@samba.org> Autobuild-Date: Sat Dec 3 08:36:33 CET 2011 on sn-devel-104
This commit is contained in:
parent
d74b3f941f
commit
05bc4de083
@ -29,7 +29,7 @@
|
|||||||
#include "auth/gensec/gensec.h"
|
#include "auth/gensec/gensec.h"
|
||||||
#include "lib/param/param.h"
|
#include "lib/param/param.h"
|
||||||
#include "lib/util/tsort.h"
|
#include "lib/util/tsort.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/* the list of currently registered GENSEC backends */
|
/* the list of currently registered GENSEC backends */
|
||||||
static struct gensec_security_ops **generic_security_ops;
|
static struct gensec_security_ops **generic_security_ops;
|
||||||
@ -878,19 +878,19 @@ _PUBLIC_ NTSTATUS gensec_init(void)
|
|||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
#ifdef STATIC_gensec_MODULES
|
#ifdef STATIC_gensec_MODULES
|
||||||
STATIC_gensec_MODULES_PROTO;
|
STATIC_gensec_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_gensec_MODULES };
|
init_module_fn static_init[] = { STATIC_gensec_MODULES };
|
||||||
#else
|
#else
|
||||||
samba_module_init_fn *static_init = NULL;
|
init_module_fn *static_init = NULL;
|
||||||
#endif
|
#endif
|
||||||
samba_module_init_fn *shared_init;
|
init_module_fn *shared_init;
|
||||||
|
|
||||||
if (initialized) return NT_STATUS_OK;
|
if (initialized) return NT_STATUS_OK;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
shared_init = samba_module_init_fns_for_subsystem(NULL, "gensec");
|
shared_init = load_samba_modules(NULL, "gensec");
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
samba_module_init_fns_run(shared_init);
|
run_init_functions(shared_init);
|
||||||
|
|
||||||
talloc_free(shared_init);
|
talloc_free(shared_init);
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ bld.SAMBA_LIBRARY('gensec',
|
|||||||
source='gensec.c gensec_start.c',
|
source='gensec.c gensec_start.c',
|
||||||
pc_files='gensec.pc',
|
pc_files='gensec.pc',
|
||||||
autoproto='gensec_toplevel_proto.h',
|
autoproto='gensec_toplevel_proto.h',
|
||||||
public_deps='tevent-util samba-util errors LIBPACKET auth_system_session samba-module gensec_util',
|
public_deps='tevent-util samba-util errors LIBPACKET auth_system_session samba-modules gensec_util',
|
||||||
public_headers='gensec.h',
|
public_headers='gensec.h',
|
||||||
deps='com_err',
|
deps='com_err',
|
||||||
vnum='0.0.1'
|
vnum='0.0.1'
|
||||||
|
@ -390,7 +390,7 @@ def SAMBA_MODULE(bld, modname, source,
|
|||||||
includes='',
|
includes='',
|
||||||
subsystem=None,
|
subsystem=None,
|
||||||
init_function=None,
|
init_function=None,
|
||||||
module_init_name='samba_module_init',
|
module_init_name='samba_init_module',
|
||||||
autoproto=None,
|
autoproto=None,
|
||||||
autoproto_extra_source='',
|
autoproto_extra_source='',
|
||||||
cflags='',
|
cflags='',
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
samba_module_init_fns_for_subsystem: samba_module_init_fn *(TALLOC_CTX *, const char *)
|
|
||||||
samba_module_init_fns_run: bool (samba_module_init_fn *)
|
|
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
Unix SMB/CIFS implementation.
|
|
||||||
Handling of idle/exit events
|
|
||||||
Copyright (C) Stefan (metze) Metzmacher 2003
|
|
||||||
Copyright (C) Andrew Bartlett 2011
|
|
||||||
|
|
||||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INTERNAL_MODULES_H
|
|
||||||
#define _INTERNAL_MODULES_H
|
|
||||||
|
|
||||||
#include "lib/util/samba_module.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Obtain the init function from a shared library file.
|
|
||||||
*
|
|
||||||
* The handle to dlclose() in case of error is returns in *handle if handle is not NULL
|
|
||||||
*/
|
|
||||||
samba_module_init_fn load_module(const char *path, bool is_probe, void **handle);
|
|
||||||
|
|
||||||
int smb_load_modules(const char **modules);
|
|
||||||
NTSTATUS smb_probe_module(const char *subsystem, const char *module);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Obtain list of init functions from the modules in the specified
|
|
||||||
* directory
|
|
||||||
*/
|
|
||||||
samba_module_init_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path);
|
|
||||||
|
|
||||||
#endif /* _INTERNAL_MODULES_H */
|
|
@ -21,14 +21,14 @@
|
|||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
#include "dynconfig/dynconfig.h"
|
#include "dynconfig/dynconfig.h"
|
||||||
#include "lib/util/internal_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
#include "system/filesys.h"
|
#include "system/filesys.h"
|
||||||
#include "system/dir.h"
|
#include "system/dir.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain the init function from a shared library file
|
* Obtain the init function from a shared library file
|
||||||
*/
|
*/
|
||||||
samba_module_init_fn load_module(const char *path, bool is_probe, void **handle_out)
|
init_module_fn load_module(const char *path, bool is_probe, void **handle_out)
|
||||||
{
|
{
|
||||||
void *handle;
|
void *handle;
|
||||||
void *init_fn;
|
void *init_fn;
|
||||||
@ -57,7 +57,7 @@ samba_module_init_fn load_module(const char *path, bool is_probe, void **handle_
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
init_fn = (samba_module_init_fn)dlsym(handle, SAMBA_MODULE_INIT);
|
init_fn = (init_module_fn)dlsym(handle, SAMBA_INIT_MODULE);
|
||||||
|
|
||||||
/* we could check dlerror() to determine if it worked, because
|
/* we could check dlerror() to determine if it worked, because
|
||||||
dlsym() can validly return NULL, but what would we do with
|
dlsym() can validly return NULL, but what would we do with
|
||||||
@ -65,7 +65,7 @@ samba_module_init_fn load_module(const char *path, bool is_probe, void **handle_
|
|||||||
|
|
||||||
if (init_fn == NULL) {
|
if (init_fn == NULL) {
|
||||||
DEBUG(0, ("Unable to find %s() in %s: %s\n",
|
DEBUG(0, ("Unable to find %s() in %s: %s\n",
|
||||||
SAMBA_MODULE_INIT, path, dlerror()));
|
SAMBA_INIT_MODULE, path, dlerror()));
|
||||||
DEBUG(1, ("Loading module '%s' failed\n", path));
|
DEBUG(1, ("Loading module '%s' failed\n", path));
|
||||||
dlclose(handle);
|
dlclose(handle);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -75,20 +75,20 @@ samba_module_init_fn load_module(const char *path, bool is_probe, void **handle_
|
|||||||
*handle_out = handle;
|
*handle_out = handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (samba_module_init_fn)init_fn;
|
return (init_module_fn)init_fn;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain list of init functions from the modules in the specified
|
* Obtain list of init functions from the modules in the specified
|
||||||
* directory
|
* directory
|
||||||
*/
|
*/
|
||||||
samba_module_init_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path)
|
static init_module_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path)
|
||||||
{
|
{
|
||||||
DIR *dir;
|
DIR *dir;
|
||||||
struct dirent *entry;
|
struct dirent *entry;
|
||||||
char *filename;
|
char *filename;
|
||||||
int success = 0;
|
int success = 0;
|
||||||
samba_module_init_fn *ret = talloc_array(mem_ctx, samba_module_init_fn, 2);
|
init_module_fn *ret = talloc_array(mem_ctx, init_module_fn, 2);
|
||||||
|
|
||||||
ret[0] = NULL;
|
ret[0] = NULL;
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ samba_module_init_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path)
|
|||||||
|
|
||||||
ret[success] = load_module(filename, true, NULL);
|
ret[success] = load_module(filename, true, NULL);
|
||||||
if (ret[success]) {
|
if (ret[success]) {
|
||||||
ret = talloc_realloc(mem_ctx, ret, samba_module_init_fn, success+2);
|
ret = talloc_realloc(mem_ctx, ret, init_module_fn, success+2);
|
||||||
success++;
|
success++;
|
||||||
ret[success] = NULL;
|
ret[success] = NULL;
|
||||||
}
|
}
|
||||||
@ -119,13 +119,50 @@ samba_module_init_fn *load_modules(TALLOC_CTX *mem_ctx, const char *path)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run the specified init functions.
|
||||||
|
*
|
||||||
|
* @return true if all functions ran successfully, false otherwise
|
||||||
|
*/
|
||||||
|
bool run_init_functions(init_module_fn *fns)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
bool ret = true;
|
||||||
|
|
||||||
|
if (fns == NULL)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
for (i = 0; fns[i]; i++) { ret &= (bool)NT_STATUS_IS_OK(fns[i]()); }
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load the initialization functions from DSO files for a specific subsystem.
|
||||||
|
*
|
||||||
|
* Will return an array of function pointers to initialization functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, const char *subsystem)
|
||||||
|
{
|
||||||
|
char *path = modules_path(mem_ctx, subsystem);
|
||||||
|
init_module_fn *ret;
|
||||||
|
|
||||||
|
ret = load_modules(mem_ctx, path);
|
||||||
|
|
||||||
|
talloc_free(path);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Load a dynamic module. Only log a level 0 error if we are not checking
|
/* Load a dynamic module. Only log a level 0 error if we are not checking
|
||||||
for the existence of a module (probling). */
|
for the existence of a module (probling). */
|
||||||
|
|
||||||
static NTSTATUS do_smb_load_module(const char *module_name, bool is_probe)
|
static NTSTATUS do_smb_load_module(const char *module_name, bool is_probe)
|
||||||
{
|
{
|
||||||
void *handle;
|
void *handle;
|
||||||
samba_module_init_fn init;
|
init_module_fn init;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
|
|
||||||
init = load_module(module_name, is_probe, &handle);
|
init = load_module(module_name, is_probe, &handle);
|
@ -1,11 +0,0 @@
|
|||||||
prefix=@prefix@
|
|
||||||
exec_prefix=@exec_prefix@
|
|
||||||
libdir=@libdir@
|
|
||||||
includedir=@includedir@
|
|
||||||
|
|
||||||
Name: samba-modules
|
|
||||||
Description: Samba module loading utility functions
|
|
||||||
Requires: talloc
|
|
||||||
Version: 0.0.1
|
|
||||||
Libs: @LIB_RPATH@ -L${libdir} -lsamba-modules
|
|
||||||
Cflags: -I${includedir} -DHAVE_IMMEDIATE_STRUCTURES=1
|
|
@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
Unix SMB/CIFS implementation.
|
|
||||||
Samba utility functions
|
|
||||||
Copyright (C) Jelmer Vernooij 2002-2003,2005-2007
|
|
||||||
Copyright (C) Stefan (metze) Metzmacher 2003
|
|
||||||
Copyright (C) Andrew Bartlett 2011
|
|
||||||
|
|
||||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "includes.h"
|
|
||||||
#include "dynconfig/dynconfig.h"
|
|
||||||
#include "lib/util/internal_module.h"
|
|
||||||
#include "system/filesys.h"
|
|
||||||
#include "system/dir.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Run the specified init functions.
|
|
||||||
*
|
|
||||||
* @return true if all functions ran successfully, false otherwise
|
|
||||||
*/
|
|
||||||
bool samba_module_init_fns_run(samba_module_init_fn *fns)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
bool ret = true;
|
|
||||||
|
|
||||||
if (fns == NULL)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
for (i = 0; fns[i]; i++) { ret &= (bool)NT_STATUS_IS_OK(fns[i]()); }
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load the initialization functions from DSO files for a specific subsystem.
|
|
||||||
*
|
|
||||||
* Will return an array of function pointers to initialization functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
samba_module_init_fn *samba_module_init_fns_for_subsystem(TALLOC_CTX *mem_ctx, const char *subsystem)
|
|
||||||
{
|
|
||||||
char *path = modules_path(mem_ctx, subsystem);
|
|
||||||
samba_module_init_fn *ret;
|
|
||||||
|
|
||||||
ret = load_modules(mem_ctx, path);
|
|
||||||
|
|
||||||
talloc_free(path);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
@ -22,28 +22,38 @@
|
|||||||
#define _SAMBA_MODULES_H
|
#define _SAMBA_MODULES_H
|
||||||
|
|
||||||
/* Module support */
|
/* Module support */
|
||||||
typedef NTSTATUS (*samba_module_init_fn) (void);
|
typedef NTSTATUS (*init_module_fn) (void);
|
||||||
|
|
||||||
NTSTATUS samba_module_init(void);
|
NTSTATUS samba_init_module(void);
|
||||||
|
|
||||||
/* this needs to be a string which is not in the C library. We
|
/* this needs to be a string which is not in the C library. We
|
||||||
previously used "init_module", but that meant that modules which
|
previously used "init_module", but that meant that modules which
|
||||||
did not define this function ended up calling the C library
|
did not define this function ended up calling the C library
|
||||||
function init_module() which makes a system call */
|
function init_module() which makes a system call */
|
||||||
#define SAMBA_MODULE_INIT "samba_module_init"
|
#define SAMBA_INIT_MODULE "samba_init_module"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the init function from a shared library file.
|
||||||
|
*
|
||||||
|
* The handle to dlclose() in case of error is returns in *handle if handle is not NULL
|
||||||
|
*/
|
||||||
|
init_module_fn load_module(const char *path, bool is_probe, void **handle);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Run the specified init functions.
|
* Run the specified init functions.
|
||||||
*
|
*
|
||||||
* @return true if all functions ran successfully, false otherwise
|
* @return true if all functions ran successfully, false otherwise
|
||||||
*/
|
*/
|
||||||
bool samba_module_init_fns_run(samba_module_init_fn *fns);
|
bool run_init_functions(init_module_fn *fns);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load the initialization functions from DSO files for a specific subsystem.
|
* Load the initialization functions from DSO files for a specific subsystem.
|
||||||
*
|
*
|
||||||
* Will return an array of function pointers to initialization functions
|
* Will return an array of function pointers to initialization functions
|
||||||
*/
|
*/
|
||||||
samba_module_init_fn *samba_module_init_fns_for_subsystem(TALLOC_CTX *mem_ctx, const char *subsystem);
|
init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, const char *subsystem);
|
||||||
|
|
||||||
|
int smb_load_modules(const char **modules);
|
||||||
|
NTSTATUS smb_probe_module(const char *subsystem, const char *module);
|
||||||
|
|
||||||
#endif /* _SAMBA_MODULES_H */
|
#endif /* _SAMBA_MODULES_H */
|
@ -17,21 +17,11 @@ bld.SAMBA_LIBRARY('samba-util',
|
|||||||
pc_files='samba-util.pc'
|
pc_files='samba-util.pc'
|
||||||
)
|
)
|
||||||
|
|
||||||
bld.SAMBA_LIBRARY('samba-module',
|
bld.SAMBA_LIBRARY('samba-modules',
|
||||||
source='samba_module.c',
|
source='modules.c',
|
||||||
deps='errors samba-util samba-internal-module',
|
|
||||||
local_include=False,
|
|
||||||
public_headers='samba_module.h',
|
|
||||||
vnum='0.0.1',
|
|
||||||
abi_directory='ABI',
|
|
||||||
abi_match='samba_module_*',
|
|
||||||
pc_files='samba-module.pc')
|
|
||||||
|
|
||||||
bld.SAMBA_LIBRARY('samba-internal-module',
|
|
||||||
source='internal_module.c',
|
|
||||||
deps='errors samba-util',
|
deps='errors samba-util',
|
||||||
local_include=False,
|
local_include=False,
|
||||||
private_library=True)
|
private_library=True)
|
||||||
|
|
||||||
bld.SAMBA_LIBRARY('asn1util',
|
bld.SAMBA_LIBRARY('asn1util',
|
||||||
source='asn1.c',
|
source='asn1.c',
|
||||||
|
@ -470,7 +470,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) $(LIBTSOCKET_OBJ) \
|
|||||||
../lib/util/charset/charset_macosxfs.o intl/lang_tdb.o \
|
../lib/util/charset/charset_macosxfs.o intl/lang_tdb.o \
|
||||||
lib/conn_tdb.o lib/adt_tree.o lib/gencache.o \
|
lib/conn_tdb.o lib/adt_tree.o lib/gencache.o \
|
||||||
lib/sessionid_tdb.o \
|
lib/sessionid_tdb.o \
|
||||||
../lib/util/internal_module.o ../lib/util/samba_module.o lib/events.o @LIBTEVENT_OBJ0@ \
|
../lib/util/modules.o lib/events.o @LIBTEVENT_OBJ0@ \
|
||||||
@CCAN_OBJ@ \
|
@CCAN_OBJ@ \
|
||||||
lib/server_contexts.o \
|
lib/server_contexts.o \
|
||||||
lib/server_prefork.o \
|
lib/server_prefork.o \
|
||||||
|
@ -1 +1 @@
|
|||||||
_samba_module_init
|
_samba_init_module
|
||||||
|
@ -524,7 +524,7 @@ typedef char fstring[FSTRING_LEN];
|
|||||||
#include "smb.h"
|
#include "smb.h"
|
||||||
#include "../lib/util/byteorder.h"
|
#include "../lib/util/byteorder.h"
|
||||||
|
|
||||||
#include "../lib/util/internal_module.h"
|
#include "../lib/util/samba_modules.h"
|
||||||
#include "../lib/util/talloc_stack.h"
|
#include "../lib/util/talloc_stack.h"
|
||||||
#include "../lib/util/smb_threads.h"
|
#include "../lib/util/smb_threads.h"
|
||||||
#include "../lib/util/smb_threads_internal.h"
|
#include "../lib/util/smb_threads_internal.h"
|
||||||
|
2
source3/m4/aclocal.m4
vendored
2
source3/m4/aclocal.m4
vendored
@ -25,7 +25,7 @@ AC_DEFUN(SMB_MODULE,
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test x"$DEST" = xSHARED; then
|
if test x"$DEST" = xSHARED; then
|
||||||
AC_DEFINE([$1][_init], [samba_module_init], [Whether to build $1 as shared module])
|
AC_DEFINE([$1][_init], [samba_init_module], [Whether to build $1 as shared module])
|
||||||
$4_MODULES="$$4_MODULES $3"
|
$4_MODULES="$$4_MODULES $3"
|
||||||
AC_MSG_RESULT([shared])
|
AC_MSG_RESULT([shared])
|
||||||
[$6]
|
[$6]
|
||||||
|
@ -381,7 +381,7 @@ static struct smb_perfcount_handlers perfcount_test_handlers = {
|
|||||||
perfcount_test_end
|
perfcount_test_end
|
||||||
};
|
};
|
||||||
|
|
||||||
NTSTATUS samba_module_init(void)
|
NTSTATUS samba_init_module(void)
|
||||||
{
|
{
|
||||||
return smb_register_perfcounter(SMB_PERFCOUNTER_INTERFACE_VERSION,
|
return smb_register_perfcounter(SMB_PERFCOUNTER_INTERFACE_VERSION,
|
||||||
"pc_test", &perfcount_test_handlers);
|
"pc_test", &perfcount_test_handlers);
|
||||||
|
@ -1094,7 +1094,7 @@ static struct nss_info_methods nss_sfu20_methods = {
|
|||||||
Initialize the plugins
|
Initialize the plugins
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
NTSTATUS samba_module_init(void)
|
NTSTATUS samba_init_module(void)
|
||||||
{
|
{
|
||||||
static NTSTATUS status_idmap_ad = NT_STATUS_UNSUCCESSFUL;
|
static NTSTATUS status_idmap_ad = NT_STATUS_UNSUCCESSFUL;
|
||||||
static NTSTATUS status_nss_rfc2307 = NT_STATUS_UNSUCCESSFUL;
|
static NTSTATUS status_nss_rfc2307 = NT_STATUS_UNSUCCESSFUL;
|
||||||
|
@ -383,7 +383,7 @@ static struct nss_info_methods adex_nss_methods = {
|
|||||||
against the idmap and nss_info interfaces being in a half-registered
|
against the idmap and nss_info interfaces being in a half-registered
|
||||||
state.
|
state.
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
NTSTATUS samba_module_init(void)
|
NTSTATUS samba_init_module(void)
|
||||||
{
|
{
|
||||||
static NTSTATUS idmap_status = NT_STATUS_UNSUCCESSFUL;
|
static NTSTATUS idmap_status = NT_STATUS_UNSUCCESSFUL;
|
||||||
static NTSTATUS nss_status = NT_STATUS_UNSUCCESSFUL;
|
static NTSTATUS nss_status = NT_STATUS_UNSUCCESSFUL;
|
||||||
|
@ -668,7 +668,7 @@ static struct idmap_methods autorid_methods = {
|
|||||||
.allocate_id = idmap_autorid_allocate_id
|
.allocate_id = idmap_autorid_allocate_id
|
||||||
};
|
};
|
||||||
|
|
||||||
NTSTATUS samba_module_init(void)
|
NTSTATUS samba_init_module(void)
|
||||||
{
|
{
|
||||||
return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION,
|
return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION,
|
||||||
"autorid", &autorid_methods);
|
"autorid", &autorid_methods);
|
||||||
|
@ -366,7 +366,7 @@ static struct nss_info_methods hash_nss_methods = {
|
|||||||
state.
|
state.
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
NTSTATUS samba_module_init(void)
|
NTSTATUS samba_init_module(void)
|
||||||
{
|
{
|
||||||
static NTSTATUS idmap_status = NT_STATUS_UNSUCCESSFUL;
|
static NTSTATUS idmap_status = NT_STATUS_UNSUCCESSFUL;
|
||||||
static NTSTATUS nss_status = NT_STATUS_UNSUCCESSFUL;
|
static NTSTATUS nss_status = NT_STATUS_UNSUCCESSFUL;
|
||||||
|
@ -187,7 +187,7 @@ static struct idmap_methods rid_methods = {
|
|||||||
.sids_to_unixids = idmap_rid_sids_to_unixids,
|
.sids_to_unixids = idmap_rid_sids_to_unixids,
|
||||||
};
|
};
|
||||||
|
|
||||||
NTSTATUS samba_module_init(void)
|
NTSTATUS samba_init_module(void)
|
||||||
{
|
{
|
||||||
return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "rid", &rid_methods);
|
return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "rid", &rid_methods);
|
||||||
}
|
}
|
||||||
|
@ -874,7 +874,7 @@ static struct idmap_methods db_methods = {
|
|||||||
.allocate_id = idmap_tdb2_get_new_id
|
.allocate_id = idmap_tdb2_get_new_id
|
||||||
};
|
};
|
||||||
|
|
||||||
NTSTATUS samba_module_init(void)
|
NTSTATUS samba_init_module(void)
|
||||||
{
|
{
|
||||||
return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "tdb2", &db_methods);
|
return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "tdb2", &db_methods);
|
||||||
}
|
}
|
||||||
|
@ -1747,7 +1747,7 @@ main() {
|
|||||||
conf.DEFINE('static_init_%s' % p, '{}')
|
conf.DEFINE('static_init_%s' % p, '{}')
|
||||||
if p in shared_list:
|
if p in shared_list:
|
||||||
for entry in shared_list[p]:
|
for entry in shared_list[p]:
|
||||||
conf.DEFINE('%s_init' % entry, 'samba_module_init')
|
conf.DEFINE('%s_init' % entry, 'samba_init_module')
|
||||||
conf.env[shared_env].append('%s' % entry)
|
conf.env[shared_env].append('%s' % entry)
|
||||||
|
|
||||||
conf.SAMBA_CONFIG_H('include/config.h')
|
conf.SAMBA_CONFIG_H('include/config.h')
|
||||||
|
@ -798,7 +798,7 @@ bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
|
|||||||
|
|
||||||
bld.SAMBA3_SUBSYSTEM('samba3core',
|
bld.SAMBA3_SUBSYSTEM('samba3core',
|
||||||
source=LIB_SRC,
|
source=LIB_SRC,
|
||||||
deps='LIBTSOCKET LIBCRYPTO ndr security NDR_SECURITY samba-util NDR_MESSAGING LIBASYNC_REQ tdb-wrap3 UTIL_TDB UTIL_PW SAMBA_VERSION KRB5_WRAP flag_mapping util_reg PTHREADPOOL interfaces cap string_init param util_str CHARSET3 namearray dbwrap util_sec util_malloc memcache ccan errors3 samba-module samba-internal-module',
|
deps='LIBTSOCKET LIBCRYPTO ndr security NDR_SECURITY samba-util NDR_MESSAGING LIBASYNC_REQ tdb-wrap3 UTIL_TDB UTIL_PW SAMBA_VERSION KRB5_WRAP flag_mapping util_reg PTHREADPOOL interfaces cap string_init param util_str CHARSET3 namearray dbwrap util_sec util_malloc memcache ccan errors3 samba-modules',
|
||||||
vars=locals())
|
vars=locals())
|
||||||
|
|
||||||
bld.SAMBA3_LIBRARY('smbd_shim',
|
bld.SAMBA3_LIBRARY('smbd_shim',
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "dsdb/samdb/samdb.h"
|
#include "dsdb/samdb/samdb.h"
|
||||||
#include "libcli/wbclient/wbclient.h"
|
#include "libcli/wbclient/wbclient.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
Set a fixed challenge
|
Set a fixed challenge
|
||||||
@ -660,12 +660,12 @@ _PUBLIC_ NTSTATUS auth4_init(void)
|
|||||||
static bool initialized = false;
|
static bool initialized = false;
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_auth4_MODULES_PROTO;
|
STATIC_auth4_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_auth4_MODULES };
|
init_module_fn static_init[] = { STATIC_auth4_MODULES };
|
||||||
|
|
||||||
if (initialized) return NT_STATUS_OK;
|
if (initialized) return NT_STATUS_OK;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
|
|
||||||
return NT_STATUS_OK;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ bld.SAMBA_MODULE('auth4_unix',
|
|||||||
bld.SAMBA_LIBRARY('auth4',
|
bld.SAMBA_LIBRARY('auth4',
|
||||||
source='auth.c auth_util.c auth_simple.c',
|
source='auth.c auth_util.c auth_simple.c',
|
||||||
autoproto='auth_proto.h',
|
autoproto='auth_proto.h',
|
||||||
deps='samba-util security samdb samba-credentials tevent-util LIBWBCLIENT_OLD auth_unix_token samba-module',
|
deps='samba-util security samdb samba-credentials tevent-util LIBWBCLIENT_OLD auth_unix_token samba-modules',
|
||||||
private_library=True
|
private_library=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
#include "ntptr/ntptr.h"
|
#include "ntptr/ntptr.h"
|
||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/* the list of currently registered NTPTR backends */
|
/* the list of currently registered NTPTR backends */
|
||||||
static struct ntptr_backend {
|
static struct ntptr_backend {
|
||||||
@ -73,11 +73,11 @@ NTSTATUS ntptr_init(void)
|
|||||||
{
|
{
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_ntptr_MODULES_PROTO;
|
STATIC_ntptr_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_ntptr_MODULES };
|
init_module_fn static_init[] = { STATIC_ntptr_MODULES };
|
||||||
samba_module_init_fn *shared_init = samba_module_init_fns_for_subsystem(NULL, "ntptr");
|
init_module_fn *shared_init = load_samba_modules(NULL, "ntptr");
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
samba_module_init_fns_run(shared_init);
|
run_init_functions(shared_init);
|
||||||
|
|
||||||
talloc_free(shared_init);
|
talloc_free(shared_init);
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include "../lib/util/dlinklist.h"
|
#include "../lib/util/dlinklist.h"
|
||||||
#include "ntvfs/ntvfs.h"
|
#include "ntvfs/ntvfs.h"
|
||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/* the list of currently registered NTVFS backends, note that there
|
/* the list of currently registered NTVFS backends, note that there
|
||||||
* can be more than one backend with the same name, as long as they
|
* can be more than one backend with the same name, as long as they
|
||||||
@ -230,16 +230,16 @@ NTSTATUS ntvfs_init(struct loadparm_context *lp_ctx)
|
|||||||
static bool initialized = false;
|
static bool initialized = false;
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_ntvfs_MODULES_PROTO;
|
STATIC_ntvfs_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_ntvfs_MODULES };
|
init_module_fn static_init[] = { STATIC_ntvfs_MODULES };
|
||||||
samba_module_init_fn *shared_init;
|
init_module_fn *shared_init;
|
||||||
|
|
||||||
if (initialized) return NT_STATUS_OK;
|
if (initialized) return NT_STATUS_OK;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
shared_init = samba_module_init_fns_for_subsystem(NULL, "ntvfs");
|
shared_init = load_samba_modules(NULL, "ntvfs");
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
samba_module_init_fns_run(shared_init);
|
run_init_functions(shared_init);
|
||||||
|
|
||||||
talloc_free(shared_init);
|
talloc_free(shared_init);
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include "libcli/security/security.h"
|
#include "libcli/security/security.h"
|
||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "../lib/util/unix_privs.h"
|
#include "../lib/util/unix_privs.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/* the list of currently registered ACL backends */
|
/* the list of currently registered ACL backends */
|
||||||
static struct pvfs_acl_backend {
|
static struct pvfs_acl_backend {
|
||||||
@ -87,16 +87,16 @@ NTSTATUS pvfs_acl_init(void)
|
|||||||
static bool initialized = false;
|
static bool initialized = false;
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_pvfs_acl_MODULES_PROTO;
|
STATIC_pvfs_acl_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_pvfs_acl_MODULES };
|
init_module_fn static_init[] = { STATIC_pvfs_acl_MODULES };
|
||||||
samba_module_init_fn *shared_init;
|
init_module_fn *shared_init;
|
||||||
|
|
||||||
if (initialized) return NT_STATUS_OK;
|
if (initialized) return NT_STATUS_OK;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
shared_init = samba_module_init_fns_for_subsystem(NULL, "pvfs_acl");
|
shared_init = load_samba_modules(NULL, "pvfs_acl");
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
samba_module_init_fns_run(shared_init);
|
run_init_functions(shared_init);
|
||||||
|
|
||||||
talloc_free(shared_init);
|
talloc_free(shared_init);
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
bld.SAMBA_SUBSYSTEM('pvfs_acl',
|
bld.SAMBA_SUBSYSTEM('pvfs_acl',
|
||||||
source='pvfs_acl.c',
|
source='pvfs_acl.c',
|
||||||
autoproto='vfs_acl_proto.h',
|
autoproto='vfs_acl_proto.h',
|
||||||
deps='events samba-module',
|
deps='events samba-modules',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include "ntvfs/sysdep/sys_lease.h"
|
#include "ntvfs/sysdep/sys_lease.h"
|
||||||
#include "../lib/util/dlinklist.h"
|
#include "../lib/util/dlinklist.h"
|
||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/* list of registered backends */
|
/* list of registered backends */
|
||||||
static struct sys_lease_ops *backends;
|
static struct sys_lease_ops *backends;
|
||||||
@ -113,12 +113,12 @@ _PUBLIC_ NTSTATUS sys_lease_init(void)
|
|||||||
static bool initialized = false;
|
static bool initialized = false;
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_sys_lease_MODULES_PROTO;
|
STATIC_sys_lease_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_sys_lease_MODULES };
|
init_module_fn static_init[] = { STATIC_sys_lease_MODULES };
|
||||||
|
|
||||||
if (initialized) return NT_STATUS_OK;
|
if (initialized) return NT_STATUS_OK;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
|
|
||||||
return NT_STATUS_OK;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include <tevent.h>
|
#include <tevent.h>
|
||||||
#include "../lib/util/dlinklist.h"
|
#include "../lib/util/dlinklist.h"
|
||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/* list of registered backends */
|
/* list of registered backends */
|
||||||
static struct sys_notify_backend *backends;
|
static struct sys_notify_backend *backends;
|
||||||
@ -137,12 +137,12 @@ _PUBLIC_ NTSTATUS sys_notify_init(void)
|
|||||||
static bool initialized = false;
|
static bool initialized = false;
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_sys_notify_MODULES_PROTO;
|
STATIC_sys_notify_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_sys_notify_MODULES };
|
init_module_fn static_init[] = { STATIC_sys_notify_MODULES };
|
||||||
|
|
||||||
if (initialized) return NT_STATUS_OK;
|
if (initialized) return NT_STATUS_OK;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
|
|
||||||
return NT_STATUS_OK;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ bld.SAMBA_MODULE('ntvfs_nbench',
|
|||||||
bld.SAMBA_LIBRARY('ntvfs',
|
bld.SAMBA_LIBRARY('ntvfs',
|
||||||
source='ntvfs_base.c ntvfs_generic.c ntvfs_interface.c ntvfs_util.c',
|
source='ntvfs_base.c ntvfs_generic.c ntvfs_interface.c ntvfs_util.c',
|
||||||
autoproto='ntvfs_proto.h',
|
autoproto='ntvfs_proto.h',
|
||||||
deps='tevent samba-module',
|
deps='tevent samba-modules',
|
||||||
private_library=True
|
private_library=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
#include "param/share.h"
|
#include "param/share.h"
|
||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
const char *share_string_option(struct share_config *scfg, const char *opt_name, const char *defval)
|
const char *share_string_option(struct share_config *scfg, const char *opt_name, const char *defval)
|
||||||
{
|
{
|
||||||
@ -149,9 +149,9 @@ NTSTATUS share_init(void)
|
|||||||
{
|
{
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_share_MODULES_PROTO;
|
STATIC_share_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_share_MODULES };
|
init_module_fn static_init[] = { STATIC_share_MODULES };
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
|
|
||||||
return NT_STATUS_OK;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ bld.SAMBA_SUBSYSTEM('PROVISION',
|
|||||||
bld.SAMBA_SUBSYSTEM('share',
|
bld.SAMBA_SUBSYSTEM('share',
|
||||||
source='share.c',
|
source='share.c',
|
||||||
public_headers='share.h',
|
public_headers='share.h',
|
||||||
deps='samba-util samba-module'
|
deps='samba-util samba-modules'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
#include "smbd/process_model.h"
|
#include "smbd/process_model.h"
|
||||||
#include "lib/messaging/irpc.h"
|
#include "lib/messaging/irpc.h"
|
||||||
#include "librpc/rpc/rpc_common.h"
|
#include "librpc/rpc/rpc_common.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/* this is only used when the client asks for an unknown interface */
|
/* this is only used when the client asks for an unknown interface */
|
||||||
#define DUMMY_ASSOC_GROUP 0x0FFFFFFF
|
#define DUMMY_ASSOC_GROUP 0x0FFFFFFF
|
||||||
@ -1228,18 +1228,18 @@ void dcerpc_server_init(struct loadparm_context *lp_ctx)
|
|||||||
static bool initialized;
|
static bool initialized;
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_dcerpc_server_MODULES_PROTO;
|
STATIC_dcerpc_server_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_dcerpc_server_MODULES };
|
init_module_fn static_init[] = { STATIC_dcerpc_server_MODULES };
|
||||||
samba_module_init_fn *shared_init;
|
init_module_fn *shared_init;
|
||||||
|
|
||||||
if (initialized) {
|
if (initialized) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
shared_init = samba_module_init_fns_for_subsystem(NULL, "dcerpc_server");
|
shared_init = load_samba_modules(NULL, "dcerpc_server");
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
samba_module_init_fns_run(shared_init);
|
run_init_functions(shared_init);
|
||||||
|
|
||||||
talloc_free(shared_init);
|
talloc_free(shared_init);
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
#include "smbd/process_model.h"
|
#include "smbd/process_model.h"
|
||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/* the list of currently registered process models */
|
/* the list of currently registered process models */
|
||||||
static struct process_model {
|
static struct process_model {
|
||||||
@ -103,8 +103,8 @@ _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(void);
|
||||||
STATIC_process_model_MODULES_PROTO;
|
STATIC_process_model_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_process_model_MODULES };
|
init_module_fn static_init[] = { STATIC_process_model_MODULES };
|
||||||
samba_module_init_fn *shared_init;
|
init_module_fn *shared_init;
|
||||||
static bool initialised;
|
static bool initialised;
|
||||||
|
|
||||||
if (initialised) {
|
if (initialised) {
|
||||||
@ -112,10 +112,10 @@ _PUBLIC_ NTSTATUS process_model_init(struct loadparm_context *lp_ctx)
|
|||||||
}
|
}
|
||||||
initialised = true;
|
initialised = true;
|
||||||
|
|
||||||
shared_init = samba_module_init_fns_for_subsystem(NULL, "process_model");
|
shared_init = load_samba_modules(NULL, "process_model");
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
samba_module_init_fns_run(shared_init);
|
run_init_functions(shared_init);
|
||||||
|
|
||||||
talloc_free(shared_init);
|
talloc_free(shared_init);
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
#include "librpc/gen_ndr/ndr_irpc.h"
|
#include "librpc/gen_ndr/ndr_irpc.h"
|
||||||
#include "cluster/cluster.h"
|
#include "cluster/cluster.h"
|
||||||
#include "dynconfig/dynconfig.h"
|
#include "dynconfig/dynconfig.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
recursively delete a directory tree
|
recursively delete a directory tree
|
||||||
@ -292,8 +292,8 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
|
|||||||
poptContext pc;
|
poptContext pc;
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_service_MODULES_PROTO;
|
STATIC_service_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_service_MODULES };
|
init_module_fn static_init[] = { STATIC_service_MODULES };
|
||||||
samba_module_init_fn *shared_init;
|
init_module_fn *shared_init;
|
||||||
struct tevent_context *event_ctx;
|
struct tevent_context *event_ctx;
|
||||||
uint16_t stdin_event_flags;
|
uint16_t stdin_event_flags;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
@ -409,10 +409,10 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
|
|||||||
|
|
||||||
process_model_init(cmdline_lp_ctx);
|
process_model_init(cmdline_lp_ctx);
|
||||||
|
|
||||||
shared_init = samba_module_init_fns_for_subsystem(NULL, "service");
|
shared_init = load_samba_modules(NULL, "service");
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
samba_module_init_fns_run(shared_init);
|
run_init_functions(shared_init);
|
||||||
|
|
||||||
talloc_free(shared_init);
|
talloc_free(shared_init);
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ bld.SAMBA_MODULE('process_model_onefork',
|
|||||||
bld.SAMBA_LIBRARY('process_model',
|
bld.SAMBA_LIBRARY('process_model',
|
||||||
source='process_model.c',
|
source='process_model.c',
|
||||||
autoproto='process_model_proto.h',
|
autoproto='process_model_proto.h',
|
||||||
deps='samba-util samba-hostconfig samba-module',
|
deps='samba-util samba-hostconfig samba-modules',
|
||||||
private_library=True
|
private_library=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
#include "librpc/rpc/dcerpc.h"
|
#include "librpc/rpc/dcerpc.h"
|
||||||
#include "auth/gensec/gensec.h"
|
#include "auth/gensec/gensec.h"
|
||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "lib/util/internal_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
#if HAVE_READLINE_HISTORY_H
|
#if HAVE_READLINE_HISTORY_H
|
||||||
#include <readline/history.h>
|
#include <readline/history.h>
|
||||||
@ -602,7 +602,7 @@ int main(int argc,char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (extra_module != NULL) {
|
if (extra_module != NULL) {
|
||||||
samba_module_init_fn fn = load_module(poptGetOptArg(pc), false, NULL);
|
init_module_fn fn = load_module(poptGetOptArg(pc), false, NULL);
|
||||||
|
|
||||||
if (fn == NULL)
|
if (fn == NULL)
|
||||||
d_printf("Unable to load module from %s\n", poptGetOptArg(pc));
|
d_printf("Unable to load module from %s\n", poptGetOptArg(pc));
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "param/param.h"
|
#include "param/param.h"
|
||||||
#include "lib/cmdline/popt_common.h"
|
#include "lib/cmdline/popt_common.h"
|
||||||
#include "torture/smbtorture.h"
|
#include "torture/smbtorture.h"
|
||||||
#include "lib/util/samba_module.h"
|
#include "lib/util/samba_modules.h"
|
||||||
|
|
||||||
_PUBLIC_ int torture_numops=10;
|
_PUBLIC_ int torture_numops=10;
|
||||||
_PUBLIC_ int torture_entries=1000;
|
_PUBLIC_ int torture_entries=1000;
|
||||||
@ -48,11 +48,11 @@ _PUBLIC_ int torture_init(void)
|
|||||||
{
|
{
|
||||||
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
#define _MODULE_PROTO(init) extern NTSTATUS init(void);
|
||||||
STATIC_smbtorture_MODULES_PROTO;
|
STATIC_smbtorture_MODULES_PROTO;
|
||||||
samba_module_init_fn static_init[] = { STATIC_smbtorture_MODULES };
|
init_module_fn static_init[] = { STATIC_smbtorture_MODULES };
|
||||||
samba_module_init_fn *shared_init = samba_module_init_fns_for_subsystem(NULL, "smbtorture");
|
init_module_fn *shared_init = load_samba_modules(NULL, "smbtorture");
|
||||||
|
|
||||||
samba_module_init_fns_run(static_init);
|
run_init_functions(static_init);
|
||||||
samba_module_init_fns_run(shared_init);
|
run_init_functions(shared_init);
|
||||||
|
|
||||||
talloc_free(shared_init);
|
talloc_free(shared_init);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user