Skip to content
Snippets Groups Projects
Commit 44be38c0 authored by Howard Chu's avatar Howard Chu
Browse files

ITS#2371, fix BDB_SUBDIRs

parent e12aec25
Branches
Tags
No related merge requests found
......@@ -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"
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment