diff options
author | Keith Bostic <keith@wiredtiger.com> | 2013-05-15 10:46:01 -0400 |
---|---|---|
committer | Keith Bostic <keith@wiredtiger.com> | 2013-05-15 10:46:01 -0400 |
commit | ba71dc705b8e1265c6f9f34b3786425c58c82078 (patch) | |
tree | 2502e298634b769dc10ea0be2c51b21f76d60fb8 | |
parent | d80dad435084d44f6c63c9f8da1ede35426b21d0 (diff) | |
download | mongo-ba71dc705b8e1265c6f9f34b3786425c58c82078.tar.gz |
Use a Berkeley DB home directory relative to the WiredTiger home.
-rw-r--r-- | ext/test/kvs_bdb/kvs_bdb.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/ext/test/kvs_bdb/kvs_bdb.c b/ext/test/kvs_bdb/kvs_bdb.c index 5fc7819a553..c6411869441 100644 --- a/ext/test/kvs_bdb/kvs_bdb.c +++ b/ext/test/kvs_bdb/kvs_bdb.c @@ -1019,12 +1019,16 @@ wiredtiger_extension_init(WT_CONNECTION *connection, WT_CONFIG_ARG *config) DATA_SOURCE *ds; DB_ENV *dbenv; WT_EXTENSION_API *wtext; + size_t len; int ret = 0; + const char *home; + char *path; (void)config; /* Unused parameters */ ds = NULL; dbenv = NULL; + path = NULL; /* Acquire the extension API */ wtext = connection->get_extension_api(connection); @@ -1046,7 +1050,13 @@ wiredtiger_extension_init(WT_CONNECTION *connection, WT_CONFIG_ARG *config) } dbenv->set_errpfx(dbenv, "bdb"); dbenv->set_errfile(dbenv, stderr); - if ((ret = dbenv->open(dbenv, "RUNDIR/KVS", + + home = connection->get_home(connection); + len = strlen(home) + 10; + if ((path = malloc(len)) == NULL) + goto err; + (void)snprintf(path, len, "%s/KVS", home); + if ((ret = dbenv->open(dbenv, path, DB_CREATE | DB_INIT_LOCK | DB_INIT_MPOOL | DB_PRIVATE, 0)) != 0) { ESET(wtext, NULL, WT_ERROR, "DbEnv.open: %s", db_strerror(ret)); goto err; @@ -1059,11 +1069,13 @@ wiredtiger_extension_init(WT_CONNECTION *connection, WT_CONFIG_ARG *config) ESET(wtext, NULL, ret, "WT_CONNECTION.add_data_source"); goto err; } - return (0); -err: if (dbenv != NULL) - (void)dbenv->close(dbenv, 0); - free(ds); + if (0) { +err: if (dbenv != NULL) + (void)dbenv->close(dbenv, 0); + free(ds); + } + free(path); return (ret); } |