ssorce 798fa90
diff -uPr samba-3.0.24.old/source/configure.in samba-3.0.24.new/source/configure.in
ssorce 798fa90
--- samba-3.0.24.old/source/configure.in	2007-02-04 13:59:28.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/configure.in	2007-03-06 15:16:27.000000000 -0500
ssorce 798fa90
@@ -23,7 +23,8 @@
ssorce 798fa90
 AC_PREFIX_DEFAULT(/usr/local/samba)
ssorce 798fa90
 
ssorce 798fa90
 rootsbindir="\${SBINDIR}"
ssorce 798fa90
-lockdir="\${VARDIR}/locks"
ssorce 798fa90
+cachedir="\${VARDIR}/locks"
ssorce 798fa90
+statedir="\${VARDIR}/locks"
ssorce 798fa90
 piddir="\${VARDIR}/locks"
ssorce 798fa90
 test "${mandir}" || mandir="\${prefix}/man"
ssorce 798fa90
 logfilebase="\${VARDIR}"
ssorce 798fa90
@@ -37,7 +38,8 @@
ssorce 798fa90
 [  --with-fhs              Use FHS-compliant paths (default=no)],
ssorce 798fa90
 [ case "$withval" in
ssorce 798fa90
   yes)
ssorce 798fa90
-    lockdir="\${VARDIR}/lib/samba"
ssorce 798fa90
+    cachedir="\${VARDIR}/cache/samba"
ssorce 798fa90
+    statedir="\${VARDIR}/lib/samba"
ssorce 798fa90
     piddir="\${VARDIR}/run"
ssorce 798fa90
     mandir="\${prefix}/share/man"
ssorce 798fa90
     logfilebase="\${VARDIR}/log/samba"
ssorce 798fa90
@@ -81,18 +83,34 @@
ssorce 798fa90
   esac])
ssorce 798fa90
 
ssorce 798fa90
 #################################################
ssorce 798fa90
-# set lock directory location
ssorce 798fa90
-AC_ARG_WITH(lockdir,
ssorce 798fa90
-[  --with-lockdir=DIR      Where to put lock files ($ac_default_prefix/var/locks)],
ssorce 798fa90
+# set cache directory location
ssorce 798fa90
+AC_ARG_WITH(cachedir,
ssorce 798fa90
+[  --with-cachedir=DIR      Where to put persistent files ($ac_default_prefix/var/locks)],
ssorce 798fa90
 [ case "$withval" in
ssorce 798fa90
   yes|no)
ssorce 798fa90
   #
ssorce 798fa90
   # Just in case anybody calls it without argument
ssorce 798fa90
   #
ssorce 798fa90
-    AC_MSG_WARN([--with-lockdir called without argument - will use default])
ssorce 798fa90
+    AC_MSG_WARN([--with-cachedir called without argument - will use default])
ssorce 798fa90
   ;;
ssorce 798fa90
   * )
ssorce 798fa90
-    lockdir="$withval"
ssorce 798fa90
+    cachedir="$withval"
ssorce 798fa90
+    ;;
ssorce 798fa90
+  esac])
ssorce 798fa90
+
ssorce 798fa90
+#################################################
ssorce 798fa90
+# set state directory location
ssorce 798fa90
+AC_ARG_WITH(statedir,
ssorce 798fa90
+[  --with-statedir=DIR      Where to put persistent files ($ac_default_prefix/var/locks)],
ssorce 798fa90
+[ case "$withval" in
ssorce 798fa90
+  yes|no)
ssorce 798fa90
+  #
ssorce 798fa90
+  # Just in case anybody calls it without argument
ssorce 798fa90
+  #
ssorce 798fa90
+    AC_MSG_WARN([--with-statedir called without argument - will use default])
ssorce 798fa90
+  ;;
ssorce 798fa90
+  * )
ssorce 798fa90
+    statedir="$withval"
ssorce 798fa90
     ;;
ssorce 798fa90
   esac])
ssorce 798fa90
 
ssorce 798fa90
@@ -228,7 +246,8 @@
ssorce 798fa90
 ])
ssorce 798fa90
 
ssorce 798fa90
 AC_SUBST(configdir)
ssorce 798fa90
-AC_SUBST(lockdir)
ssorce 798fa90
+AC_SUBST(cachedir)
ssorce 798fa90
+AC_SUBST(statedir)
ssorce 798fa90
 AC_SUBST(piddir)
ssorce 798fa90
 AC_SUBST(logfilebase)
ssorce 798fa90
 AC_SUBST(privatedir)
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/dynconfig.c samba-3.0.24.new/source/dynconfig.c
ssorce 798fa90
--- samba-3.0.24.old/source/dynconfig.c	2007-02-04 13:59:28.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/dynconfig.c	2007-03-06 15:31:22.000000000 -0500
ssorce 798fa90
@@ -65,7 +65,8 @@
ssorce 798fa90
  *
ssorce 798fa90
  * Not writable, but used to set a default in the parameter table.
ssorce 798fa90
  **/
ssorce 798fa90
-pstring dyn_LOCKDIR = LOCKDIR;
ssorce 798fa90
+pstring dyn_STATEDIR = STATEDIR;
ssorce 798fa90
+pstring dyn_CACHEDIR = CACHEDIR;
ssorce 798fa90
 pstring dyn_PIDDIR  = PIDDIR;
ssorce 798fa90
 
ssorce 798fa90
 pstring dyn_SMB_PASSWD_FILE = SMB_PASSWD_FILE;
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/groupdb/mapping.c samba-3.0.24.new/source/groupdb/mapping.c
ssorce 798fa90
--- samba-3.0.24.old/source/groupdb/mapping.c	2007-02-04 13:59:14.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/groupdb/mapping.c	2007-03-06 15:55:49.000000000 -0500
ssorce 798fa90
@@ -56,7 +56,7 @@
ssorce 798fa90
 	if (tdb)
ssorce 798fa90
 		return True;
ssorce 798fa90
 		
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
+	tdb = tdb_open_log(state_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
 	if (!tdb) {
ssorce 798fa90
 		DEBUG(0,("Failed to open group mapping database\n"));
ssorce 798fa90
 		return False;
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/include/dynconfig.h samba-3.0.24.new/source/include/dynconfig.h
ssorce 798fa90
--- samba-3.0.24.old/source/include/dynconfig.h	2007-02-04 13:59:23.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/include/dynconfig.h	2007-03-06 15:53:36.000000000 -0500
ssorce 798fa90
@@ -32,7 +32,8 @@
ssorce 798fa90
 extern pstring dyn_LOGFILEBASE, dyn_LMHOSTSFILE;
ssorce 798fa90
 extern pstring dyn_LIBDIR;
ssorce 798fa90
 extern fstring dyn_SHLIBEXT;
ssorce 798fa90
-extern pstring dyn_LOCKDIR;
ssorce 798fa90
+extern pstring dyn_CACHEDIR;
ssorce 798fa90
+extern pstring dyn_STATEDIR;
ssorce 798fa90
 extern pstring dyn_PIDDIR;
ssorce 798fa90
 extern pstring dyn_SMB_PASSWD_FILE;
ssorce 798fa90
 extern pstring dyn_PRIVATE_DIR;
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/intl/lang_tdb.c samba-3.0.24.new/source/intl/lang_tdb.c
ssorce 798fa90
--- samba-3.0.24.old/source/intl/lang_tdb.c	2006-04-19 22:29:23.000000000 -0400
ssorce 798fa90
+++ samba-3.0.24.new/source/intl/lang_tdb.c	2007-03-06 15:56:14.000000000 -0500
ssorce 798fa90
@@ -139,7 +139,7 @@
ssorce 798fa90
 		goto done;
ssorce 798fa90
 	}
ssorce 798fa90
 	
ssorce 798fa90
-	asprintf(&path, "%s%s.tdb", lock_path("lang_"), lang);
ssorce 798fa90
+	asprintf(&path, "%s%s.tdb", state_path("lang_"), lang);
ssorce 798fa90
 
ssorce 798fa90
 	DEBUG(10, ("lang_tdb_init: loading %s\n", path));
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/lib/account_pol.c samba-3.0.24.new/source/lib/account_pol.c
ssorce 798fa90
--- samba-3.0.24.old/source/lib/account_pol.c	2007-02-04 13:59:18.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/lib/account_pol.c	2007-03-06 15:56:23.000000000 -0500
ssorce 798fa90
@@ -262,7 +262,7 @@
ssorce 798fa90
 		return True;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
+	tdb = tdb_open_log(state_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
 	if (!tdb) {
ssorce 798fa90
 		DEBUG(0,("Failed to open account policy database\n"));
ssorce 798fa90
 		return False;
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/lib/gencache.c samba-3.0.24.new/source/lib/gencache.c
ssorce 798fa90
--- samba-3.0.24.old/source/lib/gencache.c	2007-02-04 13:59:17.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/lib/gencache.c	2007-03-06 15:56:34.000000000 -0500
ssorce 798fa90
@@ -56,7 +56,7 @@
ssorce 798fa90
 	/* skip file open if it's already opened */
ssorce 798fa90
 	if (cache) return True;
ssorce 798fa90
 
ssorce 798fa90
-	cache_fname = lock_path("gencache.tdb");
ssorce 798fa90
+	cache_fname = cache_path("gencache.tdb");
ssorce 798fa90
 
ssorce 798fa90
 	DEBUG(5, ("Opening cache file at %s\n", cache_fname));
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/lib/messages.c samba-3.0.24.new/source/lib/messages.c
ssorce 798fa90
--- samba-3.0.24.old/source/lib/messages.c	2007-02-04 13:59:18.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/lib/messages.c	2007-03-06 15:56:43.000000000 -0500
ssorce 798fa90
@@ -119,7 +119,7 @@
ssorce 798fa90
 {
ssorce 798fa90
 	if (tdb) return True;
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("messages.tdb"), 
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("messages.tdb"), 
ssorce 798fa90
 		       0, TDB_CLEAR_IF_FIRST|TDB_DEFAULT, 
ssorce 798fa90
 		       O_RDWR|O_CREAT,0600);
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/lib/popt_common.c samba-3.0.24.new/source/lib/popt_common.c
ssorce 798fa90
--- samba-3.0.24.old/source/lib/popt_common.c	2007-02-04 13:59:17.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/lib/popt_common.c	2007-03-06 15:38:15.000000000 -0500
ssorce 798fa90
@@ -156,6 +156,8 @@
ssorce 798fa90
  *		--lmhostsfile
ssorce 798fa90
  *		--libdir
ssorce 798fa90
  *		--shlibext
ssorce 798fa90
+ *		--statedir
ssorce 798fa90
+ *		--cachedir
ssorce 798fa90
  *		--lockdir
ssorce 798fa90
  *		--piddir
ssorce 798fa90
  *		--smb-passwd-file
ssorce 798fa90
@@ -169,6 +171,8 @@
ssorce 798fa90
 	DYN_LMHOSTSFILE,
ssorce 798fa90
 	DYN_LIBDIR,
ssorce 798fa90
 	DYN_SHLIBEXT,
ssorce 798fa90
+	DYN_STATEDIR,
ssorce 798fa90
+	DYN_CACHEDIR,
ssorce 798fa90
 	DYN_LOCKDIR,
ssorce 798fa90
 	DYN_PIDDIR,
ssorce 798fa90
 	DYN_SMB_PASSWD_FILE,
ssorce 798fa90
@@ -219,9 +223,22 @@
ssorce 798fa90
 		}
ssorce 798fa90
 		break;
ssorce 798fa90
 
ssorce 798fa90
+	case DYN_STATEDIR:
ssorce 798fa90
+		if (arg) {
ssorce 798fa90
+			pstrcpy(dyn_STATEDIR, arg);
ssorce 798fa90
+		}
ssorce 798fa90
+		break;
ssorce 798fa90
+
ssorce 798fa90
+	case DYN_CACHEDIR:
ssorce 798fa90
+		if (arg) {
ssorce 798fa90
+			pstrcpy(dyn_CACHEDIR, arg);
ssorce 798fa90
+		}
ssorce 798fa90
+		break;
ssorce 798fa90
+
ssorce 798fa90
 	case DYN_LOCKDIR:
ssorce 798fa90
 		if (arg) {
ssorce 798fa90
-			pstrcpy(dyn_LOCKDIR, arg);
ssorce 798fa90
+			pstrcpy(dyn_STATEDIR, arg);
ssorce 798fa90
+			pstrcpy(dyn_CACHEDIR, arg);
ssorce 798fa90
 		}
ssorce 798fa90
 		break;
ssorce 798fa90
 
ssorce 798fa90
@@ -262,8 +279,12 @@
ssorce 798fa90
 	    "Path to shared library directory", "LIBDIR" },
ssorce 798fa90
 	{ "shlibext", '\0' , POPT_ARG_STRING, NULL, DYN_SHLIBEXT,
ssorce 798fa90
 	    "Shared library extension", "SHLIBEXT" },
ssorce 798fa90
+	{ "statedir", '\0' , POPT_ARG_STRING, NULL, DYN_STATEDIR,
ssorce 798fa90
+	    "Path to state file directory", "STATEDIR" },
ssorce 798fa90
+	{ "cachedir", '\0' , POPT_ARG_STRING, NULL, DYN_CACHEDIR,
ssorce 798fa90
+	    "Path to cache file directory", "CACHEDIR" },
ssorce 798fa90
 	{ "lockdir", '\0' , POPT_ARG_STRING, NULL, DYN_LOCKDIR,
ssorce 798fa90
-	    "Path to lock file directory", "LOCKDIR" },
ssorce 798fa90
+	    "Path to lock(cache and state) file directory", "LOCKDIR" },
ssorce 798fa90
 	{ "piddir", '\0' , POPT_ARG_STRING, NULL, DYN_PIDDIR,
ssorce 798fa90
 	    "Path to PID file directory", "PIDDIR" },
ssorce 798fa90
 	{ "smb-passwd-file", '\0' , POPT_ARG_STRING, NULL, DYN_SMB_PASSWD_FILE,
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/lib/sharesec.c samba-3.0.24.new/source/lib/sharesec.c
ssorce 798fa90
--- samba-3.0.24.old/source/lib/sharesec.c	2006-04-19 22:29:23.000000000 -0400
ssorce 798fa90
+++ samba-3.0.24.new/source/lib/sharesec.c	2007-03-06 15:56:59.000000000 -0500
ssorce 798fa90
@@ -47,10 +47,10 @@
ssorce 798fa90
 		return True;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	share_tdb = tdb_open_log(lock_path("share_info.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
+	share_tdb = tdb_open_log(state_path("share_info.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
 	if (!share_tdb) {
ssorce 798fa90
 		DEBUG(0,("Failed to open share info database %s (%s)\n",
ssorce 798fa90
-			lock_path("share_info.tdb"), strerror(errno) ));
ssorce 798fa90
+			state_path("share_info.tdb"), strerror(errno) ));
ssorce 798fa90
 		return False;
ssorce 798fa90
 	}
ssorce 798fa90
  
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/lib/util.c samba-3.0.24.new/source/lib/util.c
ssorce 798fa90
--- samba-3.0.24.old/source/lib/util.c	2007-02-04 13:59:17.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/lib/util.c	2007-03-06 15:55:29.000000000 -0500
ssorce 798fa90
@@ -2519,14 +2519,34 @@
ssorce 798fa90
 }
ssorce 798fa90
 
ssorce 798fa90
 /*****************************************************************
ssorce 798fa90
- A useful function for returning a path in the Samba lock directory.
ssorce 798fa90
+ A useful function for returning a path in the Samba cache directory.
ssorce 798fa90
 *****************************************************************/  
ssorce 798fa90
 
ssorce 798fa90
-char *lock_path(const char *name)
ssorce 798fa90
+char *cache_path(const char *name)
ssorce 798fa90
 {
ssorce 798fa90
 	static pstring fname;
ssorce 798fa90
 
ssorce 798fa90
-	pstrcpy(fname,lp_lockdir());
ssorce 798fa90
+	pstrcpy(fname,lp_cachedir());
ssorce 798fa90
+	trim_char(fname,'\0','/');
ssorce 798fa90
+	
ssorce 798fa90
+	if (!directory_exist(fname,NULL))
ssorce 798fa90
+		mkdir(fname,0755);
ssorce 798fa90
+	
ssorce 798fa90
+	pstrcat(fname,"/");
ssorce 798fa90
+	pstrcat(fname,name);
ssorce 798fa90
+
ssorce 798fa90
+	return fname;
ssorce 798fa90
+}
ssorce 798fa90
+
ssorce 798fa90
+/*****************************************************************
ssorce 798fa90
+ A useful function for returning a path in the Samba state directory.
ssorce 798fa90
+*****************************************************************/  
ssorce 798fa90
+
ssorce 798fa90
+char *state_path(const char *name)
ssorce 798fa90
+{
ssorce 798fa90
+	static pstring fname;
ssorce 798fa90
+
ssorce 798fa90
+	pstrcpy(fname,lp_statedir());
ssorce 798fa90
 	trim_char(fname,'\0','/');
ssorce 798fa90
 	
ssorce 798fa90
 	if (!directory_exist(fname,NULL))
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/libsmb/gpo.c samba-3.0.24.new/source/libsmb/gpo.c
ssorce 798fa90
--- samba-3.0.24.old/source/libsmb/gpo.c	2006-04-19 22:29:25.000000000 -0400
ssorce 798fa90
+++ samba-3.0.24.new/source/libsmb/gpo.c	2007-03-06 15:57:10.000000000 -0500
ssorce 798fa90
@@ -76,7 +76,7 @@
ssorce 798fa90
 		return NT_STATUS_NO_MEMORY;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	local_file = talloc_asprintf(mem_ctx, "%s/%s", lock_path("gpo_cache"), "gpt.ini");
ssorce 798fa90
+	local_file = talloc_asprintf(mem_ctx, "%s/%s", cache_path("gpo_cache"), "gpt.ini");
ssorce 798fa90
 	if (local_file == NULL) {
ssorce 798fa90
 		return NT_STATUS_NO_MEMORY;
ssorce 798fa90
 	}
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/libsmb/samlogon_cache.c samba-3.0.24.new/source/libsmb/samlogon_cache.c
ssorce 798fa90
--- samba-3.0.24.old/source/libsmb/samlogon_cache.c	2007-02-04 13:59:20.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/libsmb/samlogon_cache.c	2007-03-06 15:57:27.000000000 -0500
ssorce 798fa90
@@ -34,7 +34,7 @@
ssorce 798fa90
 BOOL netsamlogon_cache_init(void)
ssorce 798fa90
 {
ssorce 798fa90
 	if (!netsamlogon_tdb) {
ssorce 798fa90
-		netsamlogon_tdb = tdb_open_log(lock_path(NETSAMLOGON_TDB), 0,
ssorce 798fa90
+		netsamlogon_tdb = tdb_open_log(cache_path(NETSAMLOGON_TDB), 0,
ssorce 798fa90
 						   TDB_DEFAULT, O_RDWR | O_CREAT, 0600);
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
@@ -67,7 +67,7 @@
ssorce 798fa90
            winbindd_cache.tdb open.  Open the tdb if a NULL is passed. */
ssorce 798fa90
 
ssorce 798fa90
 	if (!tdb) {
ssorce 798fa90
-		tdb = tdb_open_log(lock_path("winbindd_cache.tdb"), 5000,
ssorce 798fa90
+		tdb = tdb_open_log(cache_path("winbindd_cache.tdb"), 5000,
ssorce 798fa90
 				   TDB_DEFAULT, O_RDWR, 0600);
ssorce 798fa90
 		if (!tdb) {
ssorce 798fa90
 			DEBUG(5, ("netsamlogon_clear_cached_user: failed to open cache\n"));
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/libsmb/unexpected.c samba-3.0.24.new/source/libsmb/unexpected.c
ssorce 798fa90
--- samba-3.0.24.old/source/libsmb/unexpected.c	2005-02-25 12:59:32.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/libsmb/unexpected.c	2007-03-06 15:57:43.000000000 -0500
ssorce 798fa90
@@ -46,7 +46,7 @@
ssorce 798fa90
 	int len=0;
ssorce 798fa90
 
ssorce 798fa90
 	if (!tdbd) {
ssorce 798fa90
-		tdbd = tdb_open_log(lock_path("unexpected.tdb"), 0, 
ssorce 798fa90
+		tdbd = tdb_open_log(cache_path("unexpected.tdb"), 0, 
ssorce 798fa90
 			       TDB_CLEAR_IF_FIRST|TDB_DEFAULT,
ssorce 798fa90
 			       O_RDWR | O_CREAT, 0644);
ssorce 798fa90
 		if (!tdbd) {
ssorce 798fa90
@@ -148,7 +148,7 @@
ssorce 798fa90
 {
ssorce 798fa90
 	TDB_CONTEXT *tdb2;
ssorce 798fa90
 
ssorce 798fa90
-	tdb2 = tdb_open_log(lock_path("unexpected.tdb"), 0, 0, O_RDONLY, 0);
ssorce 798fa90
+	tdb2 = tdb_open_log(cache_path("unexpected.tdb"), 0, 0, O_RDONLY, 0);
ssorce 798fa90
 	if (!tdb2) return NULL;
ssorce 798fa90
 
ssorce 798fa90
 	matched_packet = NULL;
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/locking/brlock.c samba-3.0.24.new/source/locking/brlock.c
ssorce 798fa90
--- samba-3.0.24.old/source/locking/brlock.c	2007-02-04 13:59:23.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/locking/brlock.c	2007-03-06 15:58:11.000000000 -0500
ssorce 798fa90
@@ -270,13 +270,13 @@
ssorce 798fa90
 	if (tdb) {
ssorce 798fa90
 		return;
ssorce 798fa90
 	}
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("brlock.tdb"),
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("brlock.tdb"),
ssorce 798fa90
 			lp_open_files_db_hash_size(),
ssorce 798fa90
 			TDB_DEFAULT|(read_only?0x0:TDB_CLEAR_IF_FIRST),
ssorce 798fa90
 			read_only?O_RDONLY:(O_RDWR|O_CREAT), 0644 );
ssorce 798fa90
 	if (!tdb) {
ssorce 798fa90
 		DEBUG(0,("Failed to open byte range locking database %s\n",
ssorce 798fa90
-			lock_path("brlock.tdb")));
ssorce 798fa90
+			cache_path("brlock.tdb")));
ssorce 798fa90
 		return;
ssorce 798fa90
 	}
ssorce 798fa90
 }
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/locking/locking.c samba-3.0.24.new/source/locking/locking.c
ssorce 798fa90
--- samba-3.0.24.old/source/locking/locking.c	2007-02-04 13:59:23.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/locking/locking.c	2007-03-06 15:58:19.000000000 -0500
ssorce 798fa90
@@ -369,7 +369,7 @@
ssorce 798fa90
 	if (tdb)
ssorce 798fa90
 		return True;
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("locking.tdb"), 
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("locking.tdb"), 
ssorce 798fa90
 			lp_open_files_db_hash_size(),
ssorce 798fa90
 			TDB_DEFAULT|(read_only?0x0:TDB_CLEAR_IF_FIRST), 
ssorce 798fa90
 			read_only?O_RDONLY:O_RDWR|O_CREAT,
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/Makefile.in samba-3.0.24.new/source/Makefile.in
ssorce 798fa90
--- samba-3.0.24.old/source/Makefile.in	2007-02-04 13:59:28.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/Makefile.in	2007-03-06 15:40:03.000000000 -0500
ssorce 798fa90
@@ -98,7 +98,8 @@
ssorce 798fa90
 SWATDIR = @swatdir@
ssorce 798fa90
 
ssorce 798fa90
 # the directory where lock files go
ssorce 798fa90
-LOCKDIR = @lockdir@
ssorce 798fa90
+STATEDIR = @statedir@
ssorce 798fa90
+CACHEDIR = @cachedir@
ssorce 798fa90
 
ssorce 798fa90
 # the directory where pid files go
ssorce 798fa90
 PIDDIR = @piddir@
ssorce 798fa90
@@ -126,7 +127,7 @@
ssorce 798fa90
 PATH_FLAGS1 = -DCONFIGFILE=\"$(CONFIGFILE)\"  -DSBINDIR=\"$(SBINDIR)\"
ssorce 798fa90
 PATH_FLAGS2 = $(PATH_FLAGS1) -DBINDIR=\"$(BINDIR)\" -DDRIVERFILE=\"$(DRIVERFILE)\" 
ssorce 798fa90
 PATH_FLAGS3 = $(PATH_FLAGS2) -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" 
ssorce 798fa90
-PATH_FLAGS4 = $(PATH_FLAGS3) -DSWATDIR=\"$(SWATDIR)\"  -DLOCKDIR=\"$(LOCKDIR)\" -DPIDDIR=\"$(PIDDIR)\"
ssorce 798fa90
+PATH_FLAGS4 = $(PATH_FLAGS3) -DSWATDIR=\"$(SWATDIR)\"  -DSTATEDIR=\"$(STATEDIR)\" -DCACHEDIR=\"$(CACHEEDIR)\" -DPIDDIR=\"$(PIDDIR)\"
ssorce 798fa90
 PATH_FLAGS5 = $(PATH_FLAGS4) -DLIBDIR=\"$(LIBDIR)\" \
ssorce 798fa90
 	      -DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"@SHLIBEXT@\"
ssorce 798fa90
 PATH_FLAGS6 = $(PATH_FLAGS5) -DCONFIGDIR=\"$(CONFIGDIR)\"
ssorce 798fa90
@@ -1437,7 +1438,7 @@
ssorce 798fa90
 # is not used
ssorce 798fa90
 
ssorce 798fa90
 installdirs:
ssorce 798fa90
-	@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(BINDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(PRIVATEDIR) $(PIDDIR) $(LOCKDIR) $(MANDIR)
ssorce 798fa90
+	@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(BINDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(PRIVATEDIR) $(PIDDIR) $(STATEDIR) $(CACHEDIR) $(MANDIR)
ssorce 798fa90
 
ssorce 798fa90
 installservers: all installdirs
ssorce 798fa90
 	@$(SHELL) script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(SBINDIR) $(SBIN_PROGS)
ssorce 798fa90
@@ -1549,7 +1550,8 @@
ssorce 798fa90
 	@echo "  mandir:      $(MANDIR)"
ssorce 798fa90
 	@echo "  privatedir:  $(PRIVATE_DIR)"
ssorce 798fa90
 	@echo "  configdir:   $(CONFIGDIR)"
ssorce 798fa90
-	@echo "  lockdir:     $(LOCKDIR)"
ssorce 798fa90
+	@echo "  statedir:    $(STATEDIR)"
ssorce 798fa90
+	@echo "  cachedir:    $(CACHEDIR)"
ssorce 798fa90
 	@echo "  piddir:      $(PIDDIR)"
ssorce 798fa90
 	@echo "  swatdir:     $(SWATDIR)"
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/nmbd/nmbd.c samba-3.0.24.new/source/nmbd/nmbd.c
ssorce 798fa90
--- samba-3.0.24.old/source/nmbd/nmbd.c	2007-02-04 13:59:23.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/nmbd/nmbd.c	2007-03-06 15:21:15.000000000 -0500
ssorce 798fa90
@@ -741,8 +741,8 @@
ssorce 798fa90
 	}
ssorce 798fa90
 #endif
ssorce 798fa90
 
ssorce 798fa90
-	if (!directory_exist(lp_lockdir(), NULL)) {
ssorce 798fa90
-		mkdir(lp_lockdir(), 0755);
ssorce 798fa90
+	if (!directory_exist(lp_statedir(), NULL)) {
ssorce 798fa90
+		mkdir(lp_statedir(), 0755);
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
 	pidfile_create("nmbd");
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/nmbd/nmbd_namelistdb.c samba-3.0.24.new/source/nmbd/nmbd_namelistdb.c
ssorce 798fa90
--- samba-3.0.24.old/source/nmbd/nmbd_namelistdb.c	2007-02-04 13:59:23.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/nmbd/nmbd_namelistdb.c	2007-03-06 15:58:37.000000000 -0500
ssorce 798fa90
@@ -626,7 +626,7 @@
ssorce 798fa90
 	XFILE *fp; 
ssorce 798fa90
 	struct subnet_record *subrec;
ssorce 798fa90
 
ssorce 798fa90
-	fp = x_fopen(lock_path("namelist.debug"),O_WRONLY|O_CREAT|O_TRUNC, 0644);
ssorce 798fa90
+	fp = x_fopen(cache_path("namelist.debug"),O_WRONLY|O_CREAT|O_TRUNC, 0644);
ssorce 798fa90
      
ssorce 798fa90
 	if (!fp) { 
ssorce 798fa90
 		DEBUG(0,("dump_all_namelists: Can't open file %s. Error was %s\n",
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/nmbd/nmbd_processlogon.c samba-3.0.24.new/source/nmbd/nmbd_processlogon.c
ssorce 798fa90
--- samba-3.0.24.old/source/nmbd/nmbd_processlogon.c	2005-02-25 12:59:38.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/nmbd/nmbd_processlogon.c	2007-03-06 15:58:56.000000000 -0500
ssorce 798fa90
@@ -40,7 +40,7 @@
ssorce 798fa90
 {
ssorce 798fa90
         TDB_CONTEXT *tdb;
ssorce 798fa90
 
ssorce 798fa90
-        tdb = tdb_open_log(lock_path("connections.tdb"), 0,
ssorce 798fa90
+        tdb = tdb_open_log(cache_path("connections.tdb"), 0,
ssorce 798fa90
                            TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 
ssorce 798fa90
         if (!tdb) {
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/nmbd/nmbd_serverlistdb.c samba-3.0.24.new/source/nmbd/nmbd_serverlistdb.c
ssorce 798fa90
--- samba-3.0.24.old/source/nmbd/nmbd_serverlistdb.c	2007-02-04 13:59:23.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/nmbd/nmbd_serverlistdb.c	2007-03-06 15:21:25.000000000 -0500
ssorce 798fa90
@@ -325,7 +325,7 @@
ssorce 798fa90
 
ssorce 798fa90
 	updatecount++;
ssorce 798fa90
     
ssorce 798fa90
-	pstrcpy(fname,lp_lockdir());
ssorce 798fa90
+	pstrcpy(fname,lp_statedir());
ssorce 798fa90
 	trim_char(fname,'\0' ,'/');
ssorce 798fa90
 	pstrcat(fname,"/");
ssorce 798fa90
 	pstrcat(fname,SERVER_LIST);
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/nmbd/nmbd_synclists.c samba-3.0.24.new/source/nmbd/nmbd_synclists.c
ssorce 798fa90
--- samba-3.0.24.old/source/nmbd/nmbd_synclists.c	2005-10-17 22:45:04.000000000 -0400
ssorce 798fa90
+++ samba-3.0.24.new/source/nmbd/nmbd_synclists.c	2007-03-06 15:21:33.000000000 -0500
ssorce 798fa90
@@ -154,7 +154,7 @@
ssorce 798fa90
 	s->ip = ip;
ssorce 798fa90
 
ssorce 798fa90
 	slprintf(s->fname, sizeof(pstring)-1,
ssorce 798fa90
-		 "%s/sync.%d", lp_lockdir(), counter++);
ssorce 798fa90
+		 "%s/sync.%d", lp_statedir(), counter++);
ssorce 798fa90
 	all_string_sub(s->fname,"//", "/", 0);
ssorce 798fa90
 	
ssorce 798fa90
 	DLIST_ADD(syncs, s);
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/nmbd/nmbd_winsserver.c samba-3.0.24.new/source/nmbd/nmbd_winsserver.c
ssorce 798fa90
--- samba-3.0.24.old/source/nmbd/nmbd_winsserver.c	2007-02-04 13:59:23.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/nmbd/nmbd_winsserver.c	2007-03-06 15:59:13.000000000 -0500
ssorce 798fa90
@@ -574,7 +574,7 @@
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
 	/* Open the wins.tdb. */
ssorce 798fa90
-	wins_tdb = tdb_open_log(lock_path("wins.tdb"), 0, TDB_DEFAULT|TDB_CLEAR_IF_FIRST, O_CREAT|O_RDWR, 0600);
ssorce 798fa90
+	wins_tdb = tdb_open_log(state_path("wins.tdb"), 0, TDB_DEFAULT|TDB_CLEAR_IF_FIRST, O_CREAT|O_RDWR, 0600);
ssorce 798fa90
 	if (!wins_tdb) {
ssorce 798fa90
 		DEBUG(0,("initialise_wins: failed to open wins.tdb. Error was %s\n",
ssorce 798fa90
 			strerror(errno) ));
ssorce 798fa90
@@ -585,7 +585,7 @@
ssorce 798fa90
 
ssorce 798fa90
 	add_samba_names_to_subnet(wins_server_subnet);
ssorce 798fa90
 
ssorce 798fa90
-	if((fp = x_fopen(lock_path(WINS_LIST),O_RDONLY,0)) == NULL) {
ssorce 798fa90
+	if((fp = x_fopen(state_path(WINS_LIST),O_RDONLY,0)) == NULL) {
ssorce 798fa90
 		DEBUG(2,("initialise_wins: Can't open wins database file %s. Error was %s\n",
ssorce 798fa90
 			WINS_LIST, strerror(errno) ));
ssorce 798fa90
 		return True;
ssorce 798fa90
@@ -2337,7 +2337,7 @@
ssorce 798fa90
 		}
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	slprintf(fname,sizeof(fname)-1,"%s/%s", lp_lockdir(), WINS_LIST);
ssorce 798fa90
+	slprintf(fname,sizeof(fname)-1,"%s/%s", lp_statedir(), WINS_LIST);
ssorce 798fa90
 	all_string_sub(fname,"//", "/", 0);
ssorce 798fa90
 	slprintf(fnamenew,sizeof(fnamenew)-1,"%s.%u", fname, (unsigned int)sys_getpid());
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/nsswitch/winbindd_cache.c samba-3.0.24.new/source/nsswitch/winbindd_cache.c
ssorce 798fa90
--- samba-3.0.24.old/source/nsswitch/winbindd_cache.c	2007-02-04 13:59:14.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/nsswitch/winbindd_cache.c	2007-03-06 15:59:32.000000000 -0500
ssorce 798fa90
@@ -1942,7 +1942,7 @@
ssorce 798fa90
 		return True;
ssorce 798fa90
 
ssorce 798fa90
 	/* when working offline we must not clear the cache on restart */
ssorce 798fa90
-	wcache->tdb = tdb_open_log(lock_path("winbindd_cache.tdb"),
ssorce 798fa90
+	wcache->tdb = tdb_open_log(cache_path("winbindd_cache.tdb"),
ssorce 798fa90
 				WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE, 
ssorce 798fa90
 				lp_winbind_offline_logon() ? TDB_DEFAULT : (TDB_DEFAULT | TDB_CLEAR_IF_FIRST), 
ssorce 798fa90
 				O_RDWR|O_CREAT, 0600);
ssorce 798fa90
@@ -2186,7 +2186,7 @@
ssorce 798fa90
 		return;
ssorce 798fa90
 
ssorce 798fa90
 	/* when working offline we must not clear the cache on restart */
ssorce 798fa90
-	wcache->tdb = tdb_open_log(lock_path("winbindd_cache.tdb"),
ssorce 798fa90
+	wcache->tdb = tdb_open_log(cache_path("winbindd_cache.tdb"),
ssorce 798fa90
 				WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE, 
ssorce 798fa90
 				lp_winbind_offline_logon() ? TDB_DEFAULT : (TDB_DEFAULT | TDB_CLEAR_IF_FIRST), 
ssorce 798fa90
 				O_RDWR|O_CREAT, 0600);
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/nsswitch/winbindd_util.c samba-3.0.24.new/source/nsswitch/winbindd_util.c
ssorce 798fa90
--- samba-3.0.24.old/source/nsswitch/winbindd_util.c	2007-02-04 13:59:14.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/nsswitch/winbindd_util.c	2007-03-06 15:59:59.000000000 -0500
ssorce 798fa90
@@ -911,7 +911,7 @@
ssorce 798fa90
 
ssorce 798fa90
 char *get_winbind_priv_pipe_dir(void) 
ssorce 798fa90
 {
ssorce 798fa90
-	return lock_path(WINBINDD_PRIV_SOCKET_SUBDIR);
ssorce 798fa90
+	return state_path(WINBINDD_PRIV_SOCKET_SUBDIR);
ssorce 798fa90
 }
ssorce 798fa90
 
ssorce 798fa90
 /* Open the winbindd socket */
ssorce 798fa90
@@ -1182,7 +1182,7 @@
ssorce 798fa90
 	SMB_STRUCT_STAT stbuf;
ssorce 798fa90
 	TDB_CONTEXT *idmap_tdb;
ssorce 798fa90
 
ssorce 798fa90
-	pstrcpy(idmap_name, lock_path("winbindd_idmap.tdb"));
ssorce 798fa90
+	pstrcpy(idmap_name, state_path("winbindd_idmap.tdb"));
ssorce 798fa90
 
ssorce 798fa90
 	if (!file_exist(idmap_name, &stbuf)) {
ssorce 798fa90
 		/* nothing to convert return */
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/param/loadparm.c samba-3.0.24.new/source/param/loadparm.c
ssorce 798fa90
--- samba-3.0.24.old/source/param/loadparm.c	2007-02-04 13:59:13.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/param/loadparm.c	2007-03-06 15:52:22.000000000 -0500
ssorce 798fa90
@@ -107,7 +107,8 @@
ssorce 798fa90
 	char *szAddPrinterCommand;
ssorce 798fa90
 	char *szDeletePrinterCommand;
ssorce 798fa90
 	char *szOs2DriverMap;
ssorce 798fa90
-	char *szLockDir;
ssorce 798fa90
+	char *szCacheDir;
ssorce 798fa90
+	char *szStateDir;
ssorce 798fa90
 	char *szPidDir;
ssorce 798fa90
 	char *szRootdir;
ssorce 798fa90
 	char *szDefaultService;
ssorce 798fa90
@@ -621,6 +622,7 @@
ssorce 798fa90
 static BOOL handle_netbios_scope( int snum, const char *pszParmValue, char **ptr );
ssorce 798fa90
 static BOOL handle_charset( int snum, const char *pszParmValue, char **ptr );
ssorce 798fa90
 static BOOL handle_printing( int snum, const char *pszParmValue, char **ptr);
ssorce 798fa90
+static BOOL handle_lock_dir( int snum, const char *pszParmValue, char **ptr);
ssorce 798fa90
 
ssorce 798fa90
 static void set_server_role(void);
ssorce 798fa90
 static void set_default_server_announce_type(void);
ssorce 798fa90
@@ -1186,8 +1188,10 @@
ssorce 798fa90
 	{"config file", P_STRING, P_GLOBAL, &Globals.szConfigFile, NULL, NULL, FLAG_HIDE}, 
ssorce 798fa90
 	{"preload", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED}, 
ssorce 798fa90
 	{"auto services", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED}, 
ssorce 798fa90
-	{"lock directory", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_ADVANCED}, 
ssorce 798fa90
-	{"lock dir", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_HIDE}, 
ssorce 798fa90
+	{"cache directory", P_STRING, P_GLOBAL, &Globals.szCacheDir, NULL, NULL, FLAG_ADVANCED}, 
ssorce 798fa90
+	{"state directory", P_STRING, P_GLOBAL, &Globals.szStateDir, NULL, NULL, FLAG_ADVANCED}, 
ssorce 798fa90
+	{"lock directory", P_STRING, P_GLOBAL, &Globals.szCacheDir, handle_lock_dir, NULL, FLAG_HIDE | FLAG_DEPRECATED}, 
ssorce 798fa90
+	{"lock dir", P_STRING, P_GLOBAL, &Globals.szCacheDir, NULL, NULL, FLAG_HIDE | FLAG_DEPRECATED }, 
ssorce 798fa90
 	{"pid directory", P_STRING, P_GLOBAL, &Globals.szPidDir, NULL, NULL, FLAG_ADVANCED}, 
ssorce 798fa90
 #ifdef WITH_UTMP
ssorce 798fa90
 	{"utmp directory", P_STRING, P_GLOBAL, &Globals.szUtmpDir, NULL, NULL, FLAG_ADVANCED}, 
ssorce 798fa90
@@ -1445,7 +1449,8 @@
ssorce 798fa90
 	
ssorce 798fa90
 	string_set(&Globals.szPasswdProgram, "");
ssorce 798fa90
 	string_set(&Globals.szPidDir, dyn_PIDDIR);
ssorce 798fa90
-	string_set(&Globals.szLockDir, dyn_LOCKDIR);
ssorce 798fa90
+	string_set(&Globals.szCacheDir, dyn_CACHEDIR);
ssorce 798fa90
+	string_set(&Globals.szStateDir, dyn_STATEDIR);
ssorce 798fa90
 	string_set(&Globals.szSocketAddress, "0.0.0.0");
ssorce 798fa90
 	pstrcpy(s, "Samba ");
ssorce 798fa90
 	pstrcat(s, SAMBA_VERSION_STRING);
ssorce 798fa90
@@ -1642,7 +1647,7 @@
ssorce 798fa90
 	Globals.bASUSupport       = False;
ssorce 798fa90
 	
ssorce 798fa90
 	/* User defined shares. */
ssorce 798fa90
-	pstrcpy(s, dyn_LOCKDIR);
ssorce 798fa90
+	pstrcpy(s, dyn_STATEDIR);
ssorce 798fa90
 	pstrcat(s, "/usershares");
ssorce 798fa90
 	string_set(&Globals.szUsersharePath, s);
ssorce 798fa90
 	string_set(&Globals.szUsershareTemplateShare, "");
ssorce 798fa90
@@ -1761,7 +1766,8 @@
ssorce 798fa90
 FN_GLOBAL_STRING(lp_addprinter_cmd, &Globals.szAddPrinterCommand)
ssorce 798fa90
 FN_GLOBAL_STRING(lp_deleteprinter_cmd, &Globals.szDeletePrinterCommand)
ssorce 798fa90
 FN_GLOBAL_STRING(lp_os2_driver_map, &Globals.szOs2DriverMap)
ssorce 798fa90
-FN_GLOBAL_STRING(lp_lockdir, &Globals.szLockDir)
ssorce 798fa90
+FN_GLOBAL_STRING(lp_cachedir, &Globals.szCacheDir)
ssorce 798fa90
+FN_GLOBAL_STRING(lp_statedir, &Globals.szStateDir)
ssorce 798fa90
 FN_GLOBAL_STRING(lp_piddir, &Globals.szPidDir)
ssorce 798fa90
 FN_GLOBAL_STRING(lp_mangling_method, &Globals.szManglingMethod)
ssorce 798fa90
 FN_GLOBAL_INTEGER(lp_mangle_prefix, &Globals.mangle_prefix)
ssorce 798fa90
@@ -3333,6 +3339,14 @@
ssorce 798fa90
 	return True;
ssorce 798fa90
 }
ssorce 798fa90
 
ssorce 798fa90
+/************** handle deprecated lock directory paramter ***************/
ssorce 798fa90
+
ssorce 798fa90
+static BOOL handle_lock_dir(int snum, const char *pszParmValue, char **ptr)
ssorce 798fa90
+{
ssorce 798fa90
+	/* set also the state dir */
ssorce 798fa90
+	string_set(&Globals.szStateDir, pszParmValue);
ssorce 798fa90
+}
ssorce 798fa90
+
ssorce 798fa90
 
ssorce 798fa90
 /***************************************************************************
ssorce 798fa90
  Initialise a copymap.
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/passdb/login_cache.c samba-3.0.24.new/source/passdb/login_cache.c
ssorce 798fa90
--- samba-3.0.24.old/source/passdb/login_cache.c	2007-02-04 13:59:21.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/passdb/login_cache.c	2007-03-06 15:27:15.000000000 -0500
ssorce 798fa90
@@ -36,7 +36,7 @@
ssorce 798fa90
 	/* skip file open if it's already opened */
ssorce 798fa90
 	if (cache) return True;
ssorce 798fa90
 
ssorce 798fa90
-	asprintf(&cache_fname, "%s/%s", lp_lockdir(), LOGIN_CACHE_FILE);
ssorce 798fa90
+	asprintf(&cache_fname, "%s/%s", lp_cachedir(), LOGIN_CACHE_FILE);
ssorce 798fa90
 	if (cache_fname)
ssorce 798fa90
 		DEBUG(5, ("Opening cache file at %s\n", cache_fname));
ssorce 798fa90
 	else {
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/passdb/pdb_tdb.c samba-3.0.24.new/source/passdb/pdb_tdb.c
ssorce 798fa90
--- samba-3.0.24.old/source/passdb/pdb_tdb.c	2007-02-04 13:59:21.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/passdb/pdb_tdb.c	2007-03-06 16:00:05.000000000 -0500
ssorce 798fa90
@@ -1548,7 +1548,7 @@
ssorce 798fa90
 	uint32 rid;
ssorce 798fa90
 	BOOL ret = False;
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("winbindd_idmap.tdb"), 0,
ssorce 798fa90
+	tdb = tdb_open_log(state_path("winbindd_idmap.tdb"), 0,
ssorce 798fa90
 			   TDB_DEFAULT, O_RDWR | O_CREAT, 0644);
ssorce 798fa90
 
ssorce 798fa90
 	if (tdb == NULL) {
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/printing/nt_printing.c samba-3.0.24.new/source/printing/nt_printing.c
ssorce 798fa90
--- samba-3.0.24.old/source/printing/nt_printing.c	2007-02-04 14:09:01.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/printing/nt_printing.c	2007-03-06 16:01:19.000000000 -0500
ssorce 798fa90
@@ -551,28 +551,28 @@
ssorce 798fa90
  
ssorce 798fa90
 	if (tdb_drivers)
ssorce 798fa90
 		tdb_close(tdb_drivers);
ssorce 798fa90
-	tdb_drivers = tdb_open_log(lock_path("ntdrivers.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
+	tdb_drivers = tdb_open_log(state_path("ntdrivers.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
 	if (!tdb_drivers) {
ssorce 798fa90
 		DEBUG(0,("nt_printing_init: Failed to open nt drivers database %s (%s)\n",
ssorce 798fa90
-			lock_path("ntdrivers.tdb"), strerror(errno) ));
ssorce 798fa90
+			state_path("ntdrivers.tdb"), strerror(errno) ));
ssorce 798fa90
 		return False;
ssorce 798fa90
 	}
ssorce 798fa90
  
ssorce 798fa90
 	if (tdb_printers)
ssorce 798fa90
 		tdb_close(tdb_printers);
ssorce 798fa90
-	tdb_printers = tdb_open_log(lock_path("ntprinters.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
+	tdb_printers = tdb_open_log(state_path("ntprinters.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
 	if (!tdb_printers) {
ssorce 798fa90
 		DEBUG(0,("nt_printing_init: Failed to open nt printers database %s (%s)\n",
ssorce 798fa90
-			lock_path("ntprinters.tdb"), strerror(errno) ));
ssorce 798fa90
+			state_path("ntprinters.tdb"), strerror(errno) ));
ssorce 798fa90
 		return False;
ssorce 798fa90
 	}
ssorce 798fa90
  
ssorce 798fa90
 	if (tdb_forms)
ssorce 798fa90
 		tdb_close(tdb_forms);
ssorce 798fa90
-	tdb_forms = tdb_open_log(lock_path("ntforms.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
+	tdb_forms = tdb_open_log(state_path("ntforms.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
 	if (!tdb_forms) {
ssorce 798fa90
 		DEBUG(0,("nt_printing_init: Failed to open nt forms database %s (%s)\n",
ssorce 798fa90
-			lock_path("ntforms.tdb"), strerror(errno) ));
ssorce 798fa90
+			state_path("ntforms.tdb"), strerror(errno) ));
ssorce 798fa90
 		return False;
ssorce 798fa90
 	}
ssorce 798fa90
  
ssorce 798fa90
@@ -2348,7 +2348,7 @@
ssorce 798fa90
 	close_all_print_db();
ssorce 798fa90
 
ssorce 798fa90
 	if (geteuid() == 0) {
ssorce 798fa90
-		pstrcpy(printdb_path, lock_path("printing/"));
ssorce 798fa90
+		pstrcpy(printdb_path, state_path("printing/"));
ssorce 798fa90
 		pstrcat(printdb_path, sharename);
ssorce 798fa90
 		pstrcat(printdb_path, ".tdb");
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/printing/printing.c samba-3.0.24.new/source/printing/printing.c
ssorce 798fa90
--- samba-3.0.24.old/source/printing/printing.c	2007-02-04 13:59:13.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/printing/printing.c	2007-03-06 16:01:54.000000000 -0500
ssorce 798fa90
@@ -183,9 +183,9 @@
ssorce 798fa90
 	int services = lp_numservices();
ssorce 798fa90
 	int snum;
ssorce 798fa90
 
ssorce 798fa90
-	unlink(lock_path("printing.tdb"));
ssorce 798fa90
-	pstrcpy(printing_path,lock_path("printing"));
ssorce 798fa90
-	mkdir(printing_path,0755);
ssorce 798fa90
+	unlink(state_path("printing.tdb"));
ssorce 798fa90
+	pstrcpy(printing_path, state_path("printing"));
ssorce 798fa90
+	mkdir(printing_path, 0755);
ssorce 798fa90
 
ssorce 798fa90
 	/* handle a Samba upgrade */
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/printing/printing_db.c samba-3.0.24.new/source/printing/printing_db.c
ssorce 798fa90
--- samba-3.0.24.old/source/printing/printing_db.c	2007-02-04 13:59:13.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/printing/printing_db.c	2007-03-06 16:02:04.000000000 -0500
ssorce 798fa90
@@ -91,7 +91,7 @@
ssorce 798fa90
 		DLIST_ADD(print_db_head, p);
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	pstrcpy(printdb_path, lock_path("printing/"));
ssorce 798fa90
+	pstrcpy(printdb_path, state_path("printing/"));
ssorce 798fa90
 	pstrcat(printdb_path, printername);
ssorce 798fa90
 	pstrcat(printdb_path, ".tdb");
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/registry/reg_db.c samba-3.0.24.new/source/registry/reg_db.c
ssorce 798fa90
--- samba-3.0.24.old/source/registry/reg_db.c	2006-04-19 22:29:45.000000000 -0400
ssorce 798fa90
+++ samba-3.0.24.new/source/registry/reg_db.c	2007-03-06 16:02:35.000000000 -0500
ssorce 798fa90
@@ -205,12 +205,12 @@
ssorce 798fa90
 	if ( tdb_reg )
ssorce 798fa90
 		return True;
ssorce 798fa90
 
ssorce 798fa90
-	if ( !(tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600)) )
ssorce 798fa90
+	if ( !(tdb_reg = tdb_open_log(state_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600)) )
ssorce 798fa90
 	{
ssorce 798fa90
-		tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
+		tdb_reg = tdb_open_log(state_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
 		if ( !tdb_reg ) {
ssorce 798fa90
 			DEBUG(0,("regdb_init: Failed to open registry %s (%s)\n",
ssorce 798fa90
-				lock_path("registry.tdb"), strerror(errno) ));
ssorce 798fa90
+				state_path("registry.tdb"), strerror(errno) ));
ssorce 798fa90
 			return False;
ssorce 798fa90
 		}
ssorce 798fa90
 		
ssorce 798fa90
@@ -252,11 +252,11 @@
ssorce 798fa90
 	
ssorce 798fa90
 	become_root();
ssorce 798fa90
 
ssorce 798fa90
-	tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600);
ssorce 798fa90
+	tdb_reg = tdb_open_log(state_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600);
ssorce 798fa90
 	if ( !tdb_reg ) {
ssorce 798fa90
 		result = ntstatus_to_werror( map_nt_error_from_unix( errno ) );
ssorce 798fa90
 		DEBUG(0,("regdb_open: Failed to open %s! (%s)\n", 
ssorce 798fa90
-			lock_path("registry.tdb"), strerror(errno) ));
ssorce 798fa90
+			state_path("registry.tdb"), strerror(errno) ));
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
 	unbecome_root();
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/registry/reg_perfcount.c samba-3.0.24.new/source/registry/reg_perfcount.c
ssorce 798fa90
--- samba-3.0.24.old/source/registry/reg_perfcount.c	2007-02-04 13:59:26.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/registry/reg_perfcount.c	2007-03-06 16:03:22.000000000 -0500
ssorce 798fa90
@@ -44,7 +44,7 @@
ssorce 798fa90
 	
ssorce 798fa90
 	fstr_sprintf( path, "%s/%s", PERFCOUNTDIR, dbname );
ssorce 798fa90
 	
ssorce 798fa90
-	pstrcpy( fname, lock_path( path ) );
ssorce 798fa90
+	pstrcpy( fname, state_path( path ) );
ssorce 798fa90
 	
ssorce 798fa90
 	return fname;
ssorce 798fa90
 }
ssorce 798fa90
@@ -54,7 +54,7 @@
ssorce 798fa90
 
ssorce 798fa90
 void perfcount_init_keys( void )
ssorce 798fa90
 {
ssorce 798fa90
-	char *p = lock_path(PERFCOUNTDIR);
ssorce 798fa90
+	char *p = state_path(PERFCOUNTDIR);
ssorce 798fa90
 
ssorce 798fa90
 	/* no registry keys; just create the perfmon directory */
ssorce 798fa90
 	
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/rpc_server/srv_eventlog_lib.c samba-3.0.24.new/source/rpc_server/srv_eventlog_lib.c
ssorce 798fa90
--- samba-3.0.24.old/source/rpc_server/srv_eventlog_lib.c	2007-02-04 13:59:21.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/rpc_server/srv_eventlog_lib.c	2007-03-06 16:03:50.000000000 -0500
ssorce 798fa90
@@ -67,7 +67,7 @@
ssorce 798fa90
 {
ssorce 798fa90
 	fstring path;
ssorce 798fa90
 	char *tdb_fullpath;
ssorce 798fa90
-	char *eventlogdir = lock_path( "eventlog" );
ssorce 798fa90
+	char *eventlogdir = state_path( "eventlog" );
ssorce 798fa90
 	
ssorce 798fa90
 	pstr_sprintf( path, "%s/%s.tdb", eventlogdir, name );
ssorce 798fa90
 	strlower_m( path );
ssorce 798fa90
@@ -349,7 +349,7 @@
ssorce 798fa90
 	
ssorce 798fa90
 	/* make sure that the eventlog dir exists */
ssorce 798fa90
 	
ssorce 798fa90
-	eventlogdir = lock_path( "eventlog" );
ssorce 798fa90
+	eventlogdir = state_path( "eventlog" );
ssorce 798fa90
 	if ( !directory_exist( eventlogdir, NULL ) )
ssorce 798fa90
 		mkdir( eventlogdir, 0755 );	
ssorce 798fa90
 	
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/rpc_server/srv_netlog_nt.c samba-3.0.24.new/source/rpc_server/srv_netlog_nt.c
ssorce 798fa90
--- samba-3.0.24.old/source/rpc_server/srv_netlog_nt.c	2007-02-04 13:59:21.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/rpc_server/srv_netlog_nt.c	2007-03-06 16:07:25.000000000 -0500
ssorce 798fa90
@@ -77,7 +77,7 @@
ssorce 798fa90
 {
ssorce 798fa90
         TDB_CONTEXT *tdb;
ssorce 798fa90
 
ssorce 798fa90
-        tdb = tdb_open_log(lock_path("connections.tdb"), 0,
ssorce 798fa90
+        tdb = tdb_open_log(cache_path("connections.tdb"), 0,
ssorce 798fa90
                            TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 
ssorce 798fa90
         if (!tdb) {
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/sam/idmap_tdb.c samba-3.0.24.new/source/sam/idmap_tdb.c
ssorce 798fa90
--- samba-3.0.24.old/source/sam/idmap_tdb.c	2006-04-19 22:29:35.000000000 -0400
ssorce 798fa90
+++ samba-3.0.24.new/source/sam/idmap_tdb.c	2007-03-06 16:04:00.000000000 -0500
ssorce 798fa90
@@ -449,7 +449,7 @@
ssorce 798fa90
 	BOOL tdb_is_new = False;
ssorce 798fa90
 
ssorce 798fa90
 	/* use the old database if present */
ssorce 798fa90
-	tdbfile = SMB_STRDUP(lock_path("winbindd_idmap.tdb"));
ssorce 798fa90
+	tdbfile = SMB_STRDUP(state_path("winbindd_idmap.tdb"));
ssorce 798fa90
 	if (!tdbfile) {
ssorce 798fa90
 		DEBUG(0, ("idmap_init: out of memory!\n"));
ssorce 798fa90
 		return NT_STATUS_NO_MEMORY;
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/script/mkbuildoptions.awk samba-3.0.24.new/source/script/mkbuildoptions.awk
ssorce 798fa90
--- samba-3.0.24.old/source/script/mkbuildoptions.awk	2007-02-04 13:59:25.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/script/mkbuildoptions.awk	2007-03-06 15:40:45.000000000 -0500
ssorce 798fa90
@@ -86,7 +86,8 @@
ssorce 798fa90
 	print "       output(screen,\"   LIBDIR: %s\\n\",dyn_LIBDIR);";
ssorce 798fa90
 	print "       output(screen,\"   SHLIBEXT: %s\\n\",dyn_SHLIBEXT);";
ssorce 798fa90
 
ssorce 798fa90
-	print "       output(screen,\"   LOCKDIR: %s\\n\",dyn_LOCKDIR);";
ssorce 798fa90
+	print "       output(screen,\"   STATEDIR: %s\\n\",dyn_STATEDIR);";
ssorce 798fa90
+	print "       output(screen,\"   CACHEDIR: %s\\n\",dyn_CACHEDIR);";
ssorce 798fa90
 	print "       output(screen,\"   PIDDIR: %s\\n\", dyn_PIDDIR);";
ssorce 798fa90
 
ssorce 798fa90
 	print "       output(screen,\"   SMB_PASSWD_FILE: %s\\n\",dyn_SMB_PASSWD_FILE);";
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/script/tests/selftest.sh samba-3.0.24.new/source/script/tests/selftest.sh
ssorce 798fa90
--- samba-3.0.24.old/source/script/tests/selftest.sh	2007-02-04 13:59:25.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/script/tests/selftest.sh	2007-03-06 15:42:00.000000000 -0500
ssorce 798fa90
@@ -41,13 +41,14 @@
ssorce 798fa90
 SERVERCONFFILE=$LIBDIR/server.conf
ssorce 798fa90
 COMMONCONFFILE=$LIBDIR/common.conf
ssorce 798fa90
 PRIVATEDIR=$PREFIX_ABS/private
ssorce 798fa90
-LOCKDIR=$PREFIX_ABS/lockdir
ssorce 798fa90
+STATEDIR=$PREFIX_ABS/lockdir
ssorce 798fa90
+CACHEDIR=$PREFIX_ABS/lockdir
ssorce 798fa90
 LOGDIR=$PREFIX_ABS/logs
ssorce 798fa90
 SOCKET_WRAPPER_DIR=$PREFIX/sw
ssorce 798fa90
 CONFIGURATION="-s $CONFFILE"
ssorce 798fa90
 
ssorce 798fa90
 export PREFIX PREFIX_ABS CONFIGURATION CONFFILE PATH SOCKET_WRAPPER_DIR DOMAIN
ssorce 798fa90
-export PRIVATEDIR LIBDIR PIDDIR LOCKDIR LOGDIR SERVERCONFFILE
ssorce 798fa90
+export PRIVATEDIR LIBDIR PIDDIR STATEDIR CACHEDIR LOGDIR SERVERCONFFILE
ssorce 798fa90
 export SRCDIR SCRIPTDIR
ssorce 798fa90
 export USERNAME PASSWORD
ssorce 798fa90
 export SMBTORTURE4
ssorce 798fa90
@@ -73,7 +74,7 @@
ssorce 798fa90
 ##
ssorce 798fa90
 echo -n "CREATE TEST ENVIRONMENT IN '$PREFIX'"...
ssorce 798fa90
 /bin/rm -rf $PREFIX/*
ssorce 798fa90
-mkdir -p $PRIVATEDIR $LIBDIR $PIDDIR $LOCKDIR $LOGDIR $SOCKET_WRAPPER_DIR
ssorce 798fa90
+mkdir -p $PRIVATEDIR $LIBDIR $PIDDIR $STATEDIR $CACHEDIR $LOGDIR $SOCKET_WRAPPER_DIR
ssorce 798fa90
 mkdir -p $PREFIX_ABS/tmp
ssorce 798fa90
 chmod 777 $PREFIX_ABS/tmp
ssorce 798fa90
 
ssorce 798fa90
@@ -86,7 +87,8 @@
ssorce 798fa90
 
ssorce 798fa90
 	private dir = $PRIVATEDIR
ssorce 798fa90
 	pid directory = $PIDDIR
ssorce 798fa90
-	lock directory = $LOCKDIR
ssorce 798fa90
+	state directory = $STATEDIR
ssorce 798fa90
+	cache directory = $CACHEDIR
ssorce 798fa90
 	log file = $LOGDIR/log.%m
ssorce 798fa90
 	log level = 0
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/smbd/connection.c samba-3.0.24.new/source/smbd/connection.c
ssorce 798fa90
--- samba-3.0.24.old/source/smbd/connection.c	2005-10-17 22:44:57.000000000 -0400
ssorce 798fa90
+++ samba-3.0.24.new/source/smbd/connection.c	2007-03-06 16:04:14.000000000 -0500
ssorce 798fa90
@@ -29,7 +29,7 @@
ssorce 798fa90
 TDB_CONTEXT *conn_tdb_ctx(void)
ssorce 798fa90
 {
ssorce 798fa90
 	if (!tdb)
ssorce 798fa90
-		tdb = tdb_open_log(lock_path("connections.tdb"), 0, TDB_CLEAR_IF_FIRST|TDB_DEFAULT, 
ssorce 798fa90
+		tdb = tdb_open_log(cache_path("connections.tdb"), 0, TDB_CLEAR_IF_FIRST|TDB_DEFAULT, 
ssorce 798fa90
 			       O_RDWR | O_CREAT, 0644);
ssorce 798fa90
 
ssorce 798fa90
 	return tdb;
ssorce 798fa90
@@ -131,7 +131,7 @@
ssorce 798fa90
 	TDB_DATA kbuf, dbuf;
ssorce 798fa90
 
ssorce 798fa90
 	if (!tdb)
ssorce 798fa90
-		tdb = tdb_open_log(lock_path("connections.tdb"), 0, TDB_CLEAR_IF_FIRST|TDB_DEFAULT, 
ssorce 798fa90
+		tdb = tdb_open_log(cache_path("connections.tdb"), 0, TDB_CLEAR_IF_FIRST|TDB_DEFAULT, 
ssorce 798fa90
 			       O_RDWR | O_CREAT, 0644);
ssorce 798fa90
 
ssorce 798fa90
 	if (!tdb)
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/smbd/lanman.c samba-3.0.24.new/source/smbd/lanman.c
ssorce 798fa90
--- samba-3.0.24.old/source/smbd/lanman.c	2007-02-04 13:59:13.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/smbd/lanman.c	2007-03-06 16:04:30.000000000 -0500
ssorce 798fa90
@@ -1052,9 +1052,9 @@
ssorce 798fa90
 	BOOL local_list_only;
ssorce 798fa90
 	int i;
ssorce 798fa90
 
ssorce 798fa90
-	lines = file_lines_load(lock_path(SERVER_LIST), NULL, 0);
ssorce 798fa90
+	lines = file_lines_load(state_path(SERVER_LIST), NULL, 0);
ssorce 798fa90
 	if (!lines) {
ssorce 798fa90
-		DEBUG(4,("Can't open %s - %s\n",lock_path(SERVER_LIST),strerror(errno)));
ssorce 798fa90
+		DEBUG(4,("Can't open %s - %s\n",state_path(SERVER_LIST),strerror(errno)));
ssorce 798fa90
 		return 0;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/smbd/oplock_irix.c samba-3.0.24.new/source/smbd/oplock_irix.c
ssorce 798fa90
--- samba-3.0.24.old/source/smbd/oplock_irix.c	2007-02-04 13:59:13.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/smbd/oplock_irix.c	2007-03-06 15:27:35.000000000 -0500
ssorce 798fa90
@@ -38,7 +38,7 @@
ssorce 798fa90
 
ssorce 798fa90
 	set_effective_capability(KERNEL_OPLOCK_CAPABILITY);
ssorce 798fa90
 
ssorce 798fa90
-	slprintf(tmpname,sizeof(tmpname)-1, "%s/koplock.%d", lp_lockdir(), (int)sys_getpid());
ssorce 798fa90
+	slprintf(tmpname,sizeof(tmpname)-1, "%s/koplock.%d", lp_cachedir(), (int)sys_getpid());
ssorce 798fa90
 
ssorce 798fa90
 	if(pipe(pfd) != 0) {
ssorce 798fa90
 		DEBUG(0,("check_kernel_oplocks: Unable to create pipe. Error was %s\n",
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/smbd/server.c samba-3.0.24.new/source/smbd/server.c
ssorce 798fa90
--- samba-3.0.24.old/source/smbd/server.c	2007-02-04 13:59:13.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/smbd/server.c	2007-03-06 15:28:08.000000000 -0500
ssorce 798fa90
@@ -902,8 +902,11 @@
ssorce 798fa90
 		setpgid( (pid_t)0, (pid_t)0);
ssorce 798fa90
 #endif
ssorce 798fa90
 
ssorce 798fa90
-	if (!directory_exist(lp_lockdir(), NULL))
ssorce 798fa90
-		mkdir(lp_lockdir(), 0755);
ssorce 798fa90
+	if (!directory_exist(lp_cachedir(), NULL))
ssorce 798fa90
+		mkdir(lp_cachedir(), 0755);
ssorce 798fa90
+
ssorce 798fa90
+	if (!directory_exist(lp_statedir(), NULL))
ssorce 798fa90
+		mkdir(lp_statedir(), 0755);
ssorce 798fa90
 
ssorce 798fa90
 	if (is_daemon)
ssorce 798fa90
 		pidfile_create("smbd");
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/smbd/session.c samba-3.0.24.new/source/smbd/session.c
ssorce 798fa90
--- samba-3.0.24.old/source/smbd/session.c	2006-04-19 22:29:19.000000000 -0400
ssorce 798fa90
+++ samba-3.0.24.new/source/smbd/session.c	2007-03-06 16:04:55.000000000 -0500
ssorce 798fa90
@@ -34,7 +34,7 @@
ssorce 798fa90
 	if (tdb)
ssorce 798fa90
 		return True;
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("sessionid.tdb"), 0, TDB_CLEAR_IF_FIRST|TDB_DEFAULT, 
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("sessionid.tdb"), 0, TDB_CLEAR_IF_FIRST|TDB_DEFAULT, 
ssorce 798fa90
 		       O_RDWR | O_CREAT, 0644);
ssorce 798fa90
 	if (!tdb) {
ssorce 798fa90
 		DEBUG(1,("session_init: failed to open sessionid tdb\n"));
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/utils/net_idmap.c samba-3.0.24.new/source/utils/net_idmap.c
ssorce 798fa90
--- samba-3.0.24.old/source/utils/net_idmap.c	2007-02-04 13:59:25.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/utils/net_idmap.c	2007-03-06 16:05:03.000000000 -0500
ssorce 798fa90
@@ -136,7 +136,7 @@
ssorce 798fa90
 		return NT_STATUS_UNSUCCESSFUL;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	tdbfile = SMB_STRDUP(lock_path("winbindd_idmap.tdb"));
ssorce 798fa90
+	tdbfile = SMB_STRDUP(state_path("winbindd_idmap.tdb"));
ssorce 798fa90
 	if (!tdbfile) {
ssorce 798fa90
 		DEBUG(0, ("idmap_init: out of memory!\n"));
ssorce 798fa90
 		return NT_STATUS_NO_MEMORY;
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/utils/net_status.c samba-3.0.24.new/source/utils/net_status.c
ssorce 798fa90
--- samba-3.0.24.old/source/utils/net_status.c	2007-02-04 13:59:25.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/utils/net_status.c	2007-03-06 16:05:45.000000000 -0500
ssorce 798fa90
@@ -70,11 +70,11 @@
ssorce 798fa90
 			 "------------------------\n");
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("sessionid.tdb"), 0,
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("sessionid.tdb"), 0,
ssorce 798fa90
 			   TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 
ssorce 798fa90
 	if (tdb == NULL) {
ssorce 798fa90
-		d_fprintf(stderr, "%s not initialised\n", lock_path("sessionid.tdb"));
ssorce 798fa90
+		d_fprintf(stderr, "%s not initialised\n", cache_path("sessionid.tdb"));
ssorce 798fa90
 		return -1;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
@@ -186,22 +186,22 @@
ssorce 798fa90
 	ids.num_entries = 0;
ssorce 798fa90
 	ids.entries = NULL;
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("sessionid.tdb"), 0,
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("sessionid.tdb"), 0,
ssorce 798fa90
 			   TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 
ssorce 798fa90
 	if (tdb == NULL) {
ssorce 798fa90
-		d_fprintf(stderr, "%s not initialised\n", lock_path("sessionid.tdb"));
ssorce 798fa90
+		d_fprintf(stderr, "%s not initialised\n", cache_path("sessionid.tdb"));
ssorce 798fa90
 		return -1;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
 	tdb_traverse(tdb, collect_pid, &ids);
ssorce 798fa90
 	tdb_close(tdb);
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("connections.tdb"), 0,
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("connections.tdb"), 0,
ssorce 798fa90
 			   TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 
ssorce 798fa90
 	if (tdb == NULL) {
ssorce 798fa90
-		d_fprintf(stderr, "%s not initialised\n", lock_path("connections.tdb"));
ssorce 798fa90
+		d_fprintf(stderr, "%s not initialised\n", cache_path("connections.tdb"));
ssorce 798fa90
 		d_fprintf(stderr, "This is normal if no SMB client has ever "
ssorce 798fa90
 			 "connected to your server.\n");
ssorce 798fa90
 		return -1;
ssorce 798fa90
@@ -226,12 +226,12 @@
ssorce 798fa90
 		d_printf("-------------------------------------"
ssorce 798fa90
 			 "------------------\n");
ssorce 798fa90
 
ssorce 798fa90
-		tdb = tdb_open_log(lock_path("connections.tdb"), 0,
ssorce 798fa90
+		tdb = tdb_open_log(cache_path("connections.tdb"), 0,
ssorce 798fa90
 				   TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 
ssorce 798fa90
 		if (tdb == NULL) {
ssorce 798fa90
 			d_fprintf(stderr, "%s not initialised\n",
ssorce 798fa90
-				 lock_path("connections.tdb"));
ssorce 798fa90
+				 cache_path("connections.tdb"));
ssorce 798fa90
 			d_fprintf(stderr, "This is normal if no SMB client has "
ssorce 798fa90
 				 "ever connected to your server.\n");
ssorce 798fa90
 			return -1;
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/utils/smbcontrol.c samba-3.0.24.new/source/utils/smbcontrol.c
ssorce 798fa90
--- samba-3.0.24.old/source/utils/smbcontrol.c	2007-02-04 13:59:25.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/utils/smbcontrol.c	2007-03-06 16:06:33.000000000 -0500
ssorce 798fa90
@@ -61,7 +61,7 @@
ssorce 798fa90
 	if (procid_to_pid(&pid) != 0)
ssorce 798fa90
 		return message_send_pid(pid, msg_type, buf, len, duplicates);
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("connections.tdb"), 0, 
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("connections.tdb"), 0, 
ssorce 798fa90
 			   TDB_DEFAULT, O_RDWR, 0);
ssorce 798fa90
 	if (!tdb) {
ssorce 798fa90
 		fprintf(stderr,"Failed to open connections database"
ssorce 798fa90
@@ -286,7 +286,7 @@
ssorce 798fa90
 	} else {
ssorce 798fa90
 		TDB_CONTEXT * tdb;
ssorce 798fa90
 
ssorce 798fa90
-		tdb = tdb_open_log(lock_path("connections.tdb"), 0, 
ssorce 798fa90
+		tdb = tdb_open_log(cache_path("connections.tdb"), 0, 
ssorce 798fa90
 				   TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 		if (!tdb) {
ssorce 798fa90
 			fprintf(stderr,
ssorce 798fa90
@@ -828,10 +828,10 @@
ssorce 798fa90
 	/* Remove the entry in the winbindd_cache tdb to tell a later
ssorce 798fa90
 	   starting winbindd that we're online. */
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("winbindd_cache.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600);
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("winbindd_cache.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600);
ssorce 798fa90
 	if (!tdb) {
ssorce 798fa90
 		fprintf(stderr, "Cannot open the tdb %s for writing.\n",
ssorce 798fa90
-			lock_path("winbindd_cache.tdb"));
ssorce 798fa90
+			cache_path("winbindd_cache.tdb"));
ssorce 798fa90
 		return False;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
@@ -864,13 +864,13 @@
ssorce 798fa90
 	   starting winbindd that we're offline. We may actually create
ssorce 798fa90
 	   it here... */
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("winbindd_cache.tdb"),
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("winbindd_cache.tdb"),
ssorce 798fa90
 				WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE,
ssorce 798fa90
 				TDB_DEFAULT /* TDB_CLEAR_IF_FIRST */, O_RDWR|O_CREAT, 0600);
ssorce 798fa90
 
ssorce 798fa90
 	if (!tdb) {
ssorce 798fa90
 		fprintf(stderr, "Cannot open the tdb %s for writing.\n",
ssorce 798fa90
-			lock_path("winbindd_cache.tdb"));
ssorce 798fa90
+			cache_path("winbindd_cache.tdb"));
ssorce 798fa90
 		return False;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/utils/status.c samba-3.0.24.new/source/utils/status.c
ssorce 798fa90
--- samba-3.0.24.old/source/utils/status.c	2007-02-04 13:59:25.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/utils/status.c	2007-03-06 16:07:00.000000000 -0500
ssorce 798fa90
@@ -669,7 +669,7 @@
ssorce 798fa90
 	}
ssorce 798fa90
 	
ssorce 798fa90
 	if ( show_processes ) {
ssorce 798fa90
-		tdb = tdb_open_log(lock_path("sessionid.tdb"), 0, TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
+		tdb = tdb_open_log(cache_path("sessionid.tdb"), 0, TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 		if (!tdb) {
ssorce 798fa90
 			d_printf("sessionid.tdb not initialised\n");
ssorce 798fa90
 		} else {
ssorce 798fa90
@@ -686,13 +686,13 @@
ssorce 798fa90
 	}
ssorce 798fa90
   
ssorce 798fa90
 	if ( show_shares ) {
ssorce 798fa90
-		tdb = tdb_open_log(lock_path("connections.tdb"), 0, TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
+		tdb = tdb_open_log(cache_path("connections.tdb"), 0, TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 		if (!tdb) {
ssorce 798fa90
-			d_printf("%s not initialised\n", lock_path("connections.tdb"));
ssorce 798fa90
+			d_printf("%s not initialised\n", cache_path("connections.tdb"));
ssorce 798fa90
 			d_printf("This is normal if an SMB client has never connected to your server.\n");
ssorce 798fa90
 		}  else  {
ssorce 798fa90
 			if (verbose) {
ssorce 798fa90
-				d_printf("Opened %s\n", lock_path("connections.tdb"));
ssorce 798fa90
+				d_printf("Opened %s\n", cache_path("connections.tdb"));
ssorce 798fa90
 			}
ssorce 798fa90
 
ssorce 798fa90
 			if (brief) 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/utils/testparm.c samba-3.0.24.new/source/utils/testparm.c
ssorce 798fa90
--- samba-3.0.24.old/source/utils/testparm.c	2007-02-04 13:59:25.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/utils/testparm.c	2007-03-06 15:29:34.000000000 -0500
ssorce 798fa90
@@ -57,13 +57,23 @@
ssorce 798fa90
 		ret = 1;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	if (!directory_exist(lp_lockdir(), &st)) {
ssorce 798fa90
-		fprintf(stderr, "ERROR: lock directory %s does not exist\n",
ssorce 798fa90
-		       lp_lockdir());
ssorce 798fa90
+	if (!directory_exist(lp_cachedir(), &st)) {
ssorce 798fa90
+		fprintf(stderr, "ERROR: cache directory %s does not exist\n",
ssorce 798fa90
+		       lp_cachedir());
ssorce 798fa90
 		ret = 1;
ssorce 798fa90
 	} else if ((st.st_mode & 0777) != 0755) {
ssorce 798fa90
-		fprintf(stderr, "WARNING: lock directory %s should have permissions 0755 for browsing to work\n",
ssorce 798fa90
-		       lp_lockdir());
ssorce 798fa90
+		fprintf(stderr, "WARNING: cache directory %s should have permissions 0755 for browsing to work\n",
ssorce 798fa90
+		       lp_cachedir());
ssorce 798fa90
+		ret = 1;
ssorce 798fa90
+	}
ssorce 798fa90
+
ssorce 798fa90
+	if (!directory_exist(lp_statedir(), &st)) {
ssorce 798fa90
+		fprintf(stderr, "ERROR: state directory %s does not exist\n",
ssorce 798fa90
+		       lp_statedir());
ssorce 798fa90
+		ret = 1;
ssorce 798fa90
+	} else if ((st.st_mode & 0777) != 0755) {
ssorce 798fa90
+		fprintf(stderr, "WARNING: state directory %s should have permissions 0755 for browsing to work\n",
ssorce 798fa90
+		       lp_statedir());
ssorce 798fa90
 		ret = 1;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
diff -uPr samba-3.0.24.old/source/web/statuspage.c samba-3.0.24.new/source/web/statuspage.c
ssorce 798fa90
--- samba-3.0.24.old/source/web/statuspage.c	2007-02-04 13:59:21.000000000 -0500
ssorce 798fa90
+++ samba-3.0.24.new/source/web/statuspage.c	2007-03-06 16:07:08.000000000 -0500
ssorce 798fa90
@@ -319,7 +319,7 @@
ssorce 798fa90
 		PID_or_Machine = 0;
ssorce 798fa90
 	}
ssorce 798fa90
 
ssorce 798fa90
-	tdb = tdb_open_log(lock_path("connections.tdb"), 0, TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
+	tdb = tdb_open_log(cache_path("connections.tdb"), 0, TDB_DEFAULT, O_RDONLY, 0);
ssorce 798fa90
 	if (tdb) tdb_traverse(tdb, traverse_fn1, NULL);
ssorce 798fa90
  
ssorce 798fa90
 	initPid2Machine ();