From df2337692aea7d5ee9a6898434ad94a1ca646e8c Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Wed, 6 Aug 2003 18:01:39 +0000 Subject: rework winbindd_accountdb_init() to reduce error messages in the log (This used to be commit d98a68e0ebaf2fbd360b826f5df472bc3f94285b) --- source3/nsswitch/winbindd_acct.c | 15 +++++---------- source3/sam/idmap_tdb.c | 35 +++++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 24 deletions(-) (limited to 'source3') diff --git a/source3/nsswitch/winbindd_acct.c b/source3/nsswitch/winbindd_acct.c index 8abfd17110..0c06df7fdd 100644 --- a/source3/nsswitch/winbindd_acct.c +++ b/source3/nsswitch/winbindd_acct.c @@ -70,18 +70,13 @@ static BOOL winbindd_accountdb_init(void) if ( account_tdb ) return True; - - /* Nope. Try to open it */ - if (!(account_tdb = tdb_open_log(lock_path("winbindd_idmap.tdb"), 0, - TDB_DEFAULT, O_RDWR | O_CREAT, 0600))) - { - /* last chance -- maybe idmap has already opened it */ - if ( !(account_tdb = idmap_tdb_handle()) ) { + /* winbindd_idmap.tdb should always be opened by the idmap_init() + code first */ - DEBUG(0, ("winbindd_idmap_init: Unable to open idmap database\n")); - return False; - } + if ( !(account_tdb = idmap_tdb_handle()) ) { + DEBUG(0, ("winbindd_accountdb_init: Unable to retreive handle for database\n")); + return False; } /* yeah! */ diff --git a/source3/sam/idmap_tdb.c b/source3/sam/idmap_tdb.c index 2055103898..3776949171 100644 --- a/source3/sam/idmap_tdb.c +++ b/source3/sam/idmap_tdb.c @@ -45,20 +45,6 @@ static struct idmap_state { gid_t gid_low, gid_high; /* Range of gids to allocate */ } idmap_state; -/********************************************************************** - Return the TDB_CONTEXT* for winbindd_idmap. I **really** feel - dirty doing this, but not so dirty that I want to create another - tdb -***********************************************************************/ - -TDB_CONTEXT *idmap_tdb_handle( void ) -{ - if ( idmap_tdb ) - return idmap_tdb; - - return NULL; -} - /********************************************************************** allocate a new RID; We don't care if is a user or group **********************************************************************/ @@ -650,6 +636,27 @@ static void db_idmap_status(void) /* Display complete mapping of users and groups to rids */ } +/********************************************************************** + Return the TDB_CONTEXT* for winbindd_idmap. I **really** feel + dirty doing this, but not so dirty that I want to create another + tdb +***********************************************************************/ + +TDB_CONTEXT *idmap_tdb_handle( void ) +{ + if ( idmap_tdb ) + return idmap_tdb; + + /* go ahead an open it; db_idmap_init() doesn't use any params + right now */ + + db_idmap_init( NULL ); + if ( idmap_tdb ) + return idmap_tdb; + + return NULL; +} + static struct idmap_methods db_methods = { db_idmap_init, -- cgit