* or the GNU Library General Public License, as appropriate, along
* with this program; if not, write to the Free Software Foundation.
*
- *
- * $Id$
*/
#ifndef ADNS_H_INCLUDED
adns_if_permit_ipv4= 0x0400,/* allow _addr queries to return IPv4 addresses */
adns_if_permit_ipv6= 0x0800,/* allow _addr queries to return IPv6 addresses */
- adns_if_afmask= 0x0c00
+ adns_if_afmask= 0x0c00,
/* These are policy flags, and overridden by the adns_af:... option in
* resolv.conf. If the adns_qf_want_... query flags are incompatible with
* these settings (in the sense that no address families are permitted at
* all) then the query flags take precedence; otherwise only records which
* satisfy all of the stated requirements are allowed.
*/
+ adns__if_sizeforce= 0x7fff,
} adns_initflags;
typedef enum { /* In general, or together the desired flags: */
adns_qf_quoteok_anshost=0x00000040,/* ... in things supposedly hostnames */
adns_qf_quotefail_cname=0x00000080,/* refuse if quote-req chars in CNAME we go via */
adns_qf_cname_loose= 0x00000100,/* allow refs to CNAMEs - without, get _s_cname */
+ adns_qf_cname_strict= 0x00010000,/* forbid CNAME refs (default, currently) */
adns_qf_cname_forbid= 0x00000200,/* don't follow CNAMEs, instead give _s_cname */
adns_qf_want_ipv4= 0x00000400,/* try to return IPv4 addresses */
adns_qf_addrlit_scope_numeric=0x00004000,/* %<scope> may only be numeric */
adns_qf_addrlit_ipv4_quadonly=0x00008000,/* reject non-dotted-quad ipv4 */
- adns__qf_internalmask= 0x0ff00000
+ adns__qf_internalmask= 0x0ff00000,
+ adns__qf_sizeforce= 0x7fffffff
} adns_queryflags;
typedef enum {
adns_r_srv_raw= 33,
adns_r_srv= adns_r_srv_raw|adns__qtf_deref,
- adns_r_addr= adns_r_a|adns__qtf_deref
+ adns_r_addr= adns_r_a|adns__qtf_deref,
+
+ adns__rrt_sizeforce= 0x7fffffff,
} adns_rrtype;
* Lookups occur (logically) concurrently; use the `sortlist' directive to
* control the relative order of addresses in answers. This option
* overrides the corresponding init flags (covered by adns_if_afmask).
+ *
+ * adns_ignoreunkcfg
+ * Ignore unknown options and configuration directives, rather than
+ * logging them. To be effective, appear in the configuration
+ * before the unknown options. ADNS_RES_OPTIONS is generally early
+ * enough.
*
* There are a number of environment variables which can modify the
* behaviour of adns. They take effect only if adns_init is used, and
* port is always in host byte order and is simply copied to and
* from the appropriate sockaddr field (byteswapped as necessary).
*
- * The only flags supported are adns_qf_addrlit_...; others are
- * ignored.
+ * The only flags supported are adns_qf_addrlit_...
*
* Error return values are:
*
*
* EAFNOSUPPORT sa->sa_family is not supported (addr2text only).
*
+ * ENOSYS Unsupported flags set.
+ *
* Only if neither adns_qf_addrlit_scope_forbid nor
* adns_qf_addrlit_scope_numeric are set:
*