|
Lines 76-87
Link Here
|
| 76 |
} bkey; |
76 |
} bkey; |
| 77 |
DB *db; |
77 |
DB *db; |
| 78 |
DBT data, key; |
78 |
DBT data, key; |
| 79 |
int ch; |
79 |
int ch, ndbname = 0; |
| 80 |
u_char buf[MAXNAMLEN + 1]; |
80 |
u_char buf[MAXNAMLEN + 1]; |
| 81 |
char dbtmp[MAXPATHLEN + 1], dbname[MAXPATHLEN + 1]; |
81 |
char dbtmp[MAXPATHLEN + 1], dbname[MAXPATHLEN + 1], *dirname; |
| 82 |
|
82 |
|
| 83 |
while ((ch = getopt(argc, argv, "")) != -1) |
83 |
while ((ch = getopt(argc, argv, "f:")) != -1) |
| 84 |
switch((char)ch) { |
84 |
switch((char)ch) { |
|
|
85 |
case 'f': |
| 86 |
strlcpy(dbname, optarg, sizeof(dbname)); |
| 87 |
ndbname = 1; |
| 88 |
break; |
| 85 |
case '?': |
89 |
case '?': |
| 86 |
default: |
90 |
default: |
| 87 |
usage(); |
91 |
usage(); |
|
Lines 89-104
Link Here
|
| 89 |
argc -= optind; |
93 |
argc -= optind; |
| 90 |
argv += optind; |
94 |
argv += optind; |
| 91 |
|
95 |
|
| 92 |
if (argc > 0) |
96 |
if (argc > 1) |
| 93 |
usage(); |
97 |
usage(); |
|
|
98 |
else if (argc == 1) |
| 99 |
dirname = argv[0]; |
| 100 |
else |
| 101 |
dirname = _PATH_DEV; |
| 94 |
|
102 |
|
| 95 |
if (chdir(_PATH_DEV)) |
103 |
if (!ndbname) |
| 96 |
err(1, "%s", _PATH_DEV); |
104 |
{ |
|
|
105 |
(void)snprintf(dbname, sizeof(dbtmp), "%sdev.db", _PATH_VARRUN); |
| 106 |
(void)snprintf(dbtmp, sizeof(dbtmp), "%sdev.tmp", _PATH_VARRUN); |
| 107 |
} |
| 108 |
else |
| 109 |
(void)snprintf(dbtmp, sizeof(dbtmp), "%s.tmp", dbname); |
| 97 |
|
110 |
|
|
|
111 |
if (chdir(dirname)) |
| 112 |
err(1, "%s", dirname); |
| 113 |
|
| 98 |
dirp = opendir("."); |
114 |
dirp = opendir("."); |
| 99 |
|
115 |
|
| 100 |
(void)snprintf(dbtmp, sizeof(dbtmp), "%sdev.tmp", _PATH_VARRUN); |
|
|
| 101 |
(void)snprintf(dbname, sizeof(dbtmp), "%sdev.db", _PATH_VARRUN); |
| 102 |
db = dbopen(dbtmp, O_CREAT|O_EXLOCK|O_RDWR|O_TRUNC, |
116 |
db = dbopen(dbtmp, O_CREAT|O_EXLOCK|O_RDWR|O_TRUNC, |
| 103 |
S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, DB_HASH, NULL); |
117 |
S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, DB_HASH, NULL); |
| 104 |
if (db == NULL) |
118 |
if (db == NULL) |