From a2762cfcaa7e1e77fdb353bbffcb33686f892e6a Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Wed, 13 Jun 2007 13:15:16 +0000 Subject: 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) --- source3/registry/reg_db.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'source3/registry/reg_db.c') 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", @@ -320,6 +322,16 @@ int regdb_close( void ) return ret; } +/*********************************************************************** + 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 -- cgit