summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/nsswitch/winbindd_acct.c15
-rw-r--r--source3/sam/idmap_tdb.c35
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,