diff options
author | rsc <devnull@localhost> | 2005-02-11 19:41:16 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-02-11 19:41:16 +0000 |
commit | d957951b75df08a9bb0293e3e13ff87759afbb92 (patch) | |
tree | 4d7868b0d223956217cbc8819d7afb3bec532cca /src/cmd/ndb/ndbipquery.c | |
parent | ad017cfbf5530cfc3ae2fafd723cdade2a4405f6 (diff) | |
download | plan9port-d957951b75df08a9bb0293e3e13ff87759afbb92.tar.gz plan9port-d957951b75df08a9bb0293e3e13ff87759afbb92.tar.bz2 plan9port-d957951b75df08a9bb0293e3e13ff87759afbb92.zip |
new
Diffstat (limited to 'src/cmd/ndb/ndbipquery.c')
-rw-r--r-- | src/cmd/ndb/ndbipquery.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/cmd/ndb/ndbipquery.c b/src/cmd/ndb/ndbipquery.c new file mode 100644 index 00000000..c2859dca --- /dev/null +++ b/src/cmd/ndb/ndbipquery.c @@ -0,0 +1,54 @@ +#include <u.h> +#include <libc.h> +#include <bio.h> +#include <ndb.h> +#include <ip.h> + +/* + * search the database for matches + */ + +void +usage(void) +{ + fprint(2, "usage: ipquery attr value rattribute\n"); + exits("usage"); +} + +void +search(Ndb *db, char *attr, char *val, char **rattr, int nrattr) +{ + Ndbtuple *t; + + t = ndbipinfo(db, attr, val, rattr, nrattr); + for(; t; t = t->entry) + print("%s=%s ", t->attr, t->val); + print("\n"); + ndbfree(t); +} + +void +main(int argc, char **argv) +{ + Ndb *db; + char *dbfile = 0; + + ARGBEGIN{ + case 'f': + dbfile = ARGF(); + break; + }ARGEND; + + if(argc < 3) + usage(); + + db = ndbopen(dbfile); + if(db == 0){ + fprint(2, "no db files\n"); + exits("no db"); + } + search(db, argv[0], argv[1], argv+2, argc-2); + ndbclose(db); + + exits(0); +} |