summaryrefslogtreecommitdiff
path: root/util/db_verify.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/db_verify.c')
-rw-r--r--util/db_verify.c39
1 files changed, 24 insertions, 15 deletions
diff --git a/util/db_verify.c b/util/db_verify.c
index 9ec28817..b0a369bd 100644
--- a/util/db_verify.c
+++ b/util/db_verify.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$
*/
@@ -12,7 +12,7 @@
#ifndef lint
static const char copyright[] =
- "Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved.\n";
+ "Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved.\n";
#endif
int main __P((int, char *[]));
@@ -33,7 +33,7 @@ main(argc, argv)
u_int32_t flags, cache;
int ch, exitval, mflag, nflag, private;
int quiet, resize, ret;
- char *dname, *fname, *home, *passwd;
+ char *blob_dir, *dname, *fname, *home, *passwd;
if ((progname = __db_rpath(argv[0])) == NULL)
progname = argv[0];
@@ -48,9 +48,12 @@ main(argc, argv)
cache = MEGABYTE;
exitval = mflag = nflag = quiet = 0;
flags = 0;
- home = passwd = NULL;
- while ((ch = getopt(argc, argv, "h:mNoP:quV")) != EOF)
+ blob_dir = home = passwd = NULL;
+ while ((ch = getopt(argc, argv, "b:h:mNoP:quV")) != EOF)
switch (ch) {
+ case 'b':
+ blob_dir = optarg;
+ break;
case 'h':
home = optarg;
break;
@@ -97,14 +100,6 @@ main(argc, argv)
if (argc <= 0)
return (usage());
- if (mflag) {
- dname = argv[0];
- fname = NULL;
- } else {
- fname = argv[0];
- dname = NULL;
- }
-
/* Handle possible interruptions. */
__db_util_siginit();
@@ -123,6 +118,12 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
dbenv->set_errpfx(dbenv, progname);
}
+ if (blob_dir != NULL &&
+ (ret = dbenv->set_blob_dir(dbenv, blob_dir)) != 0) {
+ dbenv->err(dbenv, ret, "set_blob_dir");
+ goto err;
+ }
+
if (nflag) {
if ((ret = dbenv->set_flags(dbenv, DB_NOLOCKING, 1)) != 0) {
dbenv->err(dbenv, ret, "set_flags: DB_NOLOCKING");
@@ -147,7 +148,7 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
private = 0;
if ((ret =
dbenv->open(dbenv, home, DB_INIT_MPOOL | DB_USE_ENVIRON, 0)) != 0) {
- if (ret != DB_VERSION_MISMATCH) {
+ if (ret != DB_VERSION_MISMATCH && ret != DB_REP_LOCKOUT) {
if ((ret =
dbenv->set_cachesize(dbenv, 0, cache, 1)) != 0) {
dbenv->err(dbenv, ret, "set_cachesize");
@@ -169,6 +170,14 @@ retry: if ((ret = db_env_create(&dbenv, 0)) != 0) {
* enabled.
*/
for (; !__db_util_interrupted() && argv[0] != NULL; ++argv) {
+ if (mflag) {
+ dname = argv[0];
+ fname = NULL;
+ } else {
+ fname = argv[0];
+ dname = NULL;
+ }
+
if ((ret = db_create(&dbp, dbenv, 0)) != 0) {
dbenv->err(dbenv, ret, "%s: db_create", progname);
goto err;
@@ -267,7 +276,7 @@ int
usage()
{
fprintf(stderr, "usage: %s %s\n", progname,
- "[-NoqV] [-h home] [-P password] db_file ...");
+ "[-mNoqV] [-b blob_dir] [-h home] [-P password] db_file ...");
return (EXIT_FAILURE);
}