diff options
-rw-r--r-- | source3/nsswitch/winbindd_acct.c | 15 | ||||
-rw-r--r-- | source3/sam/idmap_tdb.c | 35 |
2 files changed, 26 insertions, 24 deletions
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 @@ -46,20 +46,6 @@ static struct idmap_state { } 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, |