X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/b83e07aa1f07ade33315dfcac5d34a305976f1eb..adaee51c9e3c38317004ef5803e2fb3e4b7db0ce:/src/adns.h diff --git a/src/adns.h b/src/adns.h index 5765e55..a6599f6 100644 --- a/src/adns.h +++ b/src/adns.h @@ -50,8 +50,6 @@ * 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 @@ -110,13 +108,14 @@ typedef enum { /* In general, or together the desired flags: */ 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: */ @@ -129,6 +128,7 @@ 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 */ @@ -145,7 +145,8 @@ typedef enum { /* In general, or together the desired flags: */ adns_qf_addrlit_scope_numeric=0x00004000,/* % 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 { @@ -214,7 +215,9 @@ 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; @@ -586,6 +589,12 @@ int adns_init_logfn(adns_state *newstate_r, adns_initflags flags, * 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 @@ -706,8 +715,7 @@ int adns_addr2text(const struct sockaddr *sa, adns_queryflags flags, * 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: * @@ -730,6 +738,8 @@ int adns_addr2text(const struct sockaddr *sa, adns_queryflags flags, * * 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: *