From 910df98b0efcbe8380b952887f4071051cc39a25 Mon Sep 17 00:00:00 2001 From: Michael Graff Date: Mon, 4 Oct 1999 20:25:05 +0000 Subject: [PATCH] Add the file, sorry :) --- bin/tests/adb_test.c | 144 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 bin/tests/adb_test.c diff --git a/bin/tests/adb_test.c b/bin/tests/adb_test.c new file mode 100644 index 0000000000..90e7ccc3be --- /dev/null +++ b/bin/tests/adb_test.c @@ -0,0 +1,144 @@ +/* + * Copyright (C) 1998, 1999 Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS + * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE + * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +isc_mem_t *mctx; +isc_taskmgr_t *manager; + +static void +fatal(char *format, ...) +{ + va_list args; + + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); + fprintf(stderr, "\n"); + exit(1); +} + +static inline void +check_result(isc_result_t result, char *msg) +{ + if (result != ISC_R_SUCCESS) + fatal("%s: %s", msg, isc_result_totext(result)); +} + +int +main(int argc, char *argv[]) +{ + isc_task_t *t1, *t2; + isc_sockaddr_t sockaddr; + struct in_addr ina; + isc_result_t result; + dns_name_t name; + isc_buffer_t t, namebuf; + unsigned char namestorage[512]; + dns_adb_t *adb; + + dns_result_register(); + + /* + * EVERYTHING needs a memory context. + */ + mctx = NULL; + RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS); + + /* + * The task manager is independent (other than memory context) + */ + manager = NULL; + result = isc_taskmgr_create(mctx, 2, 0, &manager); + check_result(result, "isc_taskmgr_create"); + + t1 = NULL; + result = isc_task_create(manager, NULL, 0, &t1); + check_result(result, "isc_task_create t1"); + t2 = NULL; + result = isc_task_create(manager, NULL, 0, &t2); + check_result(result, "isc_task_create t2"); + + printf("task 1 = %p\n", t1); + printf("task 2 = %p\n", t2); + + /* + * Create the address database. + */ + adb = NULL; + result = dns_adb_create(mctx, &adb); + check_result(result, "dns_adb_create"); + + /* + * Store this address and name in it. + */ + ina.s_addr = inet_addr("204.152.184.97"); + isc_sockaddr_fromin(&sockaddr, &ina, 53); + +#define NAME1 "kechara.flame.org." + + isc_buffer_init(&t, NAME1, sizeof NAME1 - 1, ISC_BUFFERTYPE_TEXT); + isc_buffer_add(&t, strlen(NAME1)); + isc_buffer_init(&namebuf, namestorage, sizeof namestorage, + ISC_BUFFERTYPE_BINARY); + dns_name_init(&name, NULL); + result = dns_name_fromtext(&name, &t, dns_rootname, ISC_FALSE, + &namebuf); + check_result(result, "dns_name_fromtext"); + + result = dns_adb_insert(adb, &name, &sockaddr); + check_result(result, "dns_adb_insert"); + + isc_task_detach(&t1); + isc_task_detach(&t2); + + dns_adb_dump(adb, stderr); + + result = dns_adb_deletename(adb, &name); + check_result(result, "dns_adb_deletename"); + + dns_adb_dump(adb, stderr); + + isc_mem_stats(mctx, stdout); + dns_adb_destroy(&adb); + + fprintf(stderr, "Destroying task manager\n"); + isc_taskmgr_destroy(&manager); + + isc_mem_stats(mctx, stdout); + isc_mem_destroy(&mctx); + + return (0); +}