summaryrefslogtreecommitdiff
path: root/usr.sbin/pkg_install/lib
diff options
context:
space:
mode:
authoragc <agc@NetBSD.org>2003-03-15 20:49:25 +0000
committeragc <agc@NetBSD.org>2003-03-15 20:49:25 +0000
commit2c442ad8d2e4fa59ca1898be4158fa46ac43bda5 (patch)
tree886f75a0d26eb4f6b790acea6ea2ddeeb746f07a /usr.sbin/pkg_install/lib
parent640bee30109d49aecf2e7ee4ba3070aea8b250d7 (diff)
Introduce a pkgdb_dump() function, which dumps the cache file of
(filename, package) pairs. Modify calling functions to use pkgdb_dump() directly, rather than sequences of pkgdb_open { pkgdb_iter, pkgdb_retrieve } pkgdb_close calls. Remove the now unnecessary pkgdb_iter function.
Diffstat (limited to 'usr.sbin/pkg_install/lib')
-rw-r--r--usr.sbin/pkg_install/lib/lib.h4
-rw-r--r--usr.sbin/pkg_install/lib/pkgdb.c51
2 files changed, 23 insertions, 32 deletions
diff --git a/usr.sbin/pkg_install/lib/lib.h b/usr.sbin/pkg_install/lib/lib.h
index 831a5903247..9d207524c7c 100644
--- a/usr.sbin/pkg_install/lib/lib.h
+++ b/usr.sbin/pkg_install/lib/lib.h
@@ -1,4 +1,4 @@
-/* $NetBSD: lib.h,v 1.48 2003/01/10 11:55:46 agc Exp $ */
+/* $NetBSD: lib.h,v 1.49 2003/03/15 20:49:27 agc Exp $ */
/* from FreeBSD Id: lib.h,v 1.25 1997/10/08 07:48:03 charnier Exp */
@@ -276,9 +276,9 @@ int pkgdb_open(int);
void pkgdb_close(void);
int pkgdb_store(const char *, const char *);
char *pkgdb_retrieve(const char *);
+void pkgdb_dump(void);
int pkgdb_remove(const char *);
int pkgdb_remove_pkg(const char *);
-char *pkgdb_iter(void);
char *_pkgdb_getPKGDB_FILE(char *, unsigned);
char *_pkgdb_getPKGDB_DIR(void);
diff --git a/usr.sbin/pkg_install/lib/pkgdb.c b/usr.sbin/pkg_install/lib/pkgdb.c
index e73da77f90b..ec7c53e7b13 100644
--- a/usr.sbin/pkg_install/lib/pkgdb.c
+++ b/usr.sbin/pkg_install/lib/pkgdb.c
@@ -1,8 +1,8 @@
-/* $NetBSD: pkgdb.c,v 1.13 2003/01/10 10:17:24 agc Exp $ */
+/* $NetBSD: pkgdb.c,v 1.14 2003/03/15 20:49:27 agc Exp $ */
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: pkgdb.c,v 1.13 2003/01/10 10:17:24 agc Exp $");
+__RCSID("$NetBSD: pkgdb.c,v 1.14 2003/03/15 20:49:27 agc Exp $");
#endif
/*
@@ -47,7 +47,6 @@ __RCSID("$NetBSD: pkgdb.c,v 1.13 2003/01/10 10:17:24 agc Exp $");
#define PKGDB_FILE "pkgdb.byfile.db" /* indexed by filename */
static DB *pkgdbp;
-static int pkgdb_iter_flag;
/*
* Open the pkg-database
@@ -61,8 +60,6 @@ pkgdb_open(int mode)
BTREEINFO info;
char cachename[FILENAME_MAX];
- pkgdb_iter_flag = 0; /* used in pkgdb_iter() */
-
/* try our btree format first */
info.flags = 0;
info.cachesize = 2*1024*1024;
@@ -146,6 +143,25 @@ pkgdb_retrieve(const char *key)
return vald.data;
}
+/* dump contents of the database to stdout */
+void
+pkgdb_dump(void)
+{
+ DBT key;
+ DBT val;
+ int type;
+
+ if (pkgdb_open(ReadOnly)) {
+ for (type = R_FIRST ; (*pkgdbp->seq)(pkgdbp, &key, &val, type) == 0 ; type = R_NEXT) {
+ printf("file: %.*s pkg: %.*s\n",
+ (int) key.size, (char *) key.data,
+ (int) val.size, (char *) val.data);
+ }
+ pkgdb_close();
+ }
+
+}
+
/*
* Remove data set from pkgdb
* Return value as ypdb_delete:
@@ -205,31 +221,6 @@ pkgdb_remove_pkg(const char *pkg)
}
/*
- * Iterate all pkgdb keys (which can then be handled to pkgdb_retrieve())
- * Return value:
- * NULL if no more data is available
- * !NULL else
- */
-char *
-pkgdb_iter(void)
-{
- DBT key, val;
- int type;
-
- if (pkgdb_iter_flag == 0) {
- pkgdb_iter_flag = 1;
- type = R_FIRST;
- } else
- type = R_NEXT;
-
- if ((*pkgdbp->seq)(pkgdbp, &key, &val, type) != 0) {
- key.data = NULL;
- }
-
- return (char *) key.data;
-}
-
-/*
* Return name of cache file in the buffer that was passed.
*/
char *