|
|
1.1 ! root 1: .\" Copyright (c) 1985 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)resolver.3 6.1 (Berkeley) 11/21/87 ! 6: .\" ! 7: .TH RESOLVER 3 "November 21, 1987" ! 8: .UC 4 ! 9: .SH NAME ! 10: res_mkquery, res_send, res_init, dn_comp, dn_expand \- resolver routines ! 11: .SH SYNOPSIS ! 12: .B #include <sys/types.h> ! 13: .br ! 14: .B #include <netinet/in.h> ! 15: .br ! 16: .B #include <arpa/nameser.h> ! 17: .br ! 18: .B #include <resolv.h> ! 19: .PP ! 20: .B "res_mkquery(op, dname, class, type, data, datalen, newrr, buf, buflen)" ! 21: .br ! 22: .B int op; ! 23: .br ! 24: .B char *dname; ! 25: .br ! 26: .B int class, type; ! 27: .br ! 28: .B char *data; ! 29: .br ! 30: .B int datalen; ! 31: .br ! 32: .B struct rrec *newrr; ! 33: .br ! 34: .B char *buf; ! 35: .br ! 36: .B int buflen; ! 37: .PP ! 38: .B res_send(msg, msglen, answer, anslen) ! 39: .br ! 40: .B char *msg; ! 41: .br ! 42: .B int msglen; ! 43: .br ! 44: .B char *answer; ! 45: .br ! 46: .B int anslen; ! 47: .PP ! 48: .B res_init() ! 49: .PP ! 50: .B dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr) ! 51: .br ! 52: .B char *exp_dn, *comp_dn; ! 53: .br ! 54: .B int length; ! 55: .br ! 56: .B char **dnptrs, **lastdnptr; ! 57: .PP ! 58: .B dn_expand(msg, eomorig, comp_dn, exp_dn, length) ! 59: .br ! 60: .B char *msg, *eomorig, *comp_dn, exp_dn; ! 61: .br ! 62: .B int length; ! 63: .SH DESCRIPTION ! 64: These routines are used for making, sending and interpreting packets ! 65: for use with Internet domain name servers. ! 66: Global information that is used by the ! 67: resolver routines is kept in the variable ! 68: .IR _res . ! 69: Most of the values have reasonable defaults and can be ignored. ! 70: Options ! 71: stored in ! 72: .I _res.options ! 73: are defined in ! 74: .I resolv.h ! 75: and are as follows. ! 76: Options are stored a simple bit mask containing the bitwise ``or'' ! 77: of the options enabled. ! 78: .IP RES_INIT ! 79: True if the initial name server address and default domain name are ! 80: initialized (i.e., ! 81: .I res_init ! 82: has been called). ! 83: .IP RES_DEBUG ! 84: Print debugging messages. ! 85: .IP RES_AAONLY ! 86: Accept authoritative answers only. ! 87: With this option, ! 88: .I res_send ! 89: should continue until it finds an authoritative answer or finds an error. ! 90: Currently this is not implemented. ! 91: .IP RES_USEVC ! 92: Use TCP connections for queries instead of UDP datagrams. ! 93: .IP RES_STAYOPEN ! 94: Used with RES_USEVC to keep the TCP connection open between ! 95: queries. ! 96: This is useful only in programs that regularly do many queries. ! 97: UDP should be the normal mode used. ! 98: .IP RES_IGNTC ! 99: Unused currently (ignore truncation errors, i.e., don't retry with TCP). ! 100: .IP RES_RECURSE ! 101: Set the recursion-desired bit in queries. ! 102: This is the default. ! 103: ( ! 104: .I res_send ! 105: does not do iterative queries and expects the name server ! 106: to handle recursion.) ! 107: .IP RES_DEFNAMES ! 108: If set, ! 109: .I res_mkquery ! 110: will append the default domain name to single-component names ! 111: (those that do not contain a dot). ! 112: This is the default. ! 113: .IP RES_DNSRCH ! 114: If this option is set, ! 115: the standard host lookup routine ! 116: .IR gethostbyname (3) ! 117: will search for host names in the current domain and in parent domains; see ! 118: .IR hostname (7). ! 119: .PP ! 120: .I Res_init ! 121: .PP ! 122: reads the initialization file to get the default ! 123: domain name and the Internet address of the initial hosts ! 124: running the name server. ! 125: If this line does not exist, the host running ! 126: the resolver is tried. ! 127: .I Res_mkquery ! 128: makes a standard query message and places it in ! 129: .IR buf . ! 130: .I Res_mkquery ! 131: will return the size of the query or \-1 if the query is ! 132: larger than ! 133: .IR buflen . ! 134: .I Op ! 135: is usually QUERY but can be any of the query types defined in ! 136: .IR nameser.h . ! 137: .I Dname ! 138: is the domain name. ! 139: If ! 140: .I dname ! 141: consists of a single label and the RES_DEFNAMES flag is enabled ! 142: (the default), the current domain name will be appended to ! 143: .IR dname . ! 144: The current domain name is defined by the hostname ! 145: or is specified in a system file; it can be overridden ! 146: by the environment variable LOCALDOMAIN. ! 147: .I Newrr ! 148: is currently unused but is intended for making update messages. ! 149: .PP ! 150: .I Res_send ! 151: sends a query to name servers and returns an answer. ! 152: It will call ! 153: .I res_init ! 154: if RES_INIT is not set, send the query to the local name server, and ! 155: handle timeouts and retries. ! 156: The length of the message is returned, or ! 157: \-1 if there were errors. ! 158: .PP ! 159: .I Dn_expand ! 160: expands the compressed domain name ! 161: .I comp_dn ! 162: to a full domain name. Expanded names are converted to upper case. ! 163: .I Msg ! 164: is a pointer to the beginning of the message, ! 165: .I exp_dn ! 166: is a pointer to a buffer of size ! 167: .I length ! 168: for the result. ! 169: The size of compressed name is returned or -1 if there was an error. ! 170: .PP ! 171: .I Dn_comp ! 172: compresses the domain name ! 173: .I exp_dn ! 174: and stores it in ! 175: .IR comp_dn . ! 176: The size of the compressed name is returned or -1 if there were errors. ! 177: .I length is the size of the array pointed to by ! 178: .IR comp_dn . ! 179: .I Dnptrs ! 180: is a list of pointers to previously compressed names in the current message. ! 181: The first pointer points to ! 182: to the beginning of the message and the list ends with NULL. ! 183: .I lastdnptr ! 184: is a pointer to the end of the array pointed to ! 185: .IR dnptrs . ! 186: A side effect is to update the list of pointers for ! 187: labels inserted into the message by ! 188: .I dn_comp ! 189: as the name is compressed. ! 190: If ! 191: .I dnptr ! 192: is NULL, names are not compressed. ! 193: If ! 194: .I lastdnptr ! 195: is NULL, the list of labels is not updated. ! 196: .SH FILES ! 197: /etc/resolv.conf see resolver(5) ! 198: .SH "SEE ALSO" ! 199: gethostbyname(3), named(8), resolver(5), hostname(7), ! 200: .br ! 201: RFC882, RFC883, RFC973, RFC974, ! 202: .br ! 203: SMM:11 Name Server Operations Guide for BIND
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.