mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-26 16:52:55 -05:00
ITS#2371, fix BDB_SUBDIRs
This commit is contained in:
parent
e12aec25f4
commit
44be38c0f0
2 changed files with 31 additions and 12 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue