svn commit: samba r9904 - in branches/tmp/RPCREWRITE/source/registry: .

jra at samba.org jra at samba.org
Thu Sep 1 15:43:21 GMT 2005


Author: jra
Date: 2005-09-01 15:43:20 +0000 (Thu, 01 Sep 2005)
New Revision: 9904

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9904

Log:
Merge from HEAD.
Jeremy.

Modified:
   branches/tmp/RPCREWRITE/source/registry/reg_db.c


Changeset:
Modified: branches/tmp/RPCREWRITE/source/registry/reg_db.c
===================================================================
--- branches/tmp/RPCREWRITE/source/registry/reg_db.c	2005-09-01 15:42:18 UTC (rev 9903)
+++ branches/tmp/RPCREWRITE/source/registry/reg_db.c	2005-09-01 15:43:20 UTC (rev 9904)
@@ -49,6 +49,7 @@
 	"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib\\009",
 	"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Print\\Monitors",
 	"HKLM\\SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
+	"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Termininal Server\\DefaultUserConfiguration",
 	"HKLM\\SYSTEM\\CurrentControlSet\\Services\\TcpIp\\Parameters",
 	"HKLM\\SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters",
 	"HKU",
@@ -163,7 +164,12 @@
 		}
 
 		regdb_fetch_values( builtin_registry_values[i].path, values );
-		switch( builtin_registry_values[i].type ) {
+
+		/* preserve existing values across restarts.  Only add new ones */
+
+		if ( !regval_ctr_key_exists( values, builtin_registry_values[i].valuename ) ) 
+		{
+			switch( builtin_registry_values[i].type ) {
 			case REG_DWORD:
 				regval_ctr_addvalue( values, 
 				                     builtin_registry_values[i].valuename,
@@ -184,8 +190,9 @@
 			default:
 				DEBUG(0,("init_registry_data: invalid value type in builtin_registry_values [%d]\n",
 					builtin_registry_values[i].type));
+			}
+			regdb_store_values( builtin_registry_values[i].path, values );
 		}
-		regdb_store_values( builtin_registry_values[i].path, values );
 		
 		TALLOC_FREE( values );
 	}
@@ -205,8 +212,6 @@
 	if ( tdb_reg )
 		return True;
 
-	/* placeholder tdb; reinit upon startup */
-	
 	if ( !(tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600)) )
 	{
 		tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
@@ -223,13 +228,14 @@
 	vers_id = tdb_fetch_int32(tdb_reg, vstring);
 
 	if ( vers_id != REGVER_V1 ) {
+		/* any upgrade code here if needed */
+	}
 
-		/* create the registry here */
+	/* always setup the necessary keys and values */
 
-		if ( !init_registry_data() ) {
-			DEBUG(0,("init_registry: Failed to initiailize data in registry!\n"));
-			return False;
-		}
+	if ( !init_registry_data() ) {
+		DEBUG(0,("init_registry: Failed to initiailize data in registry!\n"));
+		return False;
 	}
 
 	return True;



More information about the samba-cvs mailing list