From 32dc912febbf3960c47a0ebfd387977b2c78656b Mon Sep 17 00:00:00 2001 From: ume Date: Sun, 10 Jun 2001 20:25:24 +0000 Subject: Implement EDNS0 support, as EDNS0 support will be made mandatory for IPv6 transport-ready resolvers/DNS servers. Need careful configuration when enable it. (default config is not affected). See manpage for details. XXX visible symbol __res_opt() is added, however, it is not supposed to be called from outside, libc minor is not bumped. Obtained from: KAME/NetBSD --- include/arpa/nameser.h | 1 + include/arpa/nameser_compat.h | 1 + include/resolv.h | 4 ++++ 3 files changed, 6 insertions(+) (limited to 'include') diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h index 3e09c91..343e641 100644 --- a/include/arpa/nameser.h +++ b/include/arpa/nameser.h @@ -273,6 +273,7 @@ typedef enum __ns_type { ns_t_srv = 33, /* Server Selection. */ ns_t_atma = 34, /* ATM Address */ ns_t_naptr = 35, /* Naming Authority PoinTeR */ + ns_t_opt = 41, /* OPT pseudo-RR, RFC2761 */ /* Query type values which do not appear in resource records. */ ns_t_ixfr = 251, /* Incremental zone transfer. */ ns_t_axfr = 252, /* Transfer zone of authority. */ diff --git a/include/arpa/nameser_compat.h b/include/arpa/nameser_compat.h index 850fb8a..2321797 100644 --- a/include/arpa/nameser_compat.h +++ b/include/arpa/nameser_compat.h @@ -173,6 +173,7 @@ typedef struct { #define T_SRV ns_t_srv #define T_ATMA ns_t_atma #define T_NAPTR ns_t_naptr +#define T_OPT ns_t_opt #define T_IXFR ns_t_ixfr #define T_AXFR ns_t_axfr #define T_MAILB ns_t_mailb diff --git a/include/resolv.h b/include/resolv.h index 4a0cf74..a076c7e 100644 --- a/include/resolv.h +++ b/include/resolv.h @@ -150,6 +150,8 @@ struct __res_state_ext { #define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ #define RES_NOTLDQUERY 0x00004000 /* Don't query TLD names */ +/* KAME extensions: use higher bit to avoid conflict with ISC use */ +#define RES_USE_EDNS0 0x40000000 /* use EDNS0 */ #define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH) @@ -249,6 +251,7 @@ extern const struct res_sym __p_type_syms[]; #define res_nameinquery __res_nameinquery #define res_queriesmatch __res_queriesmatch #define res_close __res_close +#define res_opt __res_opt #define res_mkupdate __res_mkupdate #define res_mkupdrec __res_mkupdrec #define res_freeupdrec __res_freeupdrec @@ -303,6 +306,7 @@ int res_nameinquery __P((const char *, int, int, int res_queriesmatch __P((const u_char *, const u_char *, const u_char *, const u_char *)); void res_close __P((void)); +int res_opt __P((int, u_char *, int, int)); const char * p_section __P((int, int)); /* XXX The following depend on the ns_updrec typedef in arpa/nameser.h */ #ifdef _ARPA_NAMESER_H_ -- cgit v1.1