diff options
Diffstat (limited to 'util/db_verify.c')
-rw-r--r-- | util/db_verify.c | 39 |
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); } |