home *** CD-ROM | disk | FTP | other *** search
-
-
-
- rrrreeeessss____qqqquuuueeeerrrryyyy((((3333NNNN)))) rrrreeeessss____qqqquuuueeeerrrryyyy((((3333NNNN))))
-
-
-
- NNNNAAAAMMMMEEEE
- res_query, res_search, res_mkquery, res_send, res_init, dn_comp,
- dn_expand - resolver routines
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>>
- ####iiiinnnncccclllluuuuddddeeee <<<<nnnneeeettttiiiinnnneeeetttt////iiiinnnn....hhhh>>>>
- ####iiiinnnncccclllluuuuddddeeee <<<<aaaarrrrppppaaaa////nnnnaaaammmmeeeesssseeeerrrr....hhhh>>>>
- ####iiiinnnncccclllluuuuddddeeee <<<<rrrreeeessssoooollllvvvv....hhhh>>>>
-
- iiiinnnntttt rrrreeeessss____qqqquuuueeeerrrryyyy ((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ddddnnnnaaaammmmeeee,,,, iiiinnnntttt ccccllllaaaassssssss,,,, iiiinnnntttt ttttyyyyppppeeee,,,,
- uuuu____cccchhhhaaaarrrr ****aaaannnnsssswwwweeeerrrr,,,, iiiinnnntttt aaaannnnsssslllleeeennnn))));;;;
-
- iiiinnnntttt rrrreeeessss____sssseeeeaaaarrrrcccchhhh ((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ddddnnnnaaaammmmeeee,,,, iiiinnnntttt ccccllllaaaassssssss,,,, iiiinnnntttt ttttyyyyppppeeee,,,,
- uuuu____cccchhhhaaaarrrr ****aaaannnnsssswwwweeeerrrr,,,, iiiinnnntttt aaaannnnsssslllleeeennnn))));;;;
-
- iiiinnnntttt rrrreeeessss____mmmmkkkkqqqquuuueeeerrrryyyy ((((iiiinnnntttt oooopppp,,,, ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ddddnnnnaaaammmmeeee,,,, iiiinnnntttt ccccllllaaaassssssss,,,, iiiinnnntttt ttttyyyyppppeeee,,,,
- ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ddddaaaattttaaaa,,,, iiiinnnntttt ddddaaaattttaaaalllleeeennnn,,,, ccccoooonnnnsssstttt cccchhhhaaaarrrr ****nnnneeeewwwwrrrrrrrr,,,,
- cccchhhhaaaarrrr ****bbbbuuuuffff,,,, iiiinnnntttt bbbbuuuufffflllleeeennnn))));;;;
-
- iiiinnnntttt rrrreeeessss____sssseeeennnndddd ((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****mmmmssssgggg,,,, iiiinnnntttt mmmmssssgggglllleeeennnn,,,, cccchhhhaaaarrrr ****aaaannnnsssswwwweeeerrrr,,,, iiiinnnntttt aaaannnnsssslllleeeennnn))));;;;
-
- iiiinnnntttt rrrreeeessss____iiiinnnniiiitttt ((((vvvvooooiiiidddd))));;;;
-
- iiiinnnntttt ddddnnnn____ccccoooommmmpppp ((((ccccoooonnnnsssstttt uuuu____cccchhhhaaaarrrr ****eeeexxxxpppp____ddddnnnn,,,, uuuu____cccchhhhaaaarrrr ****ccccoooommmmpppp____ddddnnnn,,,, iiiinnnntttt lllleeeennnnggggtttthhhh,,,,
- uuuu____cccchhhhaaaarrrr ********ddddnnnnppppttttrrrrssss,,,, uuuu____cccchhhhaaaarrrr ********llllaaaassssttttddddnnnnppppttttrrrr))));;;;
-
- iiiinnnntttt ddddnnnn____eeeexxxxppppaaaannnndddd ((((ccccoooonnnnsssstttt uuuu____cccchhhhaaaarrrr ****mmmmssssgggg,,,, ccccoooonnnnsssstttt uuuu____cccchhhhaaaarrrr ****eeeeoooommmmoooorrrriiiigggg,,,,
- ccccoooonnnnsssstttt uuuu____cccchhhhaaaarrrr ****ccccoooommmmpppp____ddddnnnn,,,, cccchhhhaaaarrrr ****eeeexxxxpppp____ddddnnnn,,,, iiiinnnntttt lllleeeennnnggggtttthhhh))));;;;
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- These routines are used for making, sending, and interpreting query and
- reply messages with Internet domain name servers.
-
- Global configuration and state information that is used by the resolver
- routines is kept in the structure __r_e_s. Most of the values have
- reasonable defaults and can be ignored. Options stored in __r_e_s._o_p_t_i_o_n_s
- are defined in _r_e_s_o_l_v._h and are as follows. Options are stored as a
- simple bit mask containing the bitwise ``or'' of the options enabled.
-
- RES_INIT True if the initial name server address and default domain
- name are initialized (_r_e_s__i_n_i_t has been called).
-
- RES_DEBUG Print debugging messages.
-
- RES_AAONLY Accept authoritative answers only. With this option,
- _r_e_s__s_e_n_d should continue until it finds an authoritative
- answer or finds an error. Currently this is not
- implemented.
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- rrrreeeessss____qqqquuuueeeerrrryyyy((((3333NNNN)))) rrrreeeessss____qqqquuuueeeerrrryyyy((((3333NNNN))))
-
-
-
- RES_USEVC Use TCP connections for queries instead of UDP datagrams.
-
- RES_STAYOPEN Used with RES_USEVC to keep the TCP connection open
- between queries. This is useful only in programs that
- regularly do many queries. UDP should be the normal mode
- used.
-
- RES_IGNTC Unused currently (ignore truncation errors; don't retry
- with TCP).
-
- RES_RECURSE Set the recursion-desired bit in queries. This is the
- default. (_r_e_s__s_e_n_d does not do iterative queries and
- expects the name server to handle recursion.)
-
- RES_DEFNAMES If set, _r_e_s__s_e_a_r_c_h appends the default domain name to
- single-component names (those that do not contain a dot).
- This option is enabled by default.
-
- RES_DNSRCH If this option is set, _r_e_s__s_e_a_r_c_h searches for hostnames
- in the current domain and in parent domains; see
- _h_o_s_t_n_a_m_e(5). This is used by the standard host lookup
- routine _g_e_t_h_o_s_t_b_y_n_a_m_e(3N). This option is enabled by
- default.
-
- The _r_e_s__i_n_i_t routine reads the configuration file (if any; see
- _r_e_s_o_l_v_e_r(4)) to get the default domain name, search list and the Internet
- address of the local name server(s). If no server is configured, the
- host running the resolver is tried. The current domain name is defined
- by the hostname if not specified in the configuration file; it can be
- overridden by the environment variable LOCALDOMAIN. Initialization
- normally occurs on the first call to one of the following routines.
-
- The _r_e_s__q_u_e_r_y function provides an interface to the server query
- mechanism. It constructs a query, sends it to the local server, awaits a
- response, and makes preliminary checks on the reply. The query requests
- information of the specified _t_y_p_e and _c_l_a_s_s for the specified fully-
- qualified domain name _d_n_a_m_e. The reply message is left in the _a_n_s_w_e_r
- buffer with length _a_n_s_l_e_n supplied by the caller.
-
- The _r_e_s__s_e_a_r_c_h routine makes a query and awaits a response like
- _r_e_s__q_u_e_r_y, but in addition, it implements the default and search rules
- controlled by the RES_DEFNAMES and RES_DNSRCH options. It returns the
- first successful reply.
-
- The remaining routines are lower-level routines used by _r_e_s__q_u_e_r_y. The
- _r_e_s__m_k_q_u_e_r_y function constructs a standard query message and places it in
- _b_u_f. It returns the size of the query, or -1 if the query is larger than
- _b_u_f_l_e_n. The query type _o_p is usually QUERY, but can be any of the query
- types defined in <_a_r_p_a/_n_a_m_e_s_e_r._h>. The domain name for the query is
- given by _d_n_a_m_e. _n_e_w_r_r is currently unused but is intended for making
- update messages.
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- rrrreeeessss____qqqquuuueeeerrrryyyy((((3333NNNN)))) rrrreeeessss____qqqquuuueeeerrrryyyy((((3333NNNN))))
-
-
-
- The _r_e_s__s_e_n_d routine sends a preformatted query and returns an answer.
- It calls _r_e_s__i_n_i_t if RES_INIT is not set, sends the query to the local
- name server, and handles timeouts and retries. The length of the reply
- message is returned, or -1 if there were errors.
-
- The _d_n__c_o_m_p function compresses the domain name _e_x_p__d_n and stores it in
- _c_o_m_p__d_n. The size of the compressed name is returned or -1 if there were
- errors. The size of the array pointed to by _c_o_m_p__d_n is given by _l_e_n_g_t_h.
- The compression uses an array of pointers _d_n_p_t_r_s to previously-compressed
- names in the current message. The first pointer points to the beginning
- of the message and the list ends with NULL. The limit to the array is
- specified by _l_a_s_t_d_n_p_t_r. A side effect of _d_n__c_o_m_p is to update the list
- of pointers for labels inserted into the message as the name is
- compressed. If _d_n_p_t_r is NULL, names are not compressed. If _l_a_s_t_d_n_p_t_r is
- NULL, the list of labels is not updated.
-
- The _d_n__e_x_p_a_n_d entry expands the compressed domain name _c_o_m_p__d_n to a full
- domain name The compressed name is contained in a query or reply message;
- _m_s_g is a pointer to the beginning of the message. The uncompressed name
- is placed in the buffer indicated by _e_x_p__d_n, which is of size _l_e_n_g_t_h.
- The size of compressed name is returned or -1 if there was an error.
-
- FFFFIIIILLLLEEEESSSS
- /etc/resolv.conf see resolver(4)
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- named(1M), gethostbyname(3N), resolver(4), hostname(5).
-
- RFC1032, RFC1033, RFC1034, RFC1035, RFC974
-
- _I_R_I_X _A_d_m_i_n: _N_e_t_w_o_r_k_i_n_g _a_n_d _M_a_i_l
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-