summaryrefslogtreecommitdiff
path: root/src/env/env_name.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/env/env_name.c')
-rw-r--r--src/env/env_name.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/env/env_name.c b/src/env/env_name.c
index a3a0b371..d0dd5635 100644
--- a/src/env/env_name.c
+++ b/src/env/env_name.c
@@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
- * Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved.
*
* $Id$
*/
@@ -9,6 +9,7 @@
#include "db_config.h"
#include "db_int.h"
+#include "dbinc/blob.h"
static int __db_fullpath
__P((ENV *, const char *, const char *, int, int, char **));
@@ -122,7 +123,7 @@ __db_appname(env, appname, file, dirp, namep)
{
DB_ENV *dbenv;
char **ddp;
- const char *dir;
+ const char *blob_dir, *dir;
int ret;
dbenv = env->dbenv;
@@ -141,6 +142,8 @@ __db_appname(env, appname, file, dirp, namep)
/*
* DB_APP_NONE:
* DB_HOME/file
+ * DB_APP_BLOB:
+ * DB_HOME/DB_BLOB_DIR/file
* DB_APP_DATA:
* DB_HOME/DB_DATA_DIR/file
* DB_APP_LOG:
@@ -151,6 +154,12 @@ __db_appname(env, appname, file, dirp, namep)
switch (appname) {
case DB_APP_NONE:
break;
+ case DB_APP_BLOB:
+ if (dbenv != NULL && dbenv->db_blob_dir != NULL)
+ dir = dbenv->db_blob_dir;
+ else
+ dir = BLOB_DEFAULT_DIR;
+ break;
case DB_APP_RECOVER:
case DB_APP_DATA:
/*
@@ -164,6 +173,13 @@ __db_appname(env, appname, file, dirp, namep)
/* Second, look in the environment home directory. */
DB_CHECKFILE(file, NULL, 1, 0, namep, dirp);
+ /* Third, check the blob directory. */
+ if (dbenv != NULL && dbenv->db_blob_dir != NULL)
+ blob_dir = dbenv->db_blob_dir;
+ else
+ blob_dir = BLOB_DEFAULT_DIR;
+ DB_CHECKFILE(file, blob_dir, 1, 0, namep, dirp);
+
/*
* Otherwise, we're going to create. Use the specified
* directory unless we're in recovery and it doesn't exist.