[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Thu Oct 13 07:41:02 MDT 2011


The branch, master has been updated
       via  e287a72 add lib/param files to .gitignore
       via  4e1d9a6 build: run perl generators at autogen.sh time
       via  7703648 build: clean new generated param headers
       via  a6faacd build: only regenerate param files when required
       via  73d0ab6 lib/param reduce the cost of loadparm_init_s3()
       via  01c934c lib/util: Add back control of mmap and hash size in tdb for top level build
       via  3cdb1fe s4-messaging: Pass the loadparm context, not just the messaging path
       via  5603dab libcli/auth: Provide a struct loadparm_context to schannel calls
       via  43d84aa lib/param Print error when mkdir of lock path fails
       via  4a89361 lib/param Add 'use mmap' parameter to control tdb use of mmap
       via  ebf3ecd build: use lib/param loadparm code in source3 to get at lpcfg_ functions
      from  d2a9e8d Another part of the fix for Bug 8473 - smb2_find uses a hard coded max reply size of 0x10000 instead of smb2_max_trans.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit e287a72e657988c87166b0b468836d94b073b14e
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Oct 13 22:58:26 2011 +1100

    add lib/param files to .gitignore
    
    Autobuild-User: Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date: Thu Oct 13 15:40:16 CEST 2011 on sn-devel-104

commit 4e1d9a620b0ebbe9bca89de84f553f580295fc33
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Oct 13 22:53:20 2011 +1100

    build: run perl generators at autogen.sh time

commit 77036483488c67ab498a1b5d19320a78dcfdc450
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Oct 13 22:53:03 2011 +1100

    build: clean new generated param headers

commit a6faacd93c7d8e9677bf5c9ad6a6c11d68862fd8
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Oct 13 22:51:30 2011 +1100

    build: only regenerate param files when required

commit 73d0ab6558fd6a3f07f6a96b99c89baa46e0d9c2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Oct 13 20:16:28 2011 +1100

    lib/param reduce the cost of loadparm_init_s3()
    
    The parameter redirection covers most things now, so this should be safe.
    
    Andrew Bartlett

commit 01c934c81e55b79601122d8e0740c7946077c37e
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Oct 12 23:01:08 2011 +1100

    lib/util: Add back control of mmap and hash size in tdb for top level build
    
    This passes down a struct loadparm_context to allow these
    parameters to be checked.  This may be s3 or s4 context, allowing the
    #if _SAMBA_BUILD_ macro to go away safely.
    
    Andrew Bartlett

commit 3cdb1fe4404e26ae383cfb73bfa8af36cb1d7f7c
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Oct 13 20:01:56 2011 +1100

    s4-messaging: Pass the loadparm context, not just the messaging path
    
    This will allow the TDB layer to get at the lp_ctx for tdb options.
    
    Andrew Bartlett

commit 5603dab6478fbb40206a8664a308b5db5b1863e8
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Oct 12 22:55:34 2011 +1100

    libcli/auth: Provide a struct loadparm_context to schannel calls
    
    This will allow us to pass this down to the tdb_wrap layer.
    
    Andrew Bartlett

commit 43d84aa619be5851acea82bef77164f0dc3e9f7e
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Oct 12 22:37:24 2011 +1100

    lib/param Print error when mkdir of lock path fails
    
    This matches the s3 code for lock_path().
    
    Andrew Bartlett

commit 4a89361af465227c96b07d009e67689c44b16e4e
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Oct 12 22:36:40 2011 +1100

    lib/param Add 'use mmap' parameter to control tdb use of mmap

commit ebf3ecd986bbb5a84418b8519537054ac4fa0dc1
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Sat Oct 8 12:18:09 2011 +1100

    build: use lib/param loadparm code in source3 to get at lpcfg_ functions

-----------------------------------------------------------------------

Summary of changes:
 .gitignore                                        |    4 ++
 lib/param/loadparm.c                              |   14 +++++-
 lib/param/util.c                                  |    4 +-
 lib/util/tdb_wrap.c                               |   21 +++-----
 lib/util/tdb_wrap.h                               |    5 ++-
 lib/util/wscript_build                            |    2 +-
 libcli/auth/schannel_proto.h                      |    2 +-
 libcli/auth/schannel_state.h                      |    6 +-
 libcli/auth/schannel_state_tdb.c                  |   19 ++++---
 libcli/auth/wscript_build                         |    2 +-
 source3/Makefile.in                               |   18 ++++++-
 source3/auth/auth_samba4.c                        |    2 +-
 source3/autogen.sh                                |    6 ++
 source3/lib/dbwrap/dbwrap_tdb.c                   |    8 ++-
 source3/lib/messages_local.c                      |   21 +++++++-
 source3/lib/server_mutex.c                        |   13 ++++-
 source3/lib/serverid.c                            |   11 ++++-
 source3/param/loadparm_ctx.c                      |    3 +
 source3/rpc_server/netlogon/srv_netlog_nt.c       |   55 ++++++++++++++++++--
 source3/rpc_server/srv_pipe.c                     |   13 ++++-
 source3/smbd/notify_internal.c                    |   13 ++++-
 source3/smbd/server.c                             |    5 ++-
 source4/auth/gensec/schannel.c                    |    2 +-
 source4/cluster/local.c                           |    2 +-
 source4/dsdb/samdb/ldb_modules/ridalloc.c         |    2 +-
 source4/dsdb/samdb/ldb_modules/rootdse.c          |    2 +-
 source4/lib/messaging/messaging.c                 |   22 ++++++--
 source4/lib/messaging/messaging.h                 |    4 +-
 source4/lib/messaging/pymessaging.c               |   27 +++++-----
 source4/lib/messaging/tests/irpc.c                |    4 +-
 source4/lib/messaging/tests/messaging.c           |    4 +-
 source4/librpc/rpc/pyrpc_util.c                   |    2 +-
 source4/ntvfs/posix/python/pyxattr_tdb.c          |    6 ++-
 source4/ntvfs/posix/vfs_posix.c                   |    3 +-
 source4/param/secrets.c                           |    2 +-
 source4/rpc_server/netlogon/dcerpc_netlogon.c     |    6 +-
 source4/scripting/python/samba/tests/messaging.py |    1 -
 source4/smbd/server.c                             |    4 +-
 source4/smbd/service_stream.c                     |    2 +-
 source4/smbd/service_task.c                       |    2 +-
 source4/torture/local/dbspeed.c                   |    2 +-
 source4/utils/ntlm_auth.c                         |    2 +-
 42 files changed, 252 insertions(+), 96 deletions(-)


Changeset truncated at 500 lines:

diff --git a/.gitignore b/.gitignore
index 309dfad..d6d3e81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -94,6 +94,10 @@ source3/smbd/build_options.c
 source3/param/param_global.h
 source3/param/param_local.h
 source3/setup
+lib/param/param_global.h
+lib/param/param_local.h
+lib/param/param_proto.h
+lib/param/s3_param.h
 pidl/blib
 pidl/cover_db
 pidl/Makefile
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 880b521..c130a19 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -866,6 +866,15 @@ static struct parm_struct parm_table[] = {
 		.enum_list	= NULL
 	},
 	{
+		.label		= "use mmap",
+		.type		= P_BOOL,
+		.p_class	= P_GLOBAL,
+		.offset		= GLOBAL_VAR(bUseMmap),
+		.special	= NULL,
+		.enum_list	= NULL,
+		.flags		= FLAG_ADVANCED,
+	},
+	{
 		.label		= "case insensitive filesystem",
 		.type		= P_BOOL,
 		.p_class	= P_LOCAL,
@@ -1549,6 +1558,7 @@ FN_GLOBAL_BOOL(client_use_spnego_principal, client_use_spnego_principal)
 FN_GLOBAL_BOOL(host_msdfs, bHostMSDfs)
 FN_GLOBAL_BOOL(unix_extensions, bUnixExtensions)
 FN_GLOBAL_BOOL(use_spnego, bUseSpnego)
+FN_GLOBAL_BOOL(use_mmap, bUseMmap)
 FN_GLOBAL_BOOL(rpc_big_endian, bRpcBigEndian)
 FN_GLOBAL_INTEGER(max_wins_ttl, max_wins_ttl)
 FN_GLOBAL_INTEGER(min_wins_ttl, min_wins_ttl)
@@ -3384,6 +3394,8 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 
 	lpcfg_do_global_parameter(lp_ctx, "use spnego", "True");
 
+	lpcfg_do_global_parameter(lp_ctx, "use mmap", "True");
+
 	lpcfg_do_global_parameter(lp_ctx, "smb ports", "445 139");
 	lpcfg_do_global_parameter(lp_ctx, "nbt port", "137");
 	lpcfg_do_global_parameter(lp_ctx, "dgram port", "138");
@@ -3446,7 +3458,7 @@ struct loadparm_context *loadparm_init_global(bool load_default)
 struct loadparm_context *loadparm_init_s3(TALLOC_CTX *mem_ctx, 
 					  const struct loadparm_s3_context *s3_fns)
 {
-	struct loadparm_context *loadparm_context = loadparm_init(mem_ctx);
+	struct loadparm_context *loadparm_context = talloc_zero(mem_ctx, struct loadparm_context);
 	if (!loadparm_context) {
 		return NULL;
 	}
diff --git a/lib/param/util.c b/lib/param/util.c
index a385c4d..3a6a004 100644
--- a/lib/param/util.c
+++ b/lib/param/util.c
@@ -90,7 +90,9 @@ char *lpcfg_lock_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
 	trim_string(dname,"","/");
 	
 	if (!directory_exist(dname)) {
-		mkdir(dname,0755);
+		if (!mkdir(dname,0755))
+			DEBUG(1, ("Unable to create directory %s for file %s. "
+			      "Error was %s\n", dname, name, strerror(errno)));
 	}
 	
 	fname = talloc_asprintf(mem_ctx, "%s/%s", dname, name);
diff --git a/lib/util/tdb_wrap.c b/lib/util/tdb_wrap.c
index a3dc76d..7c3318b 100644
--- a/lib/util/tdb_wrap.c
+++ b/lib/util/tdb_wrap.c
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "lib/util/dlinklist.h"
 #include "lib/util/tdb_wrap.h"
+#include "lib/param/param.h"
 
 /* FIXME: TDB2 does this internally, so no need to wrap multiple opens! */
 #if BUILD_TDB2
@@ -114,7 +115,8 @@ static struct tdb_wrap_private *tdb_wrap_private_open(TALLOC_CTX *mem_ctx,
 						      int hash_size,
 						      int tdb_flags,
 						      int open_flags,
-						      mode_t mode)
+						      mode_t mode,
+						      struct loadparm_context *lp_ctx)
 {
 	struct tdb_wrap_private *result;
 
@@ -127,14 +129,7 @@ static struct tdb_wrap_private *tdb_wrap_private_open(TALLOC_CTX *mem_ctx,
 		goto fail;
 	}
 
-#if _SAMBA_BUILD_ == 3	
-	/* This #if _SAMBA_BUILD == 3 is very unfortunate, as it means
-	 * that in the top level build, these options are not
-	 * available for these databases.  However, having two
-	 * different tdb_wrap lists is a worse fate, so this will do
-	 * for now */
-
-	if (!lp_use_mmap()) {
+	if (!lpcfg_use_mmap(lp_ctx)) {
 		tdb_flags |= TDB_NOMMAP;
 	}
 
@@ -147,9 +142,8 @@ static struct tdb_wrap_private *tdb_wrap_private_open(TALLOC_CTX *mem_ctx,
 		} else {
 			base = name;
 		}
-		hash_size = lp_parm_int(-1, "tdb_hashsize", base, 0);
+		hash_size = lpcfg_parm_int(lp_ctx, NULL, "tdb_hashsize", base, 0);
 	}
-#endif
 
 	result->tdb = tdb_open_compat(name, hash_size, tdb_flags,
 				      open_flags, mode, tdb_wrap_log, NULL);
@@ -171,7 +165,8 @@ fail:
  */
 struct tdb_wrap *tdb_wrap_open(TALLOC_CTX *mem_ctx,
 			       const char *name, int hash_size, int tdb_flags,
-			       int open_flags, mode_t mode)
+			       int open_flags, mode_t mode,
+			       struct loadparm_context *lp_ctx)
 {
 	struct tdb_wrap *result;
 	struct tdb_wrap_private *w;
@@ -189,7 +184,7 @@ struct tdb_wrap *tdb_wrap_open(TALLOC_CTX *mem_ctx,
 
 	if (w == NULL) {
 		w = tdb_wrap_private_open(result, name, hash_size, tdb_flags,
-					  open_flags, mode);
+					  open_flags, mode, lp_ctx);
 	} else {
 		/*
 		 * Correctly use talloc_reference: The tdb will be
diff --git a/lib/util/tdb_wrap.h b/lib/util/tdb_wrap.h
index 6f9f383..81e77e7 100644
--- a/lib/util/tdb_wrap.h
+++ b/lib/util/tdb_wrap.h
@@ -35,8 +35,11 @@ struct tdb_wrap {
 	struct tdb_context *tdb;
 };
 
+struct loadparm_context;
+
 struct tdb_wrap *tdb_wrap_open(TALLOC_CTX *mem_ctx,
 			       const char *name, int hash_size, int tdb_flags,
-			       int open_flags, mode_t mode);
+			       int open_flags, mode_t mode,
+			       struct loadparm_context *lp_ctx);
 
 #endif /* _TDB_WRAP_H_ */
diff --git a/lib/util/wscript_build b/lib/util/wscript_build
index 8b4901a..1dc65fa 100755
--- a/lib/util/wscript_build
+++ b/lib/util/wscript_build
@@ -88,7 +88,7 @@ bld.SAMBA_SUBSYSTEM('UTIL_PW',
 
 bld.SAMBA_LIBRARY('tdb-wrap',
                   source='tdb_wrap.c',
-                  deps='tdb_compat talloc samba-util',
+                  deps='tdb_compat talloc samba-util samba-hostconfig',
                   private_library=True,
                   local_include=False
                  )
diff --git a/libcli/auth/schannel_proto.h b/libcli/auth/schannel_proto.h
index e3aeb5a..7ee4c1c 100644
--- a/libcli/auth/schannel_proto.h
+++ b/libcli/auth/schannel_proto.h
@@ -26,7 +26,7 @@
 struct schannel_state;
 
 struct tdb_wrap *open_schannel_session_store(TALLOC_CTX *mem_ctx,
-					     const char *private_dir);
+					     struct loadparm_context *lp_ctx);
 
 NTSTATUS netsec_incoming_packet(struct schannel_state *state,
 				bool do_unseal,
diff --git a/libcli/auth/schannel_state.h b/libcli/auth/schannel_state.h
index 017fdbe..f9d02dd 100644
--- a/libcli/auth/schannel_state.h
+++ b/libcli/auth/schannel_state.h
@@ -24,16 +24,16 @@
 #define _LIBCLI_AUTH_SCHANNEL_STATE_H__
 
 NTSTATUS schannel_get_creds_state(TALLOC_CTX *mem_ctx,
-				  const char *db_priv_dir,
+				  struct loadparm_context *lp_ctx,
 				  const char *computer_name,
 				  struct netlogon_creds_CredentialState **creds);
 
 NTSTATUS schannel_save_creds_state(TALLOC_CTX *mem_ctx,
-				   const char *db_priv_dir,
+				   struct loadparm_context *lp_ctx,
 				   struct netlogon_creds_CredentialState *creds);
 
 NTSTATUS schannel_check_creds_state(TALLOC_CTX *mem_ctx,
-				    const char *db_priv_dir,
+				    struct loadparm_context *lp_ctx,
 				    const char *computer_name,
 				    struct netr_Authenticator *received_authenticator,
 				    struct netr_Authenticator *return_authenticator,
diff --git a/libcli/auth/schannel_state_tdb.c b/libcli/auth/schannel_state_tdb.c
index 76110b8..f2b9188 100644
--- a/libcli/auth/schannel_state_tdb.c
+++ b/libcli/auth/schannel_state_tdb.c
@@ -25,6 +25,7 @@
 #include "system/filesys.h"
 #include "../lib/tdb_compat/tdb_compat.h"
 #include "../lib/util/util_tdb.h"
+#include "../lib/param/param.h"
 #include "../libcli/auth/schannel.h"
 #include "../librpc/gen_ndr/ndr_schannel.h"
 #include "lib/util/tdb_wrap.h"
@@ -37,16 +38,16 @@
 *******************************************************************************/
 
 struct tdb_wrap *open_schannel_session_store(TALLOC_CTX *mem_ctx,
-					     const char *private_dir)
+					     struct loadparm_context *lp_ctx)
 {
 	struct tdb_wrap *tdb_sc = NULL;
-	char *fname = talloc_asprintf(mem_ctx, "%s/schannel_store.tdb", private_dir);
+	char *fname = lpcfg_private_path(mem_ctx, lp_ctx, "schannel_store.tdb");
 
 	if (!fname) {
 		return NULL;
 	}
 
-	tdb_sc = tdb_wrap_open(mem_ctx, fname, 0, TDB_CLEAR_IF_FIRST|TDB_NOSYNC, O_RDWR|O_CREAT, 0600);
+	tdb_sc = tdb_wrap_open(mem_ctx, fname, 0, TDB_CLEAR_IF_FIRST|TDB_NOSYNC, O_RDWR|O_CREAT, 0600, lp_ctx);
 
 	if (!tdb_sc) {
 		DEBUG(0,("open_schannel_session_store: Failed to open %s - %s\n",
@@ -201,7 +202,7 @@ NTSTATUS schannel_fetch_session_key_tdb(struct tdb_wrap *tdb_sc,
 *******************************************************************************/
 
 NTSTATUS schannel_get_creds_state(TALLOC_CTX *mem_ctx,
-				  const char *db_priv_dir,
+				  struct loadparm_context *lp_ctx,
 				  const char *computer_name,
 				  struct netlogon_creds_CredentialState **_creds)
 {
@@ -215,7 +216,7 @@ NTSTATUS schannel_get_creds_state(TALLOC_CTX *mem_ctx,
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	tdb_sc = open_schannel_session_store(tmpctx, db_priv_dir);
+	tdb_sc = open_schannel_session_store(tmpctx, lp_ctx);
 	if (!tdb_sc) {
 		return NT_STATUS_ACCESS_DENIED;
 	}
@@ -239,7 +240,7 @@ NTSTATUS schannel_get_creds_state(TALLOC_CTX *mem_ctx,
 *******************************************************************************/
 
 NTSTATUS schannel_save_creds_state(TALLOC_CTX *mem_ctx,
-				   const char *db_priv_dir,
+				   struct loadparm_context *lp_ctx,
 				   struct netlogon_creds_CredentialState *creds)
 {
 	TALLOC_CTX *tmpctx;
@@ -251,7 +252,7 @@ NTSTATUS schannel_save_creds_state(TALLOC_CTX *mem_ctx,
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	tdb_sc = open_schannel_session_store(tmpctx, db_priv_dir);
+	tdb_sc = open_schannel_session_store(tmpctx, lp_ctx);
 	if (!tdb_sc) {
 		return NT_STATUS_ACCESS_DENIED;
 	}
@@ -273,7 +274,7 @@ NTSTATUS schannel_save_creds_state(TALLOC_CTX *mem_ctx,
  ********************************************************************/
 
 NTSTATUS schannel_check_creds_state(TALLOC_CTX *mem_ctx,
-				    const char *db_priv_dir,
+				    struct loadparm_context *lp_ctx,
 				    const char *computer_name,
 				    struct netr_Authenticator *received_authenticator,
 				    struct netr_Authenticator *return_authenticator,
@@ -290,7 +291,7 @@ NTSTATUS schannel_check_creds_state(TALLOC_CTX *mem_ctx,
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	tdb_sc = open_schannel_session_store(tmpctx, db_priv_dir);
+	tdb_sc = open_schannel_session_store(tmpctx, lp_ctx);
 	if (!tdb_sc) {
 		status = NT_STATUS_ACCESS_DENIED;
 		goto done;
diff --git a/libcli/auth/wscript_build b/libcli/auth/wscript_build
index acb1ce3..2afab44 100644
--- a/libcli/auth/wscript_build
+++ b/libcli/auth/wscript_build
@@ -26,7 +26,7 @@ bld.SAMBA_SUBSYSTEM('LIBCLI_AUTH',
 
 bld.SAMBA_SUBSYSTEM('COMMON_SCHANNEL',
 	source='schannel_state_tdb.c schannel_sign.c',
-	deps='tdb-wrap UTIL_TDB'
+	deps='tdb-wrap UTIL_TDB samba-hostconfig'
 	)
 
 
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 27c3393..6b979d4 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -494,7 +494,7 @@ READLINE_OBJ = ../libcli/smbreadline/smbreadline.o
 # Be sure to include them into your application
 POPT_LIB_OBJ = lib/popt_common.o
 
-PARAM_WITHOUT_REG_OBJ = ../dynconfig/dynconfig.o param/loadparm.o param/loadparm_server_role.o param/util.o lib/sharesec.o lib/ldap_debug_handler.o
+PARAM_WITHOUT_REG_OBJ = ../dynconfig/dynconfig.o param/loadparm.o param/loadparm_ctx.o param/loadparm_server_role.o param/util.o lib/sharesec.o lib/ldap_debug_handler.o ../lib/param/loadparm.o ../lib/param/util.o
 PARAM_REG_ADD_OBJ = $(REG_SMBCONF_OBJ) $(LIBSMBCONF_OBJ) $(PRIVILEGES_BASIC_OBJ)
 PARAM_OBJ = $(PARAM_WITHOUT_REG_OBJ) $(PARAM_REG_ADD_OBJ)
 
@@ -1654,9 +1654,19 @@ idl_full::
 	@PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
 	 srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh --full $(IDL_FILES)
 
-mkparam:
+mkparam: ../lib/param/param_local.h ../lib/param/param_global.h param/param_global.h ../lib/param/param_proto.h ../lib/param/s3_param.h
+
+../lib/param/param_local.h:
 	 $(PERL) ../script/mkparamdefs.pl $(srcdir)/../lib/param/param_functions.c --file ../lib/param/param_local.h --generate-scope=LOCAL
+../lib/param/param_global.h:
+	 $(PERL) ../script/mkparamdefs.pl $(srcdir)/../lib/param/loadparm.c --file ../lib/param/param_global.h --generate-scope=GLOBAL
+param/param_global.h:
 	 $(PERL) ../script/mkparamdefs.pl $(srcdir)/param/loadparm.c --file param/param_global.h --generate-scope=GLOBAL
+../lib/param/param_proto.h:
+	 $(PERL) ../source4/script/mkproto.pl $(srcdir)/../lib/param/loadparm.c --public ../lib/param/param_proto.h  --private ../lib/param/param_proto.h
+../lib/param/s3_param.h:
+	 $(PERL) ../script/mks3param.pl $(srcdir)/../lib/param/loadparm.c --file ../lib/param/s3_param.h
+
 
 #####################################################################
 
@@ -3416,6 +3426,10 @@ clean:: cleanlibs
 	-rm -f smbd/build_options.c
 	-rm -f param/param_local.h
 	-rm -f param/param_global.h
+	-rm -f ../lib/param/param_local.h
+	-rm -f ../lib/param/param_global.h
+	-rm -f ../lib/param/param_proto.h
+	-rm -f ../lib/param/s3_param.h
 	-rm -f $(PRECOMPILED_HEADER)
 	-rm -f core */*~ *~ \
 		*/*.o */*/*.o */*/*/*.o */*/*/*/*.o \
diff --git a/source3/auth/auth_samba4.c b/source3/auth/auth_samba4.c
index 994bde1..21c7b44 100644
--- a/source3/auth/auth_samba4.c
+++ b/source3/auth/auth_samba4.c
@@ -122,7 +122,7 @@ static NTSTATUS prepare_gensec(TALLOC_CTX *mem_ctx,
 	}
 
 	msg_ctx = imessaging_client_init(frame,
-					 lpcfg_imessaging_path(frame, lp_ctx),
+					 lp_ctx,
 					 event_ctx);
 	if (msg_ctx == NULL) {
 		DEBUG(1, ("imessaging_init failed\n"));
diff --git a/source3/autogen.sh b/source3/autogen.sh
index d9f6030..e5aea32 100755
--- a/source3/autogen.sh
+++ b/source3/autogen.sh
@@ -86,6 +86,12 @@ else
    echo "some autconf tests might not work properly"
 fi
 
+perl ../script/mkparamdefs.pl ../lib/param/param_functions.c --file ../lib/param/param_local.h --generate-scope=LOCAL
+perl ../script/mkparamdefs.pl ../lib/param/loadparm.c --file ../lib/param/param_global.h --generate-scope=GLOBAL
+perl ../script/mkparamdefs.pl param/loadparm.c --file param/param_global.h --generate-scope=GLOBAL
+perl ../source4/script/mkproto.pl ../lib/param/loadparm.c --public ../lib/param/param_proto.h  --private ../lib/param/param_proto.h
+perl ../script/mks3param.pl ../lib/param/loadparm.c --file ../lib/param/s3_param.h
+
 echo "Now run ./configure (or ./configure.developer) and then make."
 exit 0
 
diff --git a/source3/lib/dbwrap/dbwrap_tdb.c b/source3/lib/dbwrap/dbwrap_tdb.c
index 4330c96..e9e4900 100644
--- a/source3/lib/dbwrap/dbwrap_tdb.c
+++ b/source3/lib/dbwrap/dbwrap_tdb.c
@@ -22,6 +22,7 @@
 #include "dbwrap/dbwrap_private.h"
 #include "dbwrap/dbwrap_tdb.h"
 #include "lib/util/tdb_wrap.h"
+#include "lib/param/param.h"
 
 struct db_tdb_ctx {
 	struct tdb_wrap *wtdb;
@@ -359,12 +360,14 @@ struct db_context *db_open_tdb(TALLOC_CTX *mem_ctx,
 {
 	struct db_context *result = NULL;
 	struct db_tdb_ctx *db_tdb;
-
+	struct loadparm_context *lp_ctx;
+	
 	result = talloc_zero(mem_ctx, struct db_context);
 	if (result == NULL) {
 		DEBUG(0, ("talloc failed\n"));
 		goto fail;
 	}
+	lp_ctx = loadparm_init_s3(result, loadparm_s3_context());
 
 	result->private_data = db_tdb = talloc(result, struct db_tdb_ctx);
 	if (db_tdb == NULL) {
@@ -373,7 +376,8 @@ struct db_context *db_open_tdb(TALLOC_CTX *mem_ctx,
 	}
 
 	db_tdb->wtdb = tdb_wrap_open(db_tdb, name, hash_size, tdb_flags,
-				     open_flags, mode);
+				     open_flags, mode, lp_ctx);
+	talloc_unlink(result, lp_ctx);
 	if (db_tdb->wtdb == NULL) {
 		DEBUG(3, ("Could not open tdb: %s\n", strerror(errno)));
 		goto fail;
diff --git a/source3/lib/messages_local.c b/source3/lib/messages_local.c
index 67234d4..9b4e3c5 100644
--- a/source3/lib/messages_local.c
+++ b/source3/lib/messages_local.c
@@ -46,6 +46,7 @@
 #include "system/filesys.h"
 #include "messages.h"
 #include "lib/util/tdb_wrap.h"
+#include "lib/param/param.h"
 
 struct messaging_tdb_context {
 	struct messaging_context *msg_ctx;
@@ -86,12 +87,19 @@ NTSTATUS messaging_tdb_init(struct messaging_context *msg_ctx,
 {
 	struct messaging_backend *result;
 	struct messaging_tdb_context *ctx;
+	struct loadparm_context *lp_ctx;
 
 	if (!(result = talloc(mem_ctx, struct messaging_backend))) {
 		DEBUG(0, ("talloc failed\n"));
 		return NT_STATUS_NO_MEMORY;
 	}
 
+	lp_ctx = loadparm_init_s3(result, loadparm_s3_context());
+	if (lp_ctx == NULL) {
+		DEBUG(0, ("loadparm_init_s3 failed\n"));
+		return NT_STATUS_INTERNAL_ERROR;
+	}
+
 	ctx = talloc_zero(result, struct messaging_tdb_context);
 	if (!ctx) {
 		DEBUG(0, ("talloc failed\n"));
@@ -105,7 +113,8 @@ NTSTATUS messaging_tdb_init(struct messaging_context *msg_ctx,
 
 	ctx->tdb = tdb_wrap_open(ctx, lock_path("messages.tdb"), 0,
 				 TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_VOLATILE|TDB_INCOMPATIBLE_HASH,
-				 O_RDWR|O_CREAT,0600);
+				 O_RDWR|O_CREAT,0600, lp_ctx);
+	talloc_unlink(result, lp_ctx);
 
 	if (!ctx->tdb) {
 		NTSTATUS status = map_nt_error_from_unix(errno);
@@ -137,6 +146,13 @@ NTSTATUS messaging_tdb_init(struct messaging_context *msg_ctx,
 bool messaging_tdb_parent_init(TALLOC_CTX *mem_ctx)
 {
 	struct tdb_wrap *db;
+	struct loadparm_context *lp_ctx;
+
+	lp_ctx = loadparm_init_s3(mem_ctx, loadparm_s3_context());
+	if (lp_ctx == NULL) {
+		DEBUG(0, ("loadparm_init_s3 failed\n"));
+		return false;
+	}
 
 	/*
 	 * Open the tdb in the parent process (smbd) so that our
@@ -146,7 +162,8 @@ bool messaging_tdb_parent_init(TALLOC_CTX *mem_ctx)
 
 	db = tdb_wrap_open(mem_ctx, lock_path("messages.tdb"), 0,
 			   TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_VOLATILE|TDB_INCOMPATIBLE_HASH,
-			   O_RDWR|O_CREAT,0600);
+			   O_RDWR|O_CREAT,0600, lp_ctx);
+	talloc_unlink(mem_ctx, lp_ctx);
 	if (db == NULL) {
 		DEBUG(1, ("could not open messaging.tdb: %s\n",
 			  strerror(errno)));
diff --git a/source3/lib/server_mutex.c b/source3/lib/server_mutex.c
index dc65819..7ceecfe 100644
--- a/source3/lib/server_mutex.c
+++ b/source3/lib/server_mutex.c
@@ -22,6 +22,7 @@
 #include "system/filesys.h"
 #include "lib/util/tdb_wrap.h"
 #include "util_tdb.h"
+#include "lib/param/param.h"
 
 /* For reasons known only to MS, many of their NT/Win2k versions


-- 
Samba Shared Repository


More information about the samba-cvs mailing list