#include <config.h>
#include <stdlib.h>
#include <limits.h>
#include <isc/app.h>
#include <isc/commandline.h>
#include <isc/netaddr.h>
#include <isc/print.h>
#include <isc/string.h>
#include <isc/util.h>
#include <isc/task.h>
#include <dns/byaddr.h>
#include <dns/fixedname.h>
#include <dns/message.h>
#include <dns/name.h>
#include <dns/rdata.h>
#include <dns/rdataclass.h>
#include <dns/rdataset.h>
#include <dns/rdatatype.h>
#include <dns/rdatastruct.h>
#include <dig/dig.h>
Go to the source code of this file.
Data Structures | |
struct | rtype |
Functions | |
static char * | rcode_totext (dns_rcode_t rcode) |
static ISC_PLATFORM_NORETURN_PRE void | show_usage (void) |
void | dighost_shutdown (void) |
void | received (int bytes, isc_sockaddr_t *from, dig_query_t *query) |
Print a message about where and when the response was received from, like the final comment in the output of "dig". | |
void | trying (char *frm, dig_lookup_t *lookup) |
static void | say_message (dns_name_t *name, const char *msg, dns_rdata_t *rdata, dig_query_t *query) |
static isc_result_t | printsection (dns_message_t *msg, dns_section_t sectionid, const char *section_name, isc_boolean_t headers, dig_query_t *query) |
static isc_result_t | printrdata (dns_message_t *msg, dns_rdataset_t *rdataset, dns_name_t *owner, const char *set_name, isc_boolean_t headers) |
static void | chase_cnamechain (dns_message_t *msg, dns_name_t *qname) |
isc_result_t | printmessage (dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) |
Print the final result of the lookup. | |
static void | version (void) |
version | |
static void | pre_parse_args (int argc, char **argv) |
static void | parse_args (isc_boolean_t is_batchfile, int argc, char **argv) |
int | main (int argc, char **argv) |
Variables | |
static isc_boolean_t | short_form = ISC_TRUE |
static isc_boolean_t | listed_server = ISC_FALSE |
static isc_boolean_t | default_lookups = ISC_TRUE |
static int | seen_error = -1 |
static isc_boolean_t | list_addresses = ISC_TRUE |
static dns_rdatatype_t | list_type = dns_rdatatype_a |
static isc_boolean_t | printed_server = ISC_FALSE |
static const char * | opcodetext [] |
static const char * | rcodetext [] |
struct rtype | rtypes [] |
static const char * | optstring = "46ac:dilnm:rst:vVwCDN:R:TW:" |
Definition in file host.c.
static char* rcode_totext | ( | dns_rcode_t | rcode | ) | [static] |
static ISC_PLATFORM_NORETURN_PRE void show_usage | ( | void | ) | [static] |
void dighost_shutdown | ( | void | ) |
void received | ( | int | bytes, | |
isc_sockaddr_t * | from, | |||
dig_query_t * | query | |||
) |
Print a message about where and when the response was received from, like the final comment in the output of "dig".
Definition at line 178 of file host.c.
References isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, isc_time_microdiff(), now, short_form, TIME_NOW, and dig_query::time_sent.
void trying | ( | char * | frm, | |
dig_lookup_t * | lookup | |||
) |
static void say_message | ( | dns_name_t * | name, | |
const char * | msg, | |||
dns_rdata_t * | rdata, | |||
dig_query_t * | query | |||
) | [static] |
Definition at line 201 of file host.c.
References isc_region::base, check_result(), dns_name_format(), DNS_NAME_FORMATSIZE, dns_rdata_totext(), isc_buffer_allocate(), isc_buffer_free(), isc_buffer_usedregion, ISC_R_NOSPACE, isc_region::length, dig_query::lookup, mctx, r, and dig_query::servname.
static isc_result_t printsection | ( | dns_message_t * | msg, | |
dns_section_t | sectionid, | |||
const char * | section_name, | |||
isc_boolean_t | headers, | |||
dig_query_t * | query | |||
) | [static] |
Definition at line 246 of file host.c.
References isc_region::base, dns_message_currentname(), dns_message_firstname(), dns_message_nextname(), dns_name_init(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdataset_current(), dns_rdataset_first(), dns_rdataset_next(), dns_rdataset_totext(), dns_rdatatype_format(), DNS_RDATATYPE_FORMATSIZE, DNS_SECTION_QUESTION, isc_buffer_init, isc_buffer_usedregion, ISC_FALSE, ISC_LIST_HEAD, ISC_LIST_NEXT, ISC_R_NOMORE, ISC_R_SUCCESS, ISC_TRUE, isc_region::length, list_addresses, list_type, dig_query::lookup, name, r, say_message(), short_form, rtype::text, dns_rdata::type, rtype::type, dns_rdataset::type, and UNUSED.
Referenced by printmessage().
static isc_result_t printrdata | ( | dns_message_t * | msg, | |
dns_rdataset_t * | rdataset, | |||
dns_name_t * | owner, | |||
const char * | set_name, | |||
isc_boolean_t | headers | |||
) | [static] |
Definition at line 366 of file host.c.
References isc_region::base, dns_rdataset_totext(), isc_buffer_init, isc_buffer_usedregion, ISC_FALSE, ISC_R_SUCCESS, isc_region::length, r, and UNUSED.
Referenced by detailsection(), printmessage(), and printsection().
static void chase_cnamechain | ( | dns_message_t * | msg, | |
dns_name_t * | qname | |||
) | [static] |
Definition at line 391 of file host.c.
References check_result(), dns_message::counts, dns_message_findname(), dns_name_copy(), dns_rdata_freestruct(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_tostruct(), dns_rdataset_current(), dns_rdataset_first(), DNS_SECTION_ANSWER, and ISC_R_SUCCESS.
Referenced by printmessage().
isc_result_t printmessage | ( | dig_query_t * | query, | |
dns_message_t * | msg, | |||
isc_boolean_t | headers | |||
) |
Print the final result of the lookup.
Definition at line 417 of file host.c.
References chase_cnamechain(), clone_lookup(), dns_message::counts, default_lookups, dns_fixedname_init, dns_fixedname_name, dns_message_getopt(), dns_message_gettsig(), DNS_MESSAGEFLAG_AA, DNS_MESSAGEFLAG_AD, DNS_MESSAGEFLAG_CD, DNS_MESSAGEFLAG_QR, DNS_MESSAGEFLAG_RA, DNS_MESSAGEFLAG_RD, DNS_MESSAGEFLAG_TC, dns_name_copy(), dns_name_format(), DNS_NAME_FORMATSIZE, dns_rcode_nxdomain, dns_rdatatype_format(), DNS_RDATATYPE_FORMATSIZE, DNS_SECTION_ADDITIONAL, DNS_SECTION_ANSWER, DNS_SECTION_AUTHORITY, DNS_SECTION_QUESTION, fixed, dns_message::flags, dns_message::id, ISC_FALSE, ISC_LIST_APPEND, ISC_LIST_EMPTY, ISC_R_SUCCESS, isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, ISC_TF, ISC_TRUE, listed_server, dig_query::lookup, lookup_list, name, dns_message::opcode, opcodetext, POST, printed_server, printrdata(), printsection(), dns_message::rcode, rcode_totext(), dns_rdataset::rdclass, dns_message::sections, seen_error, dig_query::servname, short_form, dig_query::sockaddr, tries, dns_rdataset::ttl, UNUSED, and dig_query::userarg.
static void version | ( | void | ) | [static] |
static void pre_parse_args | ( | int | argc, | |
char ** | argv | |||
) | [static] |
Definition at line 613 of file host.c.
References debugging, debugtiming, isc_commandline_argument, isc_commandline_index, isc_commandline_parse(), isc_commandline_reset, isc_mem_debugging, ISC_MEM_DEBUGRECORD, ISC_MEM_DEBUGTRACE, ISC_MEM_DEBUGUSAGE, ISC_TRUE, memdebugging, show_usage(), and version.
Referenced by main().
static void parse_args | ( | isc_boolean_t | is_batchfile, | |
int | argc, | |||
char ** | argv | |||
) | [static] |
Definition at line 666 of file host.c.
References isc_textregion::base, check_ra, debug, default_lookups, dns_rdataclass_fromtext(), dns_rdatatype_fromtext(), fatal(), fatalexit, get_reverse(), have_ipv4, have_ipv6, isc_commandline_argument, isc_commandline_index, isc_commandline_parse(), ISC_FALSE, ISC_LIST_APPEND, isc_net_disableipv4(), isc_net_disableipv6(), ISC_R_SUCCESS, ISC_TRUE, isc_textregion::length, list_addresses, list_type, listed_server, lookup_list, make_empty_lookup(), MXNAME, ndots, rdclass, serial, set_nameserver(), short_form, show_usage(), timeout, tries, UNUSED, usesearch, and verbose.
int main | ( | int | argc, | |
char ** | argv | |||
) |
Definition at line 877 of file host.c.
References cancel_all(), check_result(), debug, destroy_libs(), fatalexit, global_task, isc_app_finish(), isc_app_onrun(), isc_app_run(), isc_app_start(), ISC_FALSE, ISC_LIST_INIT, keyfile, keysecret, lookup_list, mctx, onrun_callback(), parse_args(), pre_parse_args(), progname, search_list, seen_error, server_list, setup_file_key(), setup_libs(), setup_system(), setup_text_key(), and tries.
isc_boolean_t short_form = ISC_TRUE [static] |
isc_boolean_t listed_server = ISC_FALSE [static] |
isc_boolean_t default_lookups = ISC_TRUE [static] |
int seen_error = -1 [static] |
isc_boolean_t list_addresses = ISC_TRUE [static] |
dns_rdatatype_t list_type = dns_rdatatype_a [static] |
isc_boolean_t printed_server = ISC_FALSE [static] |
const char* opcodetext[] [static] |
const char* rcodetext[] [static] |
Initial value:
{ { 1, "has address" }, { 2, "name server" }, { 5, "is an alias for" }, { 11, "has well known services" }, { 12, "domain name pointer" }, { 13, "host information" }, { 15, "mail is handled by" }, { 16, "descriptive text" }, { 19, "x25 address" }, { 20, "ISDN address" }, { 24, "has signature" }, { 25, "has key" }, { 28, "has IPv6 address" }, { 29, "location" }, { 0, NULL } }
const char* optstring = "46ac:dilnm:rst:vVwCDN:R:TW:" [static] |