rework winbindd_accountdb_init() to reduce error messages in the log
authorGerald Carter <jerry@samba.org>
Wed, 6 Aug 2003 18:01:39 +0000 (18:01 +0000)
committerGerald Carter <jerry@samba.org>
Wed, 6 Aug 2003 18:01:39 +0000 (18:01 +0000)
(This used to be commit d98a68e0ebaf2fbd360b826f5df472bc3f94285b)

source3/nsswitch/winbindd_acct.c
source3/sam/idmap_tdb.c

index 8abfd17110804a3ac024747227df214f4037669d..0c06df7fdd4670a434ec835c939a2bbdea08554f 100644 (file)
@@ -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! */
index 20551038986c9d388a30958fbc1f5d1c51f65a57..3776949171772ebda8dc76ed7def269220daa23c 100644 (file)
@@ -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,