summaryrefslogtreecommitdiff
path: root/source3/registry/reg_db.c
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2007-06-13 13:15:16 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:23:18 -0500
commita2762cfcaa7e1e77fdb353bbffcb33686f892e6a (patch)
tree35a3bc1110201e309f6d86ed27091b6ec6174d81 /source3/registry/reg_db.c
parent0e0fed6f25520d31966a5b29429533397ee5e171 (diff)
downloadsamba-a2762cfcaa7e1e77fdb353bbffcb33686f892e6a.tar.gz
samba-a2762cfcaa7e1e77fdb353bbffcb33686f892e6a.tar.bz2
samba-a2762cfcaa7e1e77fdb353bbffcb33686f892e6a.zip
r23468: Open registry.tdb with sequence number.
Add a function to retrieve the registry db sequence number. This is in preparation of loadparm integration of registry global smb.conf options: this will allow to detect changes in order to trigger reload. Michael (This used to be commit ebe2ea8f22bfe0855beee087af771c690db443c1)
Diffstat (limited to 'source3/registry/reg_db.c')
-rw-r--r--source3/registry/reg_db.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/source3/registry/reg_db.c b/source3/registry/reg_db.c
index 400384a965..555ae6adda 100644
--- a/source3/registry/reg_db.c
+++ b/source3/registry/reg_db.c
@@ -31,6 +31,8 @@ static int tdb_refcount;
#define VALUE_PREFIX "SAMBA_REGVAL"
#define SECDESC_PREFIX "SAMBA_SECDESC"
+#define REG_TDB_FLAGS TDB_SEQNUM
+
/* List the deepest path into the registry. All part components will be created.*/
/* If you want to have a part of the path controlled by the tdb and part by
@@ -236,9 +238,9 @@ BOOL regdb_init( void )
if ( tdb_reg )
return True;
- if ( !(tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR, 0600)) )
+ if ( !(tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR, 0600)) )
{
- tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+ tdb_reg = tdb_open_log(lock_path("registry.tdb"), 0, REG_TDB_FLAGS, O_RDWR|O_CREAT, 0600);
if ( !tdb_reg ) {
DEBUG(0,("regdb_init: Failed to open registry %s (%s)\n",
lock_path("registry.tdb"), strerror(errno) ));
@@ -283,7 +285,7 @@ WERROR regdb_open( void )
become_root();
- 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, REG_TDB_FLAGS, O_RDWR, 0600);
if ( !tdb_reg ) {
result = ntstatus_to_werror( map_nt_error_from_unix( errno ) );
DEBUG(0,("regdb_open: Failed to open %s! (%s)\n",
@@ -321,6 +323,16 @@ int regdb_close( void )
}
/***********************************************************************
+ return the tdb sequence number of the registry tdb.
+ this is an indicator for the content of the registry
+ having changed. it will change upon regdb_init, too, though.
+ ***********************************************************************/
+int regdb_get_seqnum(void)
+{
+ return tdb_get_seqnum(tdb_reg);
+}
+
+/***********************************************************************
Add subkey strings to the registry tdb under a defined key
fmt is the same format as tdb_pack except this function only supports
fstrings