byname_test.c revision 5bd937c666375d03ee6a366a13d0bdb31aa3f07f
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * Copyright (C) 1999 Internet Software Consortium.
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * Permission to use, copy, modify, and distribute this software for any
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * purpose with or without fee is hereby granted, provided that the above
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * copyright notice and this permission notice appear in all copies.
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
ad3a5c4b7e21af04d1b872f933c2e19e5c0a135bMichael Graff * Principal Author: Bob Halley
31fab17bcdbe302592a6c0dc5374ef56333ee879Michael Graffstatic unsigned int level = 0;
31fab17bcdbe302592a6c0dc5374ef56333ee879Michael Graffstatic void adb_callback(isc_task_t *task, isc_event_t *event);
fe14eafefa91fada7cea0a55b09196c01477406cBob Halley unsigned int flags;
ad3a5c4b7e21af04d1b872f933c2e19e5c0a135bMichael Graff * Setup a logging context.
ad3a5c4b7e21af04d1b872f933c2e19e5c0a135bMichael Graff RUNTIME_CHECK(isc_log_create(mctx, &lctx) == ISC_R_SUCCESS);
6dde125c2f47617ceef1518cf9e5588e8f366b71Michael Graff RUNTIME_CHECK(dns_log_init(lctx) == ISC_R_SUCCESS);
6dde125c2f47617ceef1518cf9e5588e8f366b71Michael Graff * Create and install the default channel.
213973a334f92d4aef4ef62b4538fc2e4d0e8082Michael Graff destination.file.versions = ISC_LOG_ROLLNEVER;
213973a334f92d4aef4ef62b4538fc2e4d0e8082Michael Graff RUNTIME_CHECK(isc_log_createchannel(lctx, "_default",
bb143613cf26e0f27dfd9caf1a7336065d064b26Michael Graff RUNTIME_CHECK(isc_log_usechannel(lctx, "_default", NULL, NULL) ==
84c46a7acb961cac19c0d857bfdd00f3383a9bc6Michael Graff isc_buffer_init(&b, text, sizeof text, ISC_BUFFERTYPE_TEXT);
30251e07d1705d1a85b0e1d5a969496e1aed612eMichael Graff result = isc_sockaddr_totext(address->sockaddr, &b);
6dde125c2f47617ceef1518cf9e5588e8f366b71Michael Graff isc_buffer_init(&b, text, sizeof text, ISC_BUFFERTYPE_TEXT);
6dde125c2f47617ceef1518cf9e5588e8f366b71Michael Graff result = dns_name_totext(name, ISC_FALSE, &b);
66bd3b3c6b171271c705b897823dcdcf29464698Michael Graff unsigned int options;
11fcc67616fac1bc6a28b3d4fed24641137888e7Michael Graff options = DNS_ADBFIND_INET | DNS_ADBFIND_INET6;
ad3a5c4b7e21af04d1b872f933c2e19e5c0a135bMichael Graff options |= DNS_ADBFIND_WANTEVENT | DNS_ADBFIND_EMPTYEVENT;
1f90c108282533a23b8362c34bcde4267c1eb4b1Michael Graff result = dns_adb_createfind(view->adb, task, adb_callback, NULL,
59e22acc4f79ff481f7bfa46ef0558957ae53cfcMichael Graff * We have at least some of the addresses for the
28ab8277a068f273f0a805a83b4811446cb78a5bBob Halley INSIST((find->options & DNS_ADBFIND_WANTEVENT) == 0);
bb143613cf26e0f27dfd9caf1a7336065d064b26Michael Graff * We don't know any of the addresses for this
bb143613cf26e0f27dfd9caf1a7336065d064b26Michael Graff if ((find->options & DNS_ADBFIND_WANTEVENT) == 0) {
bb143613cf26e0f27dfd9caf1a7336065d064b26Michael Graff * And ADB isn't going to send us any events
bb143613cf26e0f27dfd9caf1a7336065d064b26Michael Graff * either. This query loses.
fe14eafefa91fada7cea0a55b09196c01477406cBob Halley * If the DNS_ADBFIND_WANTEVENT flag was set, we'll
fe14eafefa91fada7cea0a55b09196c01477406cBob Halley * get an event when something happens.
11fcc67616fac1bc6a28b3d4fed24641137888e7Michael Graffadb_callback(isc_task_t *etask, isc_event_t *event) {
d8590892d10fc9528b0dde7e2781935e7b8d7a87Michael Graff else if (type == DNS_EVENT_ADBNOMOREADDRESSES) {
11fcc67616fac1bc6a28b3d4fed24641137888e7Michael Graff printf("unexpected ADB event type %u\n", type);
ad3a5c4b7e21af04d1b872f933c2e19e5c0a135bMichael Graff RUNTIME_CHECK(isc_app_start() == ISC_R_SUCCESS);
439c0011e642fb1d26011116144af698125262dbMichael Graff RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
439c0011e642fb1d26011116144af698125262dbMichael Graff while ((ch = isc_commandline_parse(argc, argv, "d:vw:")) != -1) {
c803787146cadcb2d7e10cbf4491f3be513dfa1aMichael Graff level = (unsigned int)atoi(isc_commandline_argument);
e883738546c7c73b761bce8a15e08661863d3ae1Michael Graff workers = (unsigned int)atoi(isc_commandline_argument);
439c0011e642fb1d26011116144af698125262dbMichael Graff printf("IPv4: %s\n", isc_result_totext(isc_net_probeipv4()));
c803787146cadcb2d7e10cbf4491f3be513dfa1aMichael Graff printf("IPv6: %s\n", isc_result_totext(isc_net_probeipv6()));
30251e07d1705d1a85b0e1d5a969496e1aed612eMichael Graff RUNTIME_CHECK(isc_taskmgr_create(mctx, workers, 0, &taskmgr) ==
439c0011e642fb1d26011116144af698125262dbMichael Graff RUNTIME_CHECK(isc_task_create(taskmgr, mctx, 0, &task) ==
ff9bb3fc5453bbf310b67c560fbf04a5c0fb60daMichael Graff RUNTIME_CHECK(isc_timermgr_create(mctx, &timermgr) == ISC_R_SUCCESS);
4281fe4a80af7402613f0d5c3eeff8829a4ede1fMichael Graff RUNTIME_CHECK(isc_socketmgr_create(mctx, &socketmgr) == ISC_R_SUCCESS);
14b98cb34eda66c87ce41a207704a2c232280eafMichael Graff RUNTIME_CHECK(dns_cache_create(mctx, taskmgr, timermgr,
14b98cb34eda66c87ce41a207704a2c232280eafMichael Graff RUNTIME_CHECK(dns_view_create(mctx, dns_rdataclass_in, "default",
651228967966ba4fb2e52f92d1207c790af4b130Michael Graff RUNTIME_CHECK(dns_view_createresolver(view, taskmgr, 10, socketmgr,
65f6d2e1c1fce0989c13c2efb44b8dd26cd977f3Michael Graff dns_resolver_setforwarders(view->resolver, &sal);
897c9ddb4d745b2bfecf98b17e5487bb6656299aMichael Graff dns_resolver_setfwdpolicy(view->resolver, dns_fwdpolicy_only);
65f6d2e1c1fce0989c13c2efb44b8dd26cd977f3Michael Graff printf("name = %s\n", argv[isc_commandline_index]);
65f6d2e1c1fce0989c13c2efb44b8dd26cd977f3Michael Graff isc_buffer_init(&b, argv[isc_commandline_index],
65f6d2e1c1fce0989c13c2efb44b8dd26cd977f3Michael Graff isc_buffer_add(&b, strlen(argv[isc_commandline_index]));
65f6d2e1c1fce0989c13c2efb44b8dd26cd977f3Michael Graff RUNTIME_CHECK(dns_name_fromtext(dns_fixedname_name(&name), &b,