ITS#2371, fix BDB_SUBDIRs

This commit is contained in:
Howard Chu 2003-03-13 15:53:19 +00:00
parent e12aec25f4
commit 44be38c0f0
2 changed files with 31 additions and 12 deletions

View file

@ -31,9 +31,9 @@ LDAP_BEGIN_DECL
#define BDB_MAX_ADD_LOOP 30
#ifdef BDB_SUBDIRS
#define BDB_TMP_SUBDIR LDAP_DIRSEP "tmp"
#define BDB_LG_SUBDIR LDAP_DIRSEP "log"
#define BDB_DATA_SUBDIR LDAP_DIRSEP "data"
#define BDB_TMP_SUBDIR "tmp"
#define BDB_LG_SUBDIR "log"
#define BDB_DATA_SUBDIR "data"
#endif
#define BDB_SUFFIX ".bdb"

View file

@ -208,12 +208,27 @@ bdb_db_open( BackendDB *be )
#ifdef BDB_SUBDIRS
{
char dir[MAXPATHLEN];
size_t len = strlen( bdb->bi_dbenv_home );
strcpy( dir, bdb->bi_dbenv_home );
strcat( &dir[len], BDB_TMP_SUBDIR );
char dir[MAXPATHLEN], *ptr;
if (bdb->bi_dbenv_home[0] == '.') {
/* If home is a relative path, relative subdirs
* are just concat'd by BDB. We don't want the
* path to be concat'd twice, e.g.
* ./test-db/./test-db/tmp
*/
ptr = dir;
} else {
ptr = lutil_strcopy( dir, bdb->bi_dbenv_home );
*ptr++ = LDAP_DIRSEP[0];
#ifdef HAVE_EBCDIC
__atoe( dir );
#endif
}
strcpy( ptr, BDB_TMP_SUBDIR );
#ifdef HAVE_EBCDIC
__atoe( ptr );
#endif
rc = bdb->bi_dbenv->set_tmp_dir( bdb->bi_dbenv, dir );
if( rc != 0 ) {
#ifdef NEW_LOGGING
@ -228,8 +243,10 @@ bdb_db_open( BackendDB *be )
return rc;
}
strcat( &dir[len], BDB_LG_SUBDIR );
strcpy( ptr, BDB_LG_SUBDIR );
#ifdef HAVE_EBCDIC
__atoe( ptr );
#endif
rc = bdb->bi_dbenv->set_lg_dir( bdb->bi_dbenv, dir );
if( rc != 0 ) {
#ifdef NEW_LOGGING
@ -244,8 +261,10 @@ bdb_db_open( BackendDB *be )
return rc;
}
strcat( &dir[len], BDB_DATA_SUBDIR );
strcpy( ptr, BDB_DATA_SUBDIR );
#ifdef HAVE_EBCDIC
__atoe( ptr );
#endif
rc = bdb->bi_dbenv->set_data_dir( bdb->bi_dbenv, dir );
if( rc != 0 ) {
#ifdef NEW_LOGGING