db_test.c revision e098b34f3912eaf388afc85c2b01065c1cdc5be2
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * Copyright (C) 1999 Internet Software Consortium.
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * Permission to use, copy, modify, and distribute this software for any
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * purpose with or without fee is hereby granted, provided that the above
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * copyright notice and this permission notice appear in all copies.
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley * Principal Author: Bob Halley
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halleytypedef struct dbinfo {
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halleystatic int pause_every = 0;
800b03baba638ddb3f67cc0d2ad2e70042fe8525Mark Andrewsprint_result(char *message, isc_result_t result) {
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley printf("%s%sresult %08x: %s\n", message, (len == 0) ? "" : " ", result,
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halleyprint_rdataset(dns_name_t *name, dns_rdataset_t *rdataset) {
f94f59d746daffc38356d0a019b64eb01d2341c0Bob Halley char t[1000];
6f44af1c8320e84d6b0c0c42bacadfe3020d9a91Mark Andrews isc_buffer_init(&text, t, sizeof t, ISC_BUFFERTYPE_TEXT);
6f44af1c8320e84d6b0c0c42bacadfe3020d9a91Mark Andrews result = dns_rdataset_totext(rdataset, name, ISC_FALSE, ISC_FALSE,
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halleyprint_rdatasets(dns_name_t *name, dns_rdatasetiter_t *rdsiter) {
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley isc_buffer_init(&source, origintext, len, ISC_BUFFERTYPE_TEXT);
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley result = dns_name_fromtext(origin, &source, dns_rootname, ISC_FALSE,
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley if (dns_name_compare(dns_db_origin(dbi->db), origin) == 0)
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley result = dns_db_createiterator(dbi->db, ISC_FALSE,
38980568375a6505452550b5677104ab44291b66Bob Halley result = dns_dbiterator_current(dbi->dbiterator, &node, name);
38980568375a6505452550b5677104ab44291b66Bob Halley if (result != DNS_R_SUCCESS && result != DNS_R_NEWORIGIN)
38980568375a6505452550b5677104ab44291b66Bob Halley result = dns_db_allrdatasets(dbi->db, node, dbi->iversion, 0,
800b03baba638ddb3f67cc0d2ad2e70042fe8525Mark Andrews if (result == DNS_R_SUCCESS && i == dbi->pause_every) {
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley dns_db_closeversion(dbi->db, &dbi->iversion, ISC_FALSE);
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halleyload(char *filename, char *origintext, isc_boolean_t cache) {
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley unsigned int i;
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley for (i = 0; i < MAXVERSIONS; i++)
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley for (i = 0; i < MAXHOLD; i++)
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley isc_buffer_init(&source, origintext, len, ISC_BUFFERTYPE_TEXT);
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley result = dns_name_fromtext(origin, &source, dns_rootname, ISC_FALSE,
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley result = dns_db_create(mctx, dbtype, origin, cache, dns_rdataclass_in,
c56c5586b49ccddbaf7e2b5c6c06adee1c509253Bob Halley printf("loading %s (%s)\n", filename, origintext);
08f8af2a42ddd2b87f1d67c09c0ba057b3253f29Bob Halley if (dns_dbtable_add(dbtable, dbi->db) != DNS_R_SUCCESS) {
08f8af2a42ddd2b87f1d67c09c0ba057b3253f29Bob Halley for (dbi = ISC_LIST_HEAD(dbs); dbi != NULL; dbi = dbi_next) {
08f8af2a42ddd2b87f1d67c09c0ba057b3253f29Bob Halley printf("You must first select a database with !DB\n"); \
0b16ae54f714bed65d749e3f601a29246cd98672Mark Andrews char s[1000];
0358d65e0709c6e34876ec45f914d6e4f38ec241Mark Andrews char b[255];
unsigned int options = 0;
char *origintext;
switch (ch) {
if (argc != 0)
if (time_lookups) {
while (!done) {
if (!quiet)
len--;
if (addmode)
if (delmode)
if (holdmode)
if (printnode)
if (!quiet) {
&tb1);
if (!quiet) {
switch (result) {
case DNS_R_SUCCESS:
case DNS_R_GLUE:
case DNS_R_CNAME:
case DNS_R_ZONECUT:
case DNS_R_DNAME:
case DNS_R_DELEGATION:
case DNS_R_NXRDATASET:
if (holdmode) {
MAXHOLD);
node;
case DNS_R_NXDOMAIN:
if (quiet)
if (printnode)
&rdsiter);
if (!quiet)
if (!quiet)
if (!quiet)
0, &rdataset,
NULL);
if (printnode)
if (printnode)
if (holdmode) {
if (time_lookups) {
unload_all();
if (!quiet)