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! */
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
**********************************************************************/
/* 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,