diff options
| author | manu <manu@NetBSD.org> | 2001-07-14 14:50:44 +0000 |
|---|---|---|
| committer | manu <manu@NetBSD.org> | 2001-07-14 14:50:44 +0000 |
| commit | 3ac4f70df5b0ce14367dee3667751cf7f9c3d679 (patch) | |
| tree | ca9f557c50a2dc790a57f81370cd56530c53c4e1 /usr.sbin/dev_mkdb/dev_mkdb.c | |
| parent | 8468d6d854b709b9a157400a77ff8e7c9e396f0a (diff) | |
errno is not tested any more if dbopen succeeds (to quote errno(2), "It
should only be examined after an error")
Added an additionnal chdir so that -o works with a file in the current
directory.
Diffstat (limited to 'usr.sbin/dev_mkdb/dev_mkdb.c')
| -rw-r--r-- | usr.sbin/dev_mkdb/dev_mkdb.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/usr.sbin/dev_mkdb/dev_mkdb.c b/usr.sbin/dev_mkdb/dev_mkdb.c index 2b485b58716..9f09ed67537 100644 --- a/usr.sbin/dev_mkdb/dev_mkdb.c +++ b/usr.sbin/dev_mkdb/dev_mkdb.c @@ -1,4 +1,4 @@ -/* $NetBSD: dev_mkdb.c,v 1.15 2001/07/13 15:54:22 manu Exp $ */ +/* $NetBSD: dev_mkdb.c,v 1.16 2001/07/14 14:50:44 manu Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -43,7 +43,7 @@ __COPYRIGHT("@(#) Copyright (c) 1990, 1993\n\ #if 0 static char sccsid[] = "from: @(#)dev_mkdb.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: dev_mkdb.c,v 1.15 2001/07/13 15:54:22 manu Exp $"); +__RCSID("$NetBSD: dev_mkdb.c,v 1.16 2001/07/14 14:50:44 manu Exp $"); #endif #endif /* not lint */ @@ -122,6 +122,9 @@ main(argc, argv) if (ftsp == NULL) err(1, "fts_open: %s", path_dev); + if (chdir(cur_dir)) + err(1, "%s", cur_dir); + if (dbname_arg) strncpy(dbname, dbname_arg, MAXPATHLEN); else @@ -136,20 +139,15 @@ main(argc, argv) * the loop on dbopen. */ (void)strncpy(dbtmp, dbname, MAXPATHLEN); - q = rindex(dbtmp, '/'); + q = dbtmp + strlen(dbtmp); do { (void)gettimeofday(&tv, NULL); - if (q) { - (void)snprintf(q, MAXPATHLEN - (long)(q - dbtmp), - "%s.%ld.tmp", q, tv.tv_usec); - } else { - (void)snprintf(dbtmp, MAXPATHLEN, "./%s.%ld.tmp", - dbname, tv.tv_usec); - } - errno = 0; + (void)snprintf(q, MAXPATHLEN - (long)(q - dbtmp), + "%ld.tmp", tv.tv_usec); + printf (">>%s<<\n", dbtmp); db = dbopen(dbtmp, O_CREAT|O_EXCL|O_EXLOCK|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, DB_HASH, NULL); - } while (errno == EEXIST); + } while (!db && (errno == EEXIST)); if (db == NULL) err(1, "%s", dbtmp); @@ -180,6 +178,7 @@ main(argc, argv) else continue; bkey.dev = st->st_rdev; + printf (">>>%d\n", bkey.dev); /* * Create the data; nul terminate the name so caller doesn't @@ -193,6 +192,7 @@ main(argc, argv) } (void)(*db->close)(db); fts_close(ftsp); + if (chdir(cur_dir)) err(1, "%s", cur_dir); if (rename(dbtmp, dbname)) |
