head 1.42; access; symbols netbsd-10-0-RELEASE:1.42 netbsd-10-0-RC6:1.42 netbsd-10-0-RC5:1.42 netbsd-10-0-RC4:1.42 netbsd-10-0-RC3:1.42 netbsd-10-0-RC2:1.42 netbsd-10-0-RC1:1.42 netbsd-10:1.42.0.2 netbsd-10-base:1.42 netbsd-9-3-RELEASE:1.40 cjep_sun2x-base1:1.41 cjep_sun2x:1.41.0.4 cjep_sun2x-base:1.41 cjep_staticlib_x-base1:1.41 netbsd-9-2-RELEASE:1.40 cjep_staticlib_x:1.41.0.2 cjep_staticlib_x-base:1.41 netbsd-9-1-RELEASE:1.40 phil-wifi-20200421:1.40 phil-wifi-20200411:1.40 is-mlppp:1.40.0.34 is-mlppp-base:1.40 phil-wifi-20200406:1.40 netbsd-8-2-RELEASE:1.40 netbsd-9-0-RELEASE:1.40 netbsd-9-0-RC2:1.40 netbsd-9-0-RC1:1.40 phil-wifi-20191119:1.40 netbsd-9:1.40.0.32 netbsd-9-base:1.40 phil-wifi-20190609:1.40 netbsd-8-1-RELEASE:1.40 netbsd-8-1-RC1:1.40 pgoyette-compat-merge-20190127:1.40 pgoyette-compat-20190127:1.40 pgoyette-compat-20190118:1.40 pgoyette-compat-1226:1.40 pgoyette-compat-1126:1.40 pgoyette-compat-1020:1.40 pgoyette-compat-0930:1.40 pgoyette-compat-0906:1.40 netbsd-7-2-RELEASE:1.40 pgoyette-compat-0728:1.40 netbsd-8-0-RELEASE:1.40 phil-wifi:1.40.0.30 phil-wifi-base:1.40 pgoyette-compat-0625:1.40 netbsd-8-0-RC2:1.40 pgoyette-compat-0521:1.40 pgoyette-compat-0502:1.40 pgoyette-compat-0422:1.40 netbsd-8-0-RC1:1.40 pgoyette-compat-0415:1.40 pgoyette-compat-0407:1.40 pgoyette-compat-0330:1.40 pgoyette-compat-0322:1.40 pgoyette-compat-0315:1.40 netbsd-7-1-2-RELEASE:1.40 pgoyette-compat:1.40.0.28 pgoyette-compat-base:1.40 netbsd-7-1-1-RELEASE:1.40 matt-nb8-mediatek:1.40.0.26 matt-nb8-mediatek-base:1.40 perseant-stdc-iso10646:1.40.0.24 perseant-stdc-iso10646-base:1.40 netbsd-8:1.40.0.22 netbsd-8-base:1.40 prg-localcount2-base3:1.40 prg-localcount2-base2:1.40 prg-localcount2-base1:1.40 prg-localcount2:1.40.0.20 prg-localcount2-base:1.40 pgoyette-localcount-20170426:1.40 bouyer-socketcan-base1:1.40 pgoyette-localcount-20170320:1.40 netbsd-7-1:1.40.0.18 netbsd-7-1-RELEASE:1.40 netbsd-7-1-RC2:1.40 netbsd-7-nhusb-base-20170116:1.40 bouyer-socketcan:1.40.0.16 bouyer-socketcan-base:1.40 pgoyette-localcount-20170107:1.40 netbsd-7-1-RC1:1.40 pgoyette-localcount-20161104:1.40 netbsd-7-0-2-RELEASE:1.40 localcount-20160914:1.40 netbsd-7-nhusb:1.40.0.14 netbsd-7-nhusb-base:1.40 pgoyette-localcount-20160806:1.40 pgoyette-localcount-20160726:1.40 pgoyette-localcount:1.40.0.12 pgoyette-localcount-base:1.40 netbsd-7-0-1-RELEASE:1.40 netbsd-7-0:1.40.0.10 netbsd-7-0-RELEASE:1.40 netbsd-7-0-RC3:1.40 netbsd-7-0-RC2:1.40 netbsd-7-0-RC1:1.40 netbsd-5-2-3-RELEASE:1.35.4.1 netbsd-5-1-5-RELEASE:1.35.14.1 netbsd-6-0-6-RELEASE:1.38 netbsd-6-1-5-RELEASE:1.38.10.1 netbsd-7:1.40.0.8 netbsd-7-base:1.40 yamt-pagecache-base9:1.40 yamt-pagecache-tag8:1.38.8.2 netbsd-6-1-4-RELEASE:1.38.10.1 netbsd-6-0-5-RELEASE:1.38 tls-earlyentropy:1.40.0.6 tls-earlyentropy-base:1.40 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.40 riastradh-drm2-base3:1.40 netbsd-6-1-3-RELEASE:1.38.10.1 netbsd-6-0-4-RELEASE:1.38 netbsd-5-2-2-RELEASE:1.35.4.1 netbsd-5-1-4-RELEASE:1.35.14.1 netbsd-6-1-2-RELEASE:1.38.10.1 netbsd-6-0-3-RELEASE:1.38 netbsd-5-2-1-RELEASE:1.35.4.1 netbsd-5-1-3-RELEASE:1.35.14.1 netbsd-6-1-1-RELEASE:1.38.10.1 riastradh-drm2-base2:1.40 riastradh-drm2-base1:1.40 riastradh-drm2:1.40.0.2 riastradh-drm2-base:1.40 netbsd-6-1:1.38.10.1.0.2 netbsd-6-0-2-RELEASE:1.38 netbsd-6-1-RELEASE:1.38.10.1 netbsd-6-1-RC4:1.38.10.1 netbsd-6-1-RC3:1.38.10.1 agc-symver:1.40.0.4 agc-symver-base:1.40 netbsd-6-1-RC2:1.38.10.1 netbsd-6-1-RC1:1.38.10.1 yamt-pagecache-base8:1.40 netbsd-5-2:1.35.4.1.0.2 netbsd-6-0-1-RELEASE:1.38 yamt-pagecache-base7:1.40 netbsd-5-2-RELEASE:1.35.4.1 netbsd-5-2-RC1:1.35.4.1 matt-nb6-plus-nbase:1.38 yamt-pagecache-base6:1.39 netbsd-6-0:1.38.0.14 netbsd-6-0-RELEASE:1.38 netbsd-6-0-RC2:1.38 tls-maxphys:1.39.0.2 tls-maxphys-base:1.40 matt-nb6-plus:1.38.0.12 matt-nb6-plus-base:1.38 netbsd-6-0-RC1:1.38 yamt-pagecache-base5:1.38 yamt-pagecache-base4:1.38 netbsd-6:1.38.0.10 netbsd-6-base:1.38 netbsd-5-1-2-RELEASE:1.35.14.1 netbsd-5-1-1-RELEASE:1.35.14.1 yamt-pagecache-base3:1.38 yamt-pagecache-base2:1.38 yamt-pagecache:1.38.0.8 yamt-pagecache-base:1.38 cherry-xenmp:1.38.0.6 cherry-xenmp-base:1.38 uebayasi-xip-base7:1.38 bouyer-quota2-nbase:1.38 bouyer-quota2:1.38.0.4 bouyer-quota2-base:1.38 matt-mips64-premerge-20101231:1.38 matt-nb5-mips64-premerge-20101231:1.35 matt-nb5-pq3:1.35.0.16 matt-nb5-pq3-base:1.35 netbsd-5-1:1.35.0.14 uebayasi-xip-base6:1.38 uebayasi-xip-base5:1.38 netbsd-5-1-RELEASE:1.35 uebayasi-xip-base4:1.38 uebayasi-xip-base3:1.38 netbsd-5-1-RC4:1.35 matt-nb5-mips64-k15:1.35 uebayasi-xip-base2:1.38 netbsd-5-1-RC3:1.35 netbsd-5-1-RC2:1.35 uebayasi-xip-base1:1.38 netbsd-5-1-RC1:1.35 uebayasi-xip:1.38.0.2 uebayasi-xip-base:1.38 netbsd-5-0-2-RELEASE:1.35 matt-nb5-mips64-premerge-20091211:1.35 matt-premerge-20091211:1.38 matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.35 matt-nb4-mips64-k7-u2a-k9b:1.35 matt-nb5-mips64-u1-k1-k5:1.35 matt-nb5-mips64:1.35.0.12 netbsd-5-0-1-RELEASE:1.35 jym-xensuspend-nbase:1.37 netbsd-5-0:1.35.0.10 netbsd-5-0-RELEASE:1.35 netbsd-5-0-RC4:1.35 libbind-6-0rc1:1.1.1.8 netbsd-5-0-RC3:1.35 netbsd-5-0-RC2:1.35 jym-xensuspend:1.35.0.8 jym-xensuspend-base:1.37 netbsd-5-0-RC1:1.35 christos-time_t-nbase:1.35 christos-time_t:1.35.0.6 christos-time_t-base:1.35 netbsd-5:1.35.0.4 netbsd-5-base:1.35 matt-mips64-base2:1.35 matt-mips64:1.33.0.16 netbsd-4-0-1-RELEASE:1.31.4.1 wrstuden-revivesa-base-3:1.35 wrstuden-revivesa-base-2:1.35 wrstuden-fixsa-newbase:1.31.4.1 wrstuden-revivesa-base-1:1.35 simonb-wapbl-nbase:1.35 yamt-pf42-base4:1.33 simonb-wapbl:1.33.0.14 simonb-wapbl-base:1.35 yamt-pf42-base3:1.33 hpcarm-cleanup-nbase:1.33 yamt-pf42-baseX:1.33 yamt-pf42-base2:1.33 wrstuden-revivesa:1.33.0.12 wrstuden-revivesa-base:1.35 yamt-pf42:1.33.0.10 yamt-pf42-base:1.33 keiichi-mipv6:1.33.0.8 keiichi-mipv6-base:1.33 matt-armv6-nbase:1.33 matt-armv6-prevmlocking:1.33 wrstuden-fixsa-base-1:1.31.4.1 netbsd-4-0:1.31.4.1.0.2 netbsd-4-0-RELEASE:1.31.4.1 cube-autoconf:1.33.0.6 cube-autoconf-base:1.33 netbsd-4-0-RC5:1.31.4.1 netbsd-4-0-RC4:1.31.4.1 netbsd-4-0-RC3:1.31.4.1 netbsd-4-0-RC2:1.31.4.1 netbsd-4-0-RC1:1.31.4.1 matt-armv6:1.33.0.4 matt-armv6-base:1.33 matt-mips64-base:1.33 hpcarm-cleanup:1.33.0.2 hpcarm-cleanup-base:1.33 netbsd-3-1-1-RELEASE:1.30 netbsd-3-0-3-RELEASE:1.30 wrstuden-fixsa:1.31.0.6 wrstuden-fixsa-base:1.31.4.1 bind-9-4-0:1.1.1.7 bind-9-4-0-rc2:1.1.1.6 abandoned-netbsd-4-base:1.31 abandoned-netbsd-4:1.31.0.2 netbsd-3-1:1.30.0.6 netbsd-3-1-RELEASE:1.30 netbsd-3-0-2-RELEASE:1.30 netbsd-3-1-RC4:1.30 netbsd-3-1-RC3:1.30 netbsd-3-1-RC2:1.30 netbsd-3-1-RC1:1.30 netbsd-4:1.31.0.4 netbsd-4-base:1.31 netbsd-3-0-1-RELEASE:1.30 netbsd-3-0:1.30.0.4 netbsd-3-0-RELEASE:1.30 netbsd-3-0-RC6:1.30 netbsd-3-0-RC5:1.30 netbsd-3-0-RC4:1.30 netbsd-3-0-RC3:1.30 netbsd-3-0-RC2:1.30 netbsd-3-0-RC1:1.30 netbsd-2-0-3-RELEASE:1.22 netbsd-2-1:1.22.0.6 netbsd-2-1-RELEASE:1.22 netbsd-2-1-RC6:1.22 netbsd-2-1-RC5:1.22 netbsd-2-1-RC4:1.22 netbsd-2-1-RC3:1.22 netbsd-2-1-RC2:1.22 netbsd-2-1-RC1:1.22 netbsd-2-0-2-RELEASE:1.22 netbsd-3:1.30.0.2 netbsd-3-base:1.30 netbsd-2-0-1-RELEASE:1.22 netbsd-2:1.22.0.4 netbsd-2-base:1.22 netbsd-2-0-RELEASE:1.22 netbsd-2-0-RC5:1.22 bind-9-3-0:1.1.1.5 netbsd-2-0-RC4:1.22 netbsd-2-0-RC3:1.22 netbsd-2-0-RC2:1.22 netbsd-2-0-RC1:1.22 bind-9-3-0-beta3:1.1.1.4 netbsd-2-0:1.22.0.2 netbsd-2-0-base:1.22 netbsd-1-6-PATCH002-RELEASE:1.19 netbsd-1-6-PATCH002:1.19 netbsd-1-6-PATCH002-RC4:1.19 netbsd-1-6-PATCH002-RC3:1.19 netbsd-1-6-PATCH002-RC2:1.19 netbsd-1-6-PATCH002-RC1:1.19 netbsd-1-6-PATCH001:1.19 netbsd-1-6-PATCH001-RELEASE:1.19 netbsd-1-6-PATCH001-RC3:1.19 netbsd-1-6-PATCH001-RC2:1.19 netbsd-1-6-PATCH001-RC1:1.19 nathanw_sa_before_merge:1.20 nathanw_sa_end:1.19.2.1 fvdl_fs64_base:1.19 nathanw_sa_base:1.20 netbsd-1-6-RELEASE:1.19 netbsd-1-6-RC3:1.19 netbsd-1-6-RC2:1.19 netbsd-1-6-RC1:1.19 netbsd-1-6:1.19.0.4 netbsd-1-6-base:1.19 netbsd-1-5-PATCH003:1.18 netbsd-1-5-PATCH002:1.18 netbsd-1-5-PATCH001:1.18 nathanw_sa:1.19.0.2 netbsd-1-5-RELEASE:1.18 netbsd-1-5-BETA2:1.18 netbsd-1-5-BETA:1.18 netbsd-1-4-PATCH003:1.17 netbsd-1-5-ALPHA2:1.18 netbsd-1-5:1.18.0.8 netbsd-1-5-base:1.18 minoura-xpg4dl:1.18.0.6 minoura-xpg4dl-base:1.18 netbsd-1-4-PATCH002:1.17 wrstuden-devbsize-19991221:1.18 wrstuden-devbsize:1.18.0.4 wrstuden-devbsize-base:1.18 comdex-fall-1999:1.18.0.2 comdex-fall-1999-base:1.18 netbsd-1-4-PATCH001:1.17 netbsd-1-4-RELEASE:1.17 netbsd-1-4:1.17.0.2 netbsd-1-4-base:1.17 netbsd-1-3-PATCH003:1.11 netbsd-1-3-PATCH003-CANDIDATE2:1.11 netbsd-1-3-PATCH003-CANDIDATE1:1.11 netbsd-1-3-PATCH003-CANDIDATE0:1.11 netbsd-1-3-PATCH002:1.11 netbsd-1-3-PATCH001:1.11 lite-2:1.1.1.3 CSRG:1.1.1 netbsd-1-3-RELEASE:1.11 netbsd-1-3-BETA:1.11 netbsd-1-3:1.11.0.2 netbsd-1-3-base:1.11 lukem-nsswitch2:1.10.0.2 v4_9_5_P1:1.1.1.2 ISC:1.1.1 netbsd-1-2-PATCH001:1.9 nsswitch:1.9.0.2 netbsd-1-2-RELEASE:1.9 netbsd-1-2-BETA:1.9 netbsd-1-2-base:1.9 netbsd-1-2:1.9.0.4 netbsd-1-1-PATCH001:1.8 netbsd-1-1-RELEASE:1.8 netbsd-1-1:1.8.0.2 netbsd-1-1-base:1.8 netbsd-1-0-PATCH06:1.5 netbsd-1-0-PATCH05:1.5 netbsd-1-0-PATCH04:1.5 netbsd-1-0-PATCH03:1.5 netbsd-1-0-PATCH02:1.5 netbsd-1-0-PATCH1:1.5 netbsd-1-0-PATCH0:1.5 netbsd-1-0-RELEASE:1.5 netbsd-1-0:1.5.0.2 netbsd-1-0-base:1.5 netbsd-0-9-RELEASE:1.1.1.1 netbsd-0-9-BETA:1.1.1.1 netbsd-0-9-ALPHA2:1.1.1.1 netbsd-0-9-ALPHA:1.1.1.1 netbsd-0-9:1.1.1.1.0.2 netbsd-0-9-base:1.1.1.1 netbsd-0-8:1.1.1.1 netbsd-alpha-1:1.1.1.1 patchkit-0-2-2:1.1.1.1 WFJ-386bsd-01:1.1.1.1 WFJ-920714:1.1.1; locks; strict; comment @ * @; 1.42 date 2021.09.03.21.54.58; author andvar; state Exp; branches; next 1.41; commitid whDtCae9KGwmCy7D; 1.41 date 2021.04.30.16.07.49; author christos; state Exp; branches; next 1.40; commitid xyzBB54FFG74LkRC; 1.40 date 2012.11.07.15.45.24; author christos; state Exp; branches; next 1.39; 1.39 date 2012.09.09.18.03.17; author christos; state Exp; branches 1.39.2.1; next 1.38; 1.38 date 2009.10.24.17.23.34; author christos; state Exp; branches 1.38.8.1 1.38.10.1 1.38.14.1; next 1.37; 1.37 date 2009.04.20.14.42.12; author christos; state Exp; branches; next 1.36; 1.36 date 2009.04.12.17.07.33; author christos; state Exp; branches; next 1.35; 1.35 date 2008.06.21.20.24.40; author christos; state Exp; branches 1.35.4.1 1.35.6.1 1.35.8.1 1.35.10.1 1.35.14.1; next 1.34; 1.34 date 2008.06.21.20.12.49; author christos; state Exp; branches; next 1.33; 1.33 date 2007.03.30.19.57.18; author ghen; state Exp; branches 1.33.12.1 1.33.14.1; next 1.32; 1.32 date 2007.01.27.21.25.23; author christos; state Exp; branches; next 1.31; 1.31 date 2005.12.26.19.01.47; author perry; state Exp; branches 1.31.4.1 1.31.6.1; next 1.30; 1.30 date 2005.02.03.04.39.32; author perry; state Exp; branches; next 1.29; 1.29 date 2004.11.07.01.48.01; author christos; state Exp; branches; next 1.28; 1.28 date 2004.06.09.18.04.05; author christos; state Exp; branches; next 1.27; 1.27 date 2004.06.04.09.54.03; author he; state Exp; branches; next 1.26; 1.26 date 2004.05.26.01.08.50; author christos; state Exp; branches; next 1.25; 1.25 date 2004.05.22.23.46.16; author christos; state Exp; branches; next 1.24; 1.24 date 2004.05.22.15.42.17; author christos; state Exp; branches; next 1.23; 1.23 date 2004.05.21.02.26.20; author christos; state Exp; branches; next 1.22; 1.22 date 2003.08.07.09.44.11; author agc; state Exp; branches; next 1.21; 1.21 date 2003.07.09.01.59.34; author kristerw; state Exp; branches; next 1.20; 1.20 date 2003.01.06.13.17.01; author wiz; state Exp; branches; next 1.19; 1.19 date 2000.08.09.14.40.52; author itojun; state Exp; branches 1.19.2.1; next 1.18; 1.18 date 99.07.01.18.15.41; author itojun; state Exp; branches; next 1.17; 1.17 date 99.01.17.05.08.10; author lukem; state Exp; branches; next 1.16; 1.16 date 99.01.16.07.52.22; author lukem; state Exp; branches; next 1.15; 1.15 date 98.07.27.09.09.26; author mycroft; state Exp; branches; next 1.14; 1.14 date 98.07.26.12.29.33; author mycroft; state Exp; branches; next 1.13; 1.13 date 98.02.03.04.21.46; author perry; state Exp; branches; next 1.12; 1.12 date 98.02.02.21.07.45; author perry; state Exp; branches; next 1.11; 1.11 date 97.10.13.09.26.07; author lukem; state Exp; branches; next 1.10; 1.10 date 97.04.13.09.26.22; author mrg; state Exp; branches 1.10.2.1; next 1.9; 1.9 date 96.02.02.15.29.07; author mrg; state Exp; branches 1.9.2.1; next 1.8; 1.8 date 94.10.26.00.56.16; author cgd; state Exp; branches; next 1.7; 1.7 date 94.10.19.03.46.42; author cgd; state Exp; branches; next 1.6; 1.6 date 94.10.15.07.56.51; author deraadt; state Exp; branches; next 1.5; 1.5 date 94.06.13.01.16.13; author jtc; state Exp; branches; next 1.4; 1.4 date 94.04.07.06.58.30; author deraadt; state Exp; branches; next 1.3; 1.3 date 94.01.28.03.00.25; author deraadt; state Exp; branches; next 1.2; 1.2 date 93.08.01.18.45.24; author mycroft; state Exp; branches; next 1.1; 1.1 date 93.03.21.09.45.37; author cgd; state Exp; branches 1.1.1.1; next ; 1.39.2.1 date 2012.11.20.03.00.39; author tls; state Exp; branches; next ; 1.38.8.1 date 2012.10.30.18.58.33; author yamt; state Exp; branches; next 1.38.8.2; 1.38.8.2 date 2013.01.16.05.32.22; author yamt; state Exp; branches; next ; 1.38.10.1 date 2012.11.28.21.41.01; author riz; state Exp; branches; next ; 1.38.14.1 date 2017.08.17.09.38.37; author martin; state Exp; branches; next ; commitid RhrbveFRKep04y3A; 1.35.4.1 date 2011.01.06.21.42.46; author riz; state Exp; branches; next ; 1.35.6.1 date 2008.06.21.20.24.40; author christos; state dead; branches; next 1.35.6.2; 1.35.6.2 date 2008.06.21.20.24.41; author christos; state Exp; branches; next ; 1.35.8.1 date 2009.05.13.19.18.19; author jym; state Exp; branches; next ; 1.35.10.1 date 2011.01.10.00.42.16; author riz; state Exp; branches; next ; 1.35.14.1 date 2011.01.09.20.43.27; author riz; state Exp; branches; next ; 1.33.12.1 date 2008.06.23.04.29.29; author wrstuden; state Exp; branches; next ; 1.33.14.1 date 2008.06.27.13.47.37; author simonb; state Exp; branches; next ; 1.31.4.1 date 2007.05.17.21.25.10; author jdc; state Exp; branches 1.31.4.1.2.1; next 1.31.4.2; 1.31.4.2 date 2011.01.23.21.47.49; author bouyer; state Exp; branches; next ; 1.31.4.1.2.1 date 2011.01.23.21.52.32; author bouyer; state Exp; branches; next ; 1.31.6.1 date 2007.06.03.17.25.51; author wrstuden; state Exp; branches; next ; 1.19.2.1 date 2003.01.08.20.53.38; author thorpej; state Exp; branches; next ; 1.10.2.1 date 97.05.23.19.58.29; author lukem; state Exp; branches; next 1.10.2.2; 1.10.2.2 date 98.10.31.12.36.36; author lukem; state Exp; branches; next ; 1.9.2.1 date 96.11.06.00.14.13; author lukem; state Exp; branches; next ; 1.1.1.1 date 93.03.21.09.45.37; author cgd; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 97.04.13.09.14.28; author mrg; state Exp; branches; next 1.1.1.3; 1.1.1.3 date 98.02.02.07.23.24; author perry; state Exp; branches; next 1.1.1.4; 1.1.1.4 date 2004.05.21.02.17.49; author christos; state Exp; branches; next 1.1.1.5; 1.1.1.5 date 2004.11.07.01.28.26; author christos; state Exp; branches; next 1.1.1.6; 1.1.1.6 date 2007.01.27.19.49.26; author christos; state Exp; branches; next 1.1.1.7; 1.1.1.7 date 2007.03.30.19.48.21; author ghen; state Exp; branches; next 1.1.1.8; 1.1.1.8 date 2009.04.12.16.06.26; author christos; state Exp; branches; next ; desc @@ 1.42 log @fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/ @ text @/* $NetBSD: resolv.h,v 1.41 2021/04/30 16:07:49 christos Exp $ */ /* * Portions Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1995-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ /* * Copyright (c) 1983, 1987, 1989 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /*% * @@(#)resolv.h 8.1 (Berkeley) 6/2/93 * Id: resolv.h,v 1.30 2009/03/03 01:52:48 each Exp */ #ifndef _RESOLV_H_ #define _RESOLV_H_ #include #if (!defined(BSD)) || (BSD < 199306) # include #else #include #endif #include #include #include #include #include /*% * Revision information. This is the release date in YYYYMMDD format. * It can change every day so the right thing to do with it is use it * in preprocessor commands such as "#if (__RES > 19931104)". Do not * compare for equality; rather, use it to determine whether your resolver * is new enough to contain a certain feature. */ #define __RES 20090302 /*% * This used to be defined in res_query.c, now it's in herror.c. * [XXX no it's not. It's in irs/irs_data.c] * It was * never extern'd by any *.h file before it was placed here. For thread * aware programs, the last h_errno value set is stored in res->h_errno. * * XXX: There doesn't seem to be a good reason for exposing RES_SET_H_ERRNO * (and __h_errno_set) to the public via . * XXX: __h_errno_set is really part of IRS, not part of the resolver. * If somebody wants to build and use a resolver that doesn't use IRS, * what do they do? Perhaps something like * #ifdef WANT_IRS * # define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x) * #else * # define RES_SET_H_ERRNO(r,x) (h_errno = (r)->res_h_errno = (x)) * #endif */ #define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x) struct __res_state; /*%< forward */ __BEGIN_DECLS void __h_errno_set(struct __res_state *, int); __END_DECLS /*% * Resolver configuration file. * Normally not present, but may contain the address of the * initial name server(s) to query and the domain search list. */ #ifndef _PATH_RESCONF #define _PATH_RESCONF "/etc/resolv.conf" #endif typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } res_sendhookact; typedef res_sendhookact (*res_send_qhook)(struct sockaddr * const *, const u_char **, int *, u_char *, int, int *); typedef res_sendhookact (*res_send_rhook)(const struct sockaddr *, const u_char *, int, u_char *, int, int *); struct res_sym { int number; /*%< Identifying number, like T_MX */ const char * name; /*%< Its symbolic name, like "MX" */ const char * humanname; /*%< Its fun name, like "mail exchanger" */ }; /*% * Global defines and variables for resolver stub. */ #define MAXNS 3 /*%< max # name servers we'll track */ #define MAXDFLSRCH 3 /*%< # default domain levels to try */ #define MAXDNSRCH 6 /*%< max # domains in search path */ #define LOCALDOMAINPARTS 2 /*%< min levels in name that is "local" */ #define RES_TIMEOUT 5 /*%< min. seconds between retries */ #define MAXRESOLVSORT 10 /*%< number of net to sort on */ #define RES_MAXNDOTS 15 /*%< should reflect bit field size */ #define RES_MAXRETRANS 30 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_MAXRETRY 5 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_DFLRETRY 2 /*%< Default #/tries. */ #define RES_MAXTIME 65535 /*%< Infinity, in milliseconds. */ struct __res_state_ext; struct __res_state { int retrans; /*%< retransmission time interval */ int retry; /*%< number of times to retransmit */ #ifdef sun u_int options; /*%< option flags - see below. */ #else u_long options; /*%< option flags - see below. */ #endif int nscount; /*%< number of name servers */ struct sockaddr_in nsaddr_list[MAXNS]; /*%< address of name server */ #define nsaddr nsaddr_list[0] /*%< for backward compatibility */ u_short id; /*%< current message id */ char *dnsrch[MAXDNSRCH+1]; /*%< components of domain to search */ char defdname[256]; /*%< default domain (deprecated) */ #ifdef sun u_int pfcode; /*%< RES_PRF_ flags - see below. */ #else u_long pfcode; /*%< RES_PRF_ flags - see below. */ #endif unsigned ndots:4; /*%< threshold for initial abs. query */ unsigned nsort:4; /*%< number of elements in sort_list[] */ char unused[3]; struct { struct in_addr addr; uint32_t mask; } sort_list[MAXRESOLVSORT]; #ifdef __OLD_RES_STATE char lookups[4]; #else res_send_qhook qhook; /*%< query hook */ res_send_rhook rhook; /*%< response hook */ int res_h_errno; /*%< last one set for this context */ int _vcsock; /*%< PRIVATE: for res_send VC i/o */ u_int _flags; /*%< PRIVATE: see below */ u_int _pad; /*%< make _u 64 bit aligned */ union { /* On an 32-bit arch this means 512b total. */ char pad[56 - 4*sizeof (int) - 3*sizeof (void *)]; struct { uint16_t nscount; uint16_t nstimes[MAXNS]; /*%< ms. */ int nssocks[MAXNS]; struct __res_state_ext *ext; /*%< extension for IPv6 */ } _ext; } _u; u_char *_rnd; /*%< PRIVATE: random state */ #endif }; typedef struct __res_state *res_state; union res_sockaddr_union { struct sockaddr_in sin; #ifdef IN6ADDR_ANY_INIT struct sockaddr_in6 sin6; #endif #ifdef ISC_ALIGN64 int64_t __align64; /*%< 64bit alignment */ #else int32_t __align32; /*%< 32bit alignment */ #endif char __space[128]; /* max size */ }; /*% * Resolver flags (used to be discrete per-module statics ints). */ #define RES_F_VC 0x00000001 /*%< socket is TCP */ #define RES_F_CONN 0x00000002 /*%< socket is connected */ #define RES_F_EDNS0ERR 0x00000004 /*%< EDNS0 caused errors */ #define RES_F__UNUSED 0x00000008 /*%< (unused) */ #define RES_F_LASTMASK 0x000000F0 /*%< ordinal server of last res_nsend */ #define RES_F_LASTSHIFT 4 /*%< bit position of LASTMASK "flag" */ #define RES_GETLAST(res) (((res)._flags & RES_F_LASTMASK) >> RES_F_LASTSHIFT) /* res_findzonecut2() options */ #define RES_EXHAUSTIVE 0x00000001 /*%< always do all queries */ #define RES_IPV4ONLY 0x00000002 /*%< IPv4 only */ #define RES_IPV6ONLY 0x00000004 /*%< IPv6 only */ /*% * Resolver options (keep these in synch with res_debug.c, please) */ #define RES_INIT 0x00000001 /*%< address initialized */ #define RES_DEBUG 0x00000002 /*%< print debug messages */ #define RES_AAONLY 0x00000004 /*%< authoritative answers only (!IMPL)*/ #define RES_USEVC 0x00000008 /*%< use virtual circuit */ #define RES_PRIMARY 0x00000010 /*%< query primary server only (!IMPL) */ #define RES_IGNTC 0x00000020 /*%< ignore trucation errors */ #define RES_RECURSE 0x00000040 /*%< recursion desired */ #define RES_DEFNAMES 0x00000080 /*%< use default domain name */ #define RES_STAYOPEN 0x00000100 /*%< Keep TCP socket open */ #define RES_DNSRCH 0x00000200 /*%< search up local domain tree */ #define RES_INSECURE1 0x00000400 /*%< type 1 security disabled */ #define RES_INSECURE2 0x00000800 /*%< type 2 security disabled */ #define RES_NOALIASES 0x00001000 /*%< shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /*%< use/map IPv6 in gethostbyname() */ #define RES_ROTATE 0x00004000 /*%< rotate ns list after each query */ #define RES_NOCHECKNAME 0x00008000 /*%< do not check names for sanity. */ #define RES_KEEPTSIG 0x00010000 /*%< do not strip TSIG records */ #define RES_BLAST 0x00020000 /*%< blast all recursive servers */ #define RES_NSID 0x00040000 /*%< request name server ID */ #define RES_NOTLDQUERY 0x00100000 /*%< don't unqualified name as a tld */ #define RES_USE_DNSSEC 0x00200000 /*%< use DNSSEC using OK bit in OPT */ /* #define RES_DEBUG2 0x00400000 */ /* nslookup internal */ /* KAME extensions: use higher bit to avoid conflict with ISC use */ #define RES_USE_DNAME 0x10000000 /*%< use DNAME */ #define RES_USE_EDNS0 0x40000000 /*%< use EDNS0 if configured */ #define RES_NO_NIBBLE2 0x80000000 /*%< disable alternate nibble lookup */ #define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | \ RES_DNSRCH | RES_NO_NIBBLE2) /*% * Resolver "pfcode" values. Used by dig. */ #define RES_PRF_STATS 0x00000001 #define RES_PRF_UPDATE 0x00000002 #define RES_PRF_CLASS 0x00000004 #define RES_PRF_CMD 0x00000008 #define RES_PRF_QUES 0x00000010 #define RES_PRF_ANS 0x00000020 #define RES_PRF_AUTH 0x00000040 #define RES_PRF_ADD 0x00000080 #define RES_PRF_HEAD1 0x00000100 #define RES_PRF_HEAD2 0x00000200 #define RES_PRF_TTLID 0x00000400 #define RES_PRF_HEADX 0x00000800 #define RES_PRF_QUERY 0x00001000 #define RES_PRF_REPLY 0x00002000 #define RES_PRF_INIT 0x00004000 #define RES_PRF_TRUNC 0x00008000 /* 0x00010000 */ /* Things involving an internal (static) resolver context. */ __BEGIN_DECLS extern struct __res_state *__res_get_state(void); extern void __res_put_state(struct __res_state *); /* * Source and Binary compatibility; _res will not work properly * with multi-threaded programs. */ extern struct __res_state *__res_state(void); #define _res (*__res_state()) __END_DECLS #ifndef __BIND_NOSTATIC #define fp_nquery __fp_nquery #define fp_query __fp_query #define hostalias __hostalias #define p_query __p_query #define res_close __res_close #define res_isourserver __res_isourserver #define res_opt __res_opt #define res_querydomain __res_querydomain #define res_send __res_send #define res_sendsigned __res_sendsigned #ifdef notdef /* NetBSD protects these via weak symbols. */ #define res_init __res_init #define res_query __res_query #define res_mkquery __res_mkquery #define dn_expand __dn_expand #define res_search __res_search #endif __BEGIN_DECLS void fp_nquery(const u_char *, int, FILE *); void fp_query(const u_char *, FILE *); const char * hostalias(const char *); void p_query(const u_char *); void res_close(void); int res_init(void); int res_opt(int, u_char *, int, int); int res_isourserver(const struct sockaddr_in *); int res_mkquery(int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int); int res_query(const char *, int, int, u_char *, int); int res_querydomain(const char *, const char *, int, int, u_char *, int); int res_search(const char *, int, int, u_char *, int); int res_send(const u_char *, int, u_char *, int); int res_sendsigned(const u_char *, int, ns_tsig_key *, u_char *, int); __END_DECLS #endif #if !defined(SHARED_LIBBIND) || defined(LIB) /* * If libbind is a shared object (well, DLL anyway) * these externs break the linker when resolv.h is * included by a lib client (like named) * Make them go away if a client is including this * */ extern const struct res_sym __p_key_syms[]; extern const struct res_sym __p_cert_syms[]; extern const struct res_sym __p_class_syms[]; extern const struct res_sym __p_type_syms[]; extern const struct res_sym __p_rcode_syms[]; #endif /* SHARED_LIBBIND */ #define b64_ntop __b64_ntop #define b64_pton __b64_pton #define dn_comp __dn_comp #define dn_count_labels __dn_count_labels #define dn_skipname __dn_skipname #define fp_resstat __fp_resstat #define loc_aton __loc_aton #define loc_ntoa __loc_ntoa #define p_cdname __p_cdname #define p_cdnname __p_cdnname #define p_class __p_class #define p_fqname __p_fqname #define p_fqnname __p_fqnname #define p_option __p_option #define p_secstodate __p_secstodate #define p_section __p_section #define p_time __p_time #define p_type __p_type #define p_rcode __p_rcode #define p_sockun __p_sockun #define putlong __putlong #define putshort __putshort #define res_check __res_check #define res_dnok __res_dnok #define res_findzonecut __res_findzonecut #define res_findzonecut2 __res_findzonecut2 #define res_hnok __res_hnok #define res_hostalias __res_hostalias #define res_mailok __res_mailok #define res_nameinquery __res_nameinquery #define res_nclose __res_nclose #define res_ninit __res_ninit #define res_nmkquery __res_nmkquery #define res_pquery __res_pquery #define res_nquery __res_nquery #define res_nquerydomain __res_nquerydomain #define res_nsearch __res_nsearch #define res_nsend __res_nsend #define res_nsendsigned __res_nsendsigned #define res_nisourserver __res_nisourserver #define res_ownok __res_ownok #define res_queriesmatch __res_queriesmatch #define res_rndinit __res_rndinit #define res_randomid __res_randomid #define res_nrandomid __res_nrandomid #define sym_ntop __sym_ntop #define sym_ntos __sym_ntos #define sym_ston __sym_ston #define res_nopt __res_nopt #define res_nopt_rdata __res_nopt_rdata #define res_ndestroy __res_ndestroy #define res_nametoclass __res_nametoclass #define res_nametotype __res_nametotype #define res_setservers __res_setservers #define res_getservers __res_getservers #define res_buildprotolist __res_buildprotolist #define res_destroyprotolist __res_destroyprotolist #define res_destroyservicelist __res_destroyservicelist #define res_get_nibblesuffix __res_get_nibblesuffix #define res_get_nibblesuffix2 __res_get_nibblesuffix2 #define res_ourserver_p __res_ourserver_p #define res_protocolname __res_protocolname #define res_protocolnumber __res_protocolnumber #define res_send_setqhook __res_send_setqhook #define res_send_setrhook __res_send_setrhook #define res_servicename __res_servicename #define res_servicenumber __res_servicenumber __BEGIN_DECLS int res_hnok(const char *); int res_ownok(const char *); int res_mailok(const char *); struct timespec; int res_check(res_state, struct timespec *); int res_dnok(const char *); int sym_ston(const struct res_sym *, const char *, int *); const char * sym_ntos(const struct res_sym *, int, int *); const char * sym_ntop(const struct res_sym *, int, int *); int b64_ntop(u_char const *, size_t, char *, size_t); int b64_pton(char const *, u_char *, size_t); int loc_aton(const char *, u_char *); const char * loc_ntoa(const u_char *, char *); int dn_skipname(const u_char *, const u_char *); void putlong(uint32_t, u_char *); void putshort(uint16_t, u_char *); #ifndef __ultrix__ uint16_t _getshort(const u_char *); uint32_t _getlong(const u_char *); #endif const char * p_class(int); const char * p_time(uint32_t); const char * p_type(int); const char * p_rcode(int); const char * p_sockun(union res_sockaddr_union, char *, size_t); const u_char * p_cdnname(const u_char *, const u_char *, int, FILE *); const u_char * p_cdname(const u_char *, const u_char *, FILE *); const u_char * p_fqnname(const u_char *, const u_char *, int, char *, int); const u_char * p_fqname(const u_char *, const u_char *, FILE *); const char * p_option(u_long); char * p_secstodate(u_long); int dn_count_labels(const char *); int dn_comp(const char *, u_char *, int, u_char **, u_char **); int dn_expand(const u_char *, const u_char *, const u_char *, char *, int); void res_rndinit(res_state); u_int res_randomid(void); u_int res_nrandomid(res_state); int res_nameinquery(const char *, int, int, const u_char *, const u_char *); int res_queriesmatch(const u_char *, const u_char *, const u_char *, const u_char *); const char * p_section(int, int); /* Things involving a resolver context. */ int res_ninit(res_state); int res_nisourserver(const res_state, const struct sockaddr_in *); void fp_resstat(const res_state, FILE *); void res_pquery(const res_state, const u_char *, int, FILE *); const char * res_hostalias(const res_state, const char *, char *, size_t); int res_nquery(res_state, const char *, int, int, u_char *, int); int res_nsearch(res_state, const char *, int, int, u_char *, int); int res_nquerydomain(res_state, const char *, const char *, int, int, u_char *, int); int res_nmkquery(res_state, int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int); int res_nsend(res_state, const u_char *, int, u_char *, int); int res_nsendsigned(res_state, const u_char *, int, ns_tsig_key *, u_char *, int); int res_findzonecut(res_state, const char *, ns_class, int, char *, size_t, struct in_addr *, int); int res_findzonecut2(res_state, const char *, ns_class, int, char *, size_t, union res_sockaddr_union *, int); void res_nclose(res_state); int res_nopt(res_state, int, u_char *, int, int); int res_nopt_rdata(res_state, int, u_char *, int, u_char *, u_short, u_short, u_char *); void res_send_setqhook(res_send_qhook); void res_send_setrhook(res_send_rhook); int __res_vinit(res_state, int); void res_destroyservicelist(void); const char * res_servicename(uint16_t, const char *); const char * res_protocolname(int); void res_destroyprotolist(void); void res_buildprotolist(void); const char * res_get_nibblesuffix(res_state); const char * res_get_nibblesuffix2(res_state); void res_ndestroy(res_state); uint16_t res_nametoclass(const char *, int *); uint16_t res_nametotype(const char *, int *); void res_setservers(res_state, const union res_sockaddr_union *, int); int res_getservers(res_state, union res_sockaddr_union *, int); __END_DECLS #endif /* !_RESOLV_H_ */ @ 1.41 log @Default to check-names for safety. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.40 2012/11/07 15:45:24 christos Exp $ */ d191 1 a191 1 struct __res_state_ext *ext; /*%< extention for IPv6 */ @ 1.40 log @add because it is needed for sockaddr_in. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.39 2012/09/09 18:03:17 christos Exp $ */ d260 1 a260 1 RES_DNSRCH | RES_NO_NIBBLE2 | RES_NOCHECKNAME) @ 1.39 log @make the default to not check names. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.38 2009/10/24 17:23:34 christos Exp $ */ d66 1 @ 1.39.2.1 log @Resync to 2012-11-19 00:00:00 UTC @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.40 2012/11/07 15:45:24 christos Exp $ */ a65 1 #include @ 1.38 log @expose res_check for the benefit of mDNS. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.37 2009/04/20 14:42:12 christos Exp $ */ d259 1 a259 1 RES_DNSRCH | RES_NO_NIBBLE2) @ 1.38.14.1 log @Pull up following revision(s) (requested by mrg in ticket #721): include/resolv.h: revision 1.40 sys/netinet/ip.h: revision 1.33-1.34 fix typo make this standalone, like every others (except OpenBSD) add because it is needed for sockaddr_in. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.38 2009/10/24 17:23:34 christos Exp $ */ a65 1 #include @ 1.38.10.1 log @Pull up following revision(s) (requested by christos in ticket #721): include/resolv.h: revision 1.40 sys/netinet/ip.h: revision 1.33 sys/netinet/ip.h: revision 1.34 fix typo make this standalone, like every others (except OpenBSD) add because it is needed for sockaddr_in. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.38 2009/10/24 17:23:34 christos Exp $ */ a65 1 #include @ 1.38.8.1 log @sync with head @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.38 2009/10/24 17:23:34 christos Exp $ */ d259 1 a259 1 RES_DNSRCH | RES_NO_NIBBLE2 | RES_NOCHECKNAME) @ 1.38.8.2 log @sync with (a bit old) head @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.38.8.1 2012/10/30 18:58:33 yamt Exp $ */ a65 1 #include @ 1.37 log @Bring back binary compatibility with the previous version of the resolver. There was no room to allocate 16 bytes for _rnd in the struct in the _LP64 case, so we dynamically allocate now. Also put the _rnd field last, so that we are bitwise compatible too. Now of course we've run out of space, so next time will need to perform more evil tricks to fit. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.36 2009/04/12 17:07:33 christos Exp $ */ d375 1 d424 2 @ 1.36 log @merge libbind @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.1.1.8 2009/04/12 16:06:26 christos Exp $ */ a181 1 u_char _rnd[16]; /*%< PRIVATE: random state */ d185 1 a185 1 char pad[56 - 4*sizeof (int) - 2*sizeof (void *)]; d193 1 @ 1.35 log @restore correct symbol protection and add a comment so that I don't break this again. @ text @d1 18 a18 1 /* $NetBSD: resolv.h,v 1.34 2008/06/21 20:12:49 christos Exp $ */ d23 1 a23 1 * d35 1 a35 1 * a48 17 /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (c) 1996-1999 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ d51 1 a51 1 * Id: resolv.h,v 1.23.564.1 2008/04/03 02:12:21 marka Exp d76 1 a76 1 #define __RES 20030124 d182 1 d186 1 a186 1 char pad[72 - 4*sizeof (int) - 2*sizeof (void *)]; d341 1 a341 1 * these externs break the linker when resolv.h is d394 1 d396 1 d454 1 d456 1 @ 1.35.6.1 log @file resolv.h was added on branch christos-time_t on 2008-06-21 20:24:41 +0000 @ text @d1 501 @ 1.35.6.2 log @restore correct symbol protection and add a comment so that I don't break this again. @ text @a0 501 /* $NetBSD: resolv.h,v 1.35 2008/06/21 20:24:40 christos Exp $ */ /* * Copyright (c) 1983, 1987, 1989 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (c) 1996-1999 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /*% * @@(#)resolv.h 8.1 (Berkeley) 6/2/93 * Id: resolv.h,v 1.23.564.1 2008/04/03 02:12:21 marka Exp */ #ifndef _RESOLV_H_ #define _RESOLV_H_ #include #if (!defined(BSD)) || (BSD < 199306) # include #else #include #endif #include #include #include #include /*% * Revision information. This is the release date in YYYYMMDD format. * It can change every day so the right thing to do with it is use it * in preprocessor commands such as "#if (__RES > 19931104)". Do not * compare for equality; rather, use it to determine whether your resolver * is new enough to contain a certain feature. */ #define __RES 20030124 /*% * This used to be defined in res_query.c, now it's in herror.c. * [XXX no it's not. It's in irs/irs_data.c] * It was * never extern'd by any *.h file before it was placed here. For thread * aware programs, the last h_errno value set is stored in res->h_errno. * * XXX: There doesn't seem to be a good reason for exposing RES_SET_H_ERRNO * (and __h_errno_set) to the public via . * XXX: __h_errno_set is really part of IRS, not part of the resolver. * If somebody wants to build and use a resolver that doesn't use IRS, * what do they do? Perhaps something like * #ifdef WANT_IRS * # define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x) * #else * # define RES_SET_H_ERRNO(r,x) (h_errno = (r)->res_h_errno = (x)) * #endif */ #define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x) struct __res_state; /*%< forward */ __BEGIN_DECLS void __h_errno_set(struct __res_state *, int); __END_DECLS /*% * Resolver configuration file. * Normally not present, but may contain the address of the * initial name server(s) to query and the domain search list. */ #ifndef _PATH_RESCONF #define _PATH_RESCONF "/etc/resolv.conf" #endif typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } res_sendhookact; typedef res_sendhookact (*res_send_qhook)(struct sockaddr * const *, const u_char **, int *, u_char *, int, int *); typedef res_sendhookact (*res_send_rhook)(const struct sockaddr *, const u_char *, int, u_char *, int, int *); struct res_sym { int number; /*%< Identifying number, like T_MX */ const char * name; /*%< Its symbolic name, like "MX" */ const char * humanname; /*%< Its fun name, like "mail exchanger" */ }; /*% * Global defines and variables for resolver stub. */ #define MAXNS 3 /*%< max # name servers we'll track */ #define MAXDFLSRCH 3 /*%< # default domain levels to try */ #define MAXDNSRCH 6 /*%< max # domains in search path */ #define LOCALDOMAINPARTS 2 /*%< min levels in name that is "local" */ #define RES_TIMEOUT 5 /*%< min. seconds between retries */ #define MAXRESOLVSORT 10 /*%< number of net to sort on */ #define RES_MAXNDOTS 15 /*%< should reflect bit field size */ #define RES_MAXRETRANS 30 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_MAXRETRY 5 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_DFLRETRY 2 /*%< Default #/tries. */ #define RES_MAXTIME 65535 /*%< Infinity, in milliseconds. */ struct __res_state_ext; struct __res_state { int retrans; /*%< retransmission time interval */ int retry; /*%< number of times to retransmit */ #ifdef sun u_int options; /*%< option flags - see below. */ #else u_long options; /*%< option flags - see below. */ #endif int nscount; /*%< number of name servers */ struct sockaddr_in nsaddr_list[MAXNS]; /*%< address of name server */ #define nsaddr nsaddr_list[0] /*%< for backward compatibility */ u_short id; /*%< current message id */ char *dnsrch[MAXDNSRCH+1]; /*%< components of domain to search */ char defdname[256]; /*%< default domain (deprecated) */ #ifdef sun u_int pfcode; /*%< RES_PRF_ flags - see below. */ #else u_long pfcode; /*%< RES_PRF_ flags - see below. */ #endif unsigned ndots:4; /*%< threshold for initial abs. query */ unsigned nsort:4; /*%< number of elements in sort_list[] */ char unused[3]; struct { struct in_addr addr; uint32_t mask; } sort_list[MAXRESOLVSORT]; #ifdef __OLD_RES_STATE char lookups[4]; #else res_send_qhook qhook; /*%< query hook */ res_send_rhook rhook; /*%< response hook */ int res_h_errno; /*%< last one set for this context */ int _vcsock; /*%< PRIVATE: for res_send VC i/o */ u_int _flags; /*%< PRIVATE: see below */ u_int _pad; /*%< make _u 64 bit aligned */ union { /* On an 32-bit arch this means 512b total. */ char pad[72 - 4*sizeof (int) - 2*sizeof (void *)]; struct { uint16_t nscount; uint16_t nstimes[MAXNS]; /*%< ms. */ int nssocks[MAXNS]; struct __res_state_ext *ext; /*%< extention for IPv6 */ } _ext; } _u; #endif }; typedef struct __res_state *res_state; union res_sockaddr_union { struct sockaddr_in sin; #ifdef IN6ADDR_ANY_INIT struct sockaddr_in6 sin6; #endif #ifdef ISC_ALIGN64 int64_t __align64; /*%< 64bit alignment */ #else int32_t __align32; /*%< 32bit alignment */ #endif char __space[128]; /* max size */ }; /*% * Resolver flags (used to be discrete per-module statics ints). */ #define RES_F_VC 0x00000001 /*%< socket is TCP */ #define RES_F_CONN 0x00000002 /*%< socket is connected */ #define RES_F_EDNS0ERR 0x00000004 /*%< EDNS0 caused errors */ #define RES_F__UNUSED 0x00000008 /*%< (unused) */ #define RES_F_LASTMASK 0x000000F0 /*%< ordinal server of last res_nsend */ #define RES_F_LASTSHIFT 4 /*%< bit position of LASTMASK "flag" */ #define RES_GETLAST(res) (((res)._flags & RES_F_LASTMASK) >> RES_F_LASTSHIFT) /* res_findzonecut2() options */ #define RES_EXHAUSTIVE 0x00000001 /*%< always do all queries */ #define RES_IPV4ONLY 0x00000002 /*%< IPv4 only */ #define RES_IPV6ONLY 0x00000004 /*%< IPv6 only */ /*% * Resolver options (keep these in synch with res_debug.c, please) */ #define RES_INIT 0x00000001 /*%< address initialized */ #define RES_DEBUG 0x00000002 /*%< print debug messages */ #define RES_AAONLY 0x00000004 /*%< authoritative answers only (!IMPL)*/ #define RES_USEVC 0x00000008 /*%< use virtual circuit */ #define RES_PRIMARY 0x00000010 /*%< query primary server only (!IMPL) */ #define RES_IGNTC 0x00000020 /*%< ignore trucation errors */ #define RES_RECURSE 0x00000040 /*%< recursion desired */ #define RES_DEFNAMES 0x00000080 /*%< use default domain name */ #define RES_STAYOPEN 0x00000100 /*%< Keep TCP socket open */ #define RES_DNSRCH 0x00000200 /*%< search up local domain tree */ #define RES_INSECURE1 0x00000400 /*%< type 1 security disabled */ #define RES_INSECURE2 0x00000800 /*%< type 2 security disabled */ #define RES_NOALIASES 0x00001000 /*%< shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /*%< use/map IPv6 in gethostbyname() */ #define RES_ROTATE 0x00004000 /*%< rotate ns list after each query */ #define RES_NOCHECKNAME 0x00008000 /*%< do not check names for sanity. */ #define RES_KEEPTSIG 0x00010000 /*%< do not strip TSIG records */ #define RES_BLAST 0x00020000 /*%< blast all recursive servers */ #define RES_NSID 0x00040000 /*%< request name server ID */ #define RES_NOTLDQUERY 0x00100000 /*%< don't unqualified name as a tld */ #define RES_USE_DNSSEC 0x00200000 /*%< use DNSSEC using OK bit in OPT */ /* #define RES_DEBUG2 0x00400000 */ /* nslookup internal */ /* KAME extensions: use higher bit to avoid conflict with ISC use */ #define RES_USE_DNAME 0x10000000 /*%< use DNAME */ #define RES_USE_EDNS0 0x40000000 /*%< use EDNS0 if configured */ #define RES_NO_NIBBLE2 0x80000000 /*%< disable alternate nibble lookup */ #define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | \ RES_DNSRCH | RES_NO_NIBBLE2) /*% * Resolver "pfcode" values. Used by dig. */ #define RES_PRF_STATS 0x00000001 #define RES_PRF_UPDATE 0x00000002 #define RES_PRF_CLASS 0x00000004 #define RES_PRF_CMD 0x00000008 #define RES_PRF_QUES 0x00000010 #define RES_PRF_ANS 0x00000020 #define RES_PRF_AUTH 0x00000040 #define RES_PRF_ADD 0x00000080 #define RES_PRF_HEAD1 0x00000100 #define RES_PRF_HEAD2 0x00000200 #define RES_PRF_TTLID 0x00000400 #define RES_PRF_HEADX 0x00000800 #define RES_PRF_QUERY 0x00001000 #define RES_PRF_REPLY 0x00002000 #define RES_PRF_INIT 0x00004000 #define RES_PRF_TRUNC 0x00008000 /* 0x00010000 */ /* Things involving an internal (static) resolver context. */ __BEGIN_DECLS extern struct __res_state *__res_get_state(void); extern void __res_put_state(struct __res_state *); /* * Source and Binary compatibility; _res will not work properly * with multi-threaded programs. */ extern struct __res_state *__res_state(void); #define _res (*__res_state()) __END_DECLS #ifndef __BIND_NOSTATIC #define fp_nquery __fp_nquery #define fp_query __fp_query #define hostalias __hostalias #define p_query __p_query #define res_close __res_close #define res_isourserver __res_isourserver #define res_opt __res_opt #define res_querydomain __res_querydomain #define res_send __res_send #define res_sendsigned __res_sendsigned #ifdef notdef /* NetBSD protects these via weak symbols. */ #define res_init __res_init #define res_query __res_query #define res_mkquery __res_mkquery #define dn_expand __dn_expand #define res_search __res_search #endif __BEGIN_DECLS void fp_nquery(const u_char *, int, FILE *); void fp_query(const u_char *, FILE *); const char * hostalias(const char *); void p_query(const u_char *); void res_close(void); int res_init(void); int res_opt(int, u_char *, int, int); int res_isourserver(const struct sockaddr_in *); int res_mkquery(int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int); int res_query(const char *, int, int, u_char *, int); int res_querydomain(const char *, const char *, int, int, u_char *, int); int res_search(const char *, int, int, u_char *, int); int res_send(const u_char *, int, u_char *, int); int res_sendsigned(const u_char *, int, ns_tsig_key *, u_char *, int); __END_DECLS #endif #if !defined(SHARED_LIBBIND) || defined(LIB) /* * If libbind is a shared object (well, DLL anyway) * these externs break the linker when resolv.h is * included by a lib client (like named) * Make them go away if a client is including this * */ extern const struct res_sym __p_key_syms[]; extern const struct res_sym __p_cert_syms[]; extern const struct res_sym __p_class_syms[]; extern const struct res_sym __p_type_syms[]; extern const struct res_sym __p_rcode_syms[]; #endif /* SHARED_LIBBIND */ #define b64_ntop __b64_ntop #define b64_pton __b64_pton #define dn_comp __dn_comp #define dn_count_labels __dn_count_labels #define dn_skipname __dn_skipname #define fp_resstat __fp_resstat #define loc_aton __loc_aton #define loc_ntoa __loc_ntoa #define p_cdname __p_cdname #define p_cdnname __p_cdnname #define p_class __p_class #define p_fqname __p_fqname #define p_fqnname __p_fqnname #define p_option __p_option #define p_secstodate __p_secstodate #define p_section __p_section #define p_time __p_time #define p_type __p_type #define p_rcode __p_rcode #define p_sockun __p_sockun #define putlong __putlong #define putshort __putshort #define res_dnok __res_dnok #define res_findzonecut __res_findzonecut #define res_findzonecut2 __res_findzonecut2 #define res_hnok __res_hnok #define res_hostalias __res_hostalias #define res_mailok __res_mailok #define res_nameinquery __res_nameinquery #define res_nclose __res_nclose #define res_ninit __res_ninit #define res_nmkquery __res_nmkquery #define res_pquery __res_pquery #define res_nquery __res_nquery #define res_nquerydomain __res_nquerydomain #define res_nsearch __res_nsearch #define res_nsend __res_nsend #define res_nsendsigned __res_nsendsigned #define res_nisourserver __res_nisourserver #define res_ownok __res_ownok #define res_queriesmatch __res_queriesmatch #define res_randomid __res_randomid #define sym_ntop __sym_ntop #define sym_ntos __sym_ntos #define sym_ston __sym_ston #define res_nopt __res_nopt #define res_nopt_rdata __res_nopt_rdata #define res_ndestroy __res_ndestroy #define res_nametoclass __res_nametoclass #define res_nametotype __res_nametotype #define res_setservers __res_setservers #define res_getservers __res_getservers #define res_buildprotolist __res_buildprotolist #define res_destroyprotolist __res_destroyprotolist #define res_destroyservicelist __res_destroyservicelist #define res_get_nibblesuffix __res_get_nibblesuffix #define res_get_nibblesuffix2 __res_get_nibblesuffix2 #define res_ourserver_p __res_ourserver_p #define res_protocolname __res_protocolname #define res_protocolnumber __res_protocolnumber #define res_send_setqhook __res_send_setqhook #define res_send_setrhook __res_send_setrhook #define res_servicename __res_servicename #define res_servicenumber __res_servicenumber __BEGIN_DECLS int res_hnok(const char *); int res_ownok(const char *); int res_mailok(const char *); int res_dnok(const char *); int sym_ston(const struct res_sym *, const char *, int *); const char * sym_ntos(const struct res_sym *, int, int *); const char * sym_ntop(const struct res_sym *, int, int *); int b64_ntop(u_char const *, size_t, char *, size_t); int b64_pton(char const *, u_char *, size_t); int loc_aton(const char *, u_char *); const char * loc_ntoa(const u_char *, char *); int dn_skipname(const u_char *, const u_char *); void putlong(uint32_t, u_char *); void putshort(uint16_t, u_char *); #ifndef __ultrix__ uint16_t _getshort(const u_char *); uint32_t _getlong(const u_char *); #endif const char * p_class(int); const char * p_time(uint32_t); const char * p_type(int); const char * p_rcode(int); const char * p_sockun(union res_sockaddr_union, char *, size_t); const u_char * p_cdnname(const u_char *, const u_char *, int, FILE *); const u_char * p_cdname(const u_char *, const u_char *, FILE *); const u_char * p_fqnname(const u_char *, const u_char *, int, char *, int); const u_char * p_fqname(const u_char *, const u_char *, FILE *); const char * p_option(u_long); char * p_secstodate(u_long); int dn_count_labels(const char *); int dn_comp(const char *, u_char *, int, u_char **, u_char **); int dn_expand(const u_char *, const u_char *, const u_char *, char *, int); u_int res_randomid(void); int res_nameinquery(const char *, int, int, const u_char *, const u_char *); int res_queriesmatch(const u_char *, const u_char *, const u_char *, const u_char *); const char * p_section(int, int); /* Things involving a resolver context. */ int res_ninit(res_state); int res_nisourserver(const res_state, const struct sockaddr_in *); void fp_resstat(const res_state, FILE *); void res_pquery(const res_state, const u_char *, int, FILE *); const char * res_hostalias(const res_state, const char *, char *, size_t); int res_nquery(res_state, const char *, int, int, u_char *, int); int res_nsearch(res_state, const char *, int, int, u_char *, int); int res_nquerydomain(res_state, const char *, const char *, int, int, u_char *, int); int res_nmkquery(res_state, int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int); int res_nsend(res_state, const u_char *, int, u_char *, int); int res_nsendsigned(res_state, const u_char *, int, ns_tsig_key *, u_char *, int); int res_findzonecut(res_state, const char *, ns_class, int, char *, size_t, struct in_addr *, int); int res_findzonecut2(res_state, const char *, ns_class, int, char *, size_t, union res_sockaddr_union *, int); void res_nclose(res_state); int res_nopt(res_state, int, u_char *, int, int); int res_nopt_rdata(res_state, int, u_char *, int, u_char *, u_short, u_short, u_char *); void res_send_setqhook(res_send_qhook); void res_send_setrhook(res_send_rhook); int __res_vinit(res_state, int); void res_destroyservicelist(void); const char * res_servicename(uint16_t, const char *); const char * res_protocolname(int); void res_destroyprotolist(void); void res_buildprotolist(void); const char * res_get_nibblesuffix(res_state); const char * res_get_nibblesuffix2(res_state); void res_ndestroy(res_state); uint16_t res_nametoclass(const char *, int *); uint16_t res_nametotype(const char *, int *); void res_setservers(res_state, const union res_sockaddr_union *, int); int res_getservers(res_state, union res_sockaddr_union *, int); __END_DECLS #endif /* !_RESOLV_H_ */ @ 1.35.10.1 log @Apply patches (requested by spz in ticket #1517): Update bind to 9.7.2-P3. @ text @d1 1 a1 18 /* $NetBSD: resolv.h,v 1.38 2009/10/24 17:23:34 christos Exp $ */ /* * Portions Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1995-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ d6 1 a6 1 * d18 1 a18 1 * d32 17 d51 1 a51 1 * Id: resolv.h,v 1.30 2009/03/03 01:52:48 each Exp d76 1 a76 1 #define __RES 20090302 d185 1 a185 1 char pad[56 - 4*sizeof (int) - 3*sizeof (void *)]; a192 1 u_char *_rnd; /*%< PRIVATE: random state */ d340 1 a340 1 * these externs break the linker when resolv.h is a373 1 #define res_check __res_check a392 1 #define res_rndinit __res_rndinit a393 1 #define res_nrandomid __res_nrandomid a419 2 struct timespec; int res_check(res_state, struct timespec *); a450 1 void res_rndinit(res_state); a451 1 u_int res_nrandomid(res_state); @ 1.35.14.1 log @Apply patches (requested by spz in ticket #1517): Update bind to 9.7.2-P3. @ text @d1 1 a1 18 /* $NetBSD: resolv.h,v 1.38 2009/10/24 17:23:34 christos Exp $ */ /* * Portions Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1995-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ d6 1 a6 1 * d18 1 a18 1 * d32 17 d51 1 a51 1 * Id: resolv.h,v 1.30 2009/03/03 01:52:48 each Exp d76 1 a76 1 #define __RES 20090302 d185 1 a185 1 char pad[56 - 4*sizeof (int) - 3*sizeof (void *)]; a192 1 u_char *_rnd; /*%< PRIVATE: random state */ d340 1 a340 1 * these externs break the linker when resolv.h is a373 1 #define res_check __res_check a392 1 #define res_rndinit __res_rndinit a393 1 #define res_nrandomid __res_nrandomid a419 2 struct timespec; int res_check(res_state, struct timespec *); a450 1 void res_rndinit(res_state); a451 1 u_int res_nrandomid(res_state); @ 1.35.4.1 log @Apply patches (requested by spz in ticket #1517): Update bind to 9.7.2-P3. @ text @d1 1 a1 18 /* $NetBSD: resolv.h,v 1.38 2009/10/24 17:23:34 christos Exp $ */ /* * Portions Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1995-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ d6 1 a6 1 * d18 1 a18 1 * d32 17 d51 1 a51 1 * Id: resolv.h,v 1.30 2009/03/03 01:52:48 each Exp d76 1 a76 1 #define __RES 20090302 d185 1 a185 1 char pad[56 - 4*sizeof (int) - 3*sizeof (void *)]; a192 1 u_char *_rnd; /*%< PRIVATE: random state */ d340 1 a340 1 * these externs break the linker when resolv.h is a373 1 #define res_check __res_check a392 1 #define res_rndinit __res_rndinit a393 1 #define res_nrandomid __res_nrandomid a419 2 struct timespec; int res_check(res_state, struct timespec *); a450 1 void res_rndinit(res_state); a451 1 u_int res_nrandomid(res_state); @ 1.35.8.1 log @Sync with HEAD. Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html @ text @d1 1 a1 18 /* $NetBSD: resolv.h,v 1.37 2009/04/20 14:42:12 christos Exp $ */ /* * Portions Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1995-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ d6 1 a6 1 * d18 1 a18 1 * d32 17 d51 1 a51 1 * Id: resolv.h,v 1.30 2009/03/03 01:52:48 each Exp d76 1 a76 1 #define __RES 20090302 d185 1 a185 1 char pad[56 - 4*sizeof (int) - 3*sizeof (void *)]; a192 1 u_char *_rnd; /*%< PRIVATE: random state */ d340 1 a340 1 * these externs break the linker when resolv.h is a392 1 #define res_rndinit __res_rndinit a393 1 #define res_nrandomid __res_nrandomid a450 1 void res_rndinit(res_state); a451 1 u_int res_nrandomid(res_state); @ 1.34 log @sync with bind-9-5-0 @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.33 2007/03/30 19:57:18 ghen Exp $ */ a300 1 #define res_init __res_init a301 1 #define res_mkquery __res_mkquery a302 1 #define res_query __res_query a303 1 #define res_search __res_search d307 9 a355 1 #define dn_expand __dn_expand @ 1.33 log @Resolve conflicts. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.1.1.7 2007/03/30 19:48:21 ghen Exp $ */ d51 1 a51 1 * Id: resolv.h,v 1.19.18.3 2005/08/25 04:43:51 marka Exp d248 1 d301 1 a301 1 #define res_opt __res_opt d303 3 d307 1 a310 8 #ifdef BIND_RES_POSIX3 #define dn_expand __dn_expand #define res_init __res_init #define res_query __res_query #define res_search __res_search #define res_mkquery __res_mkquery #endif d351 1 d394 1 d476 2 @ 1.33.14.1 log @Sync with head. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.35 2008/06/21 20:24:40 christos Exp $ */ d51 1 a51 1 * Id: resolv.h,v 1.23.564.1 2008/04/03 02:12:21 marka Exp a247 1 #define RES_NSID 0x00040000 /*%< request name server ID */ d300 1 a301 1 #define res_opt __res_opt d306 6 a311 7 #ifdef notdef /* NetBSD protects these via weak symbols. */ #define res_init __res_init #define res_query __res_query #define res_mkquery __res_mkquery #define dn_expand __dn_expand #define res_search __res_search a395 1 #define res_nopt_rdata __res_nopt_rdata a476 2 int res_nopt_rdata(res_state, int, u_char *, int, u_char *, u_short, u_short, u_char *); @ 1.33.12.1 log @Sync w/ -current. 34 merge conflicts to follow. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.33 2007/03/30 19:57:18 ghen Exp $ */ d51 1 a51 1 * Id: resolv.h,v 1.23.564.1 2008/04/03 02:12:21 marka Exp a247 1 #define RES_NSID 0x00040000 /*%< request name server ID */ d300 1 a301 1 #define res_opt __res_opt d306 6 a311 7 #ifdef notdef /* NetBSD protects these via weak symbols. */ #define res_init __res_init #define res_query __res_query #define res_mkquery __res_mkquery #define dn_expand __dn_expand #define res_search __res_search a395 1 #define res_nopt_rdata __res_nopt_rdata a476 2 int res_nopt_rdata(res_state, int, u_char *, int, u_char *, u_short, u_short, u_char *); @ 1.32 log @Merge back all our changes. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.31 2005/12/26 19:01:47 perry Exp $ */ @ 1.31 log @u_intN_t -> uintN_t @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.30 2005/02/03 04:39:32 perry Exp $ */ d49 1 a49 1 /* d51 1 a51 1 * Id: resolv.h,v 1.7.2.11.4.2 2004/06/25 00:41:05 marka Exp d68 1 a68 1 /* d78 1 a78 1 /* d98 1 a98 1 struct __res_state; /* forward */ d103 1 a103 1 /* d125 3 a127 3 int number; /* Identifying number, like T_MX */ const char * name; /* Its symbolic name, like "MX" */ const char * humanname; /* Its fun name, like "mail exchanger" */ d130 1 a130 1 /* d133 11 a143 12 #define MAXNS 3 /* max # name servers we'll track */ #define MAXDFLSRCH 3 /* # default domain levels to try */ #define MAXDNSRCH 6 /* max # domains in search path */ #define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */ #define RES_TIMEOUT 5 /* min. seconds between retries */ #define MAXRESOLVSORT 10 /* number of net to sort on */ #define RES_MAXNDOTS 15 /* should reflect bit field size */ #define RES_MAXRETRANS 30 /* only for resolv.conf/RES_OPTIONS */ #define RES_MAXRETRY 5 /* only for resolv.conf/RES_OPTIONS */ #define RES_DFLRETRY 2 /* Default #/tries. */ #define RES_MAXTIME 65535 /* Infinity, in milliseconds. */ d148 2 a149 2 int retrans; /* retransmission time interval */ int retry; /* number of times to retransmit */ d151 1 a151 1 u_int options; /* option flags - see below. */ d153 1 a153 1 u_long options; /* option flags - see below. */ d155 1 a155 1 int nscount; /* number of name servers */ d157 5 a161 5 nsaddr_list[MAXNS]; /* address of name server */ #define nsaddr nsaddr_list[0] /* for backward compatibility */ u_short id; /* current message id */ char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ char defdname[256]; /* default domain (deprecated) */ d163 1 a163 1 u_int pfcode; /* RES_PRF_ flags - see below. */ d165 1 a165 1 u_long pfcode; /* RES_PRF_ flags - see below. */ d167 2 a168 2 unsigned ndots:4; /* threshold for initial abs. query */ unsigned nsort:4; /* number of elements in sort_list[] */ d177 6 a182 6 res_send_qhook qhook; /* query hook */ res_send_rhook rhook; /* response hook */ int res_h_errno; /* last one set for this context */ int _vcsock; /* PRIVATE: for res_send VC i/o */ u_int _flags; /* PRIVATE: see below */ u_int _pad; /* make _u 64 bit aligned */ d188 1 a188 1 uint16_t nstimes[MAXNS]; /* ms. */ d190 1 a190 1 struct __res_state_ext *ext; /* extention for IPv6 */ d204 1 a204 1 int64_t __align64; /* 64bit alignment */ d206 1 a206 1 int32_t __align32; /* 32bit alignment */ d211 1 a211 1 /* d214 6 a219 6 #define RES_F_VC 0x00000001 /* socket is TCP */ #define RES_F_CONN 0x00000002 /* socket is connected */ #define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors */ #define RES_F__UNUSED 0x00000008 /* (unused) */ #define RES_F_LASTMASK 0x000000F0 /* ordinal server of last res_nsend */ #define RES_F_LASTSHIFT 4 /* bit position of LASTMASK "flag" */ d223 3 a225 3 #define RES_EXHAUSTIVE 0x00000001 /* always do all queries */ #define RES_IPV4ONLY 0x00000002 /* IPv4 only */ #define RES_IPV6ONLY 0x00000004 /* IPv6 only */ d227 1 a227 1 /* d230 20 a249 20 #define RES_INIT 0x00000001 /* address initialized */ #define RES_DEBUG 0x00000002 /* print debug messages */ #define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/ #define RES_USEVC 0x00000008 /* use virtual circuit */ #define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */ #define RES_IGNTC 0x00000020 /* ignore trucation errors */ #define RES_RECURSE 0x00000040 /* recursion desired */ #define RES_DEFNAMES 0x00000080 /* use default domain name */ #define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */ #define RES_DNSRCH 0x00000200 /* search up local domain tree */ #define RES_INSECURE1 0x00000400 /* type 1 security disabled */ #define RES_INSECURE2 0x00000800 /* type 2 security disabled */ #define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ #define RES_ROTATE 0x00004000 /* rotate ns list after each query */ #define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity. */ #define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */ #define RES_BLAST 0x00020000 /* blast all recursive servers */ #define RES_NOTLDQUERY 0x00100000 /* don't unqualified name as a tld */ #define RES_USE_DNSSEC 0x00200000 /* use DNSSEC using OK bit in OPT */ d252 3 a254 3 #define RES_USE_DNAME 0x10000000 /* use DNAME */ #define RES_USE_EDNS0 0x40000000 /* use EDNS0 if configured */ #define RES_NO_NIBBLE2 0x80000000 /* disable alternate nibble lookup */ d259 1 a259 1 /* @ 1.31.6.1 log @Catch up with now-somewhat-dated netbsd-4. These changes took longer than expected for me to actually get around to merging. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.31.4.1 2007/05/17 21:25:10 jdc Exp $ */ d49 1 a49 1 /*% d51 1 a51 1 * Id: resolv.h,v 1.19.18.3 2005/08/25 04:43:51 marka Exp d68 1 a68 1 /*% d78 1 a78 1 /*% d98 1 a98 1 struct __res_state; /*%< forward */ d103 1 a103 1 /*% d125 3 a127 3 int number; /*%< Identifying number, like T_MX */ const char * name; /*%< Its symbolic name, like "MX" */ const char * humanname; /*%< Its fun name, like "mail exchanger" */ d130 1 a130 1 /*% d133 12 a144 11 #define MAXNS 3 /*%< max # name servers we'll track */ #define MAXDFLSRCH 3 /*%< # default domain levels to try */ #define MAXDNSRCH 6 /*%< max # domains in search path */ #define LOCALDOMAINPARTS 2 /*%< min levels in name that is "local" */ #define RES_TIMEOUT 5 /*%< min. seconds between retries */ #define MAXRESOLVSORT 10 /*%< number of net to sort on */ #define RES_MAXNDOTS 15 /*%< should reflect bit field size */ #define RES_MAXRETRANS 30 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_MAXRETRY 5 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_DFLRETRY 2 /*%< Default #/tries. */ #define RES_MAXTIME 65535 /*%< Infinity, in milliseconds. */ d149 2 a150 2 int retrans; /*%< retransmission time interval */ int retry; /*%< number of times to retransmit */ d152 1 a152 1 u_int options; /*%< option flags - see below. */ d154 1 a154 1 u_long options; /*%< option flags - see below. */ d156 1 a156 1 int nscount; /*%< number of name servers */ d158 5 a162 5 nsaddr_list[MAXNS]; /*%< address of name server */ #define nsaddr nsaddr_list[0] /*%< for backward compatibility */ u_short id; /*%< current message id */ char *dnsrch[MAXDNSRCH+1]; /*%< components of domain to search */ char defdname[256]; /*%< default domain (deprecated) */ d164 1 a164 1 u_int pfcode; /*%< RES_PRF_ flags - see below. */ d166 1 a166 1 u_long pfcode; /*%< RES_PRF_ flags - see below. */ d168 2 a169 2 unsigned ndots:4; /*%< threshold for initial abs. query */ unsigned nsort:4; /*%< number of elements in sort_list[] */ d178 6 a183 6 res_send_qhook qhook; /*%< query hook */ res_send_rhook rhook; /*%< response hook */ int res_h_errno; /*%< last one set for this context */ int _vcsock; /*%< PRIVATE: for res_send VC i/o */ u_int _flags; /*%< PRIVATE: see below */ u_int _pad; /*%< make _u 64 bit aligned */ d189 1 a189 1 uint16_t nstimes[MAXNS]; /*%< ms. */ d191 1 a191 1 struct __res_state_ext *ext; /*%< extention for IPv6 */ d205 1 a205 1 int64_t __align64; /*%< 64bit alignment */ d207 1 a207 1 int32_t __align32; /*%< 32bit alignment */ d212 1 a212 1 /*% d215 6 a220 6 #define RES_F_VC 0x00000001 /*%< socket is TCP */ #define RES_F_CONN 0x00000002 /*%< socket is connected */ #define RES_F_EDNS0ERR 0x00000004 /*%< EDNS0 caused errors */ #define RES_F__UNUSED 0x00000008 /*%< (unused) */ #define RES_F_LASTMASK 0x000000F0 /*%< ordinal server of last res_nsend */ #define RES_F_LASTSHIFT 4 /*%< bit position of LASTMASK "flag" */ d224 3 a226 3 #define RES_EXHAUSTIVE 0x00000001 /*%< always do all queries */ #define RES_IPV4ONLY 0x00000002 /*%< IPv4 only */ #define RES_IPV6ONLY 0x00000004 /*%< IPv6 only */ d228 1 a228 1 /*% d231 20 a250 20 #define RES_INIT 0x00000001 /*%< address initialized */ #define RES_DEBUG 0x00000002 /*%< print debug messages */ #define RES_AAONLY 0x00000004 /*%< authoritative answers only (!IMPL)*/ #define RES_USEVC 0x00000008 /*%< use virtual circuit */ #define RES_PRIMARY 0x00000010 /*%< query primary server only (!IMPL) */ #define RES_IGNTC 0x00000020 /*%< ignore trucation errors */ #define RES_RECURSE 0x00000040 /*%< recursion desired */ #define RES_DEFNAMES 0x00000080 /*%< use default domain name */ #define RES_STAYOPEN 0x00000100 /*%< Keep TCP socket open */ #define RES_DNSRCH 0x00000200 /*%< search up local domain tree */ #define RES_INSECURE1 0x00000400 /*%< type 1 security disabled */ #define RES_INSECURE2 0x00000800 /*%< type 2 security disabled */ #define RES_NOALIASES 0x00001000 /*%< shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /*%< use/map IPv6 in gethostbyname() */ #define RES_ROTATE 0x00004000 /*%< rotate ns list after each query */ #define RES_NOCHECKNAME 0x00008000 /*%< do not check names for sanity. */ #define RES_KEEPTSIG 0x00010000 /*%< do not strip TSIG records */ #define RES_BLAST 0x00020000 /*%< blast all recursive servers */ #define RES_NOTLDQUERY 0x00100000 /*%< don't unqualified name as a tld */ #define RES_USE_DNSSEC 0x00200000 /*%< use DNSSEC using OK bit in OPT */ d253 3 a255 3 #define RES_USE_DNAME 0x10000000 /*%< use DNAME */ #define RES_USE_EDNS0 0x40000000 /*%< use EDNS0 if configured */ #define RES_NO_NIBBLE2 0x80000000 /*%< disable alternate nibble lookup */ d260 1 a260 1 /*% @ 1.31.4.1 log @Add missing BIND 9.4.x include file and library changes (requested by tron in ticket #662). @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.33 2007/03/30 19:57:18 ghen Exp $ */ d49 1 a49 1 /*% d51 1 a51 1 * Id: resolv.h,v 1.19.18.3 2005/08/25 04:43:51 marka Exp d68 1 a68 1 /*% d78 1 a78 1 /*% d98 1 a98 1 struct __res_state; /*%< forward */ d103 1 a103 1 /*% d125 3 a127 3 int number; /*%< Identifying number, like T_MX */ const char * name; /*%< Its symbolic name, like "MX" */ const char * humanname; /*%< Its fun name, like "mail exchanger" */ d130 1 a130 1 /*% d133 12 a144 11 #define MAXNS 3 /*%< max # name servers we'll track */ #define MAXDFLSRCH 3 /*%< # default domain levels to try */ #define MAXDNSRCH 6 /*%< max # domains in search path */ #define LOCALDOMAINPARTS 2 /*%< min levels in name that is "local" */ #define RES_TIMEOUT 5 /*%< min. seconds between retries */ #define MAXRESOLVSORT 10 /*%< number of net to sort on */ #define RES_MAXNDOTS 15 /*%< should reflect bit field size */ #define RES_MAXRETRANS 30 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_MAXRETRY 5 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_DFLRETRY 2 /*%< Default #/tries. */ #define RES_MAXTIME 65535 /*%< Infinity, in milliseconds. */ d149 2 a150 2 int retrans; /*%< retransmission time interval */ int retry; /*%< number of times to retransmit */ d152 1 a152 1 u_int options; /*%< option flags - see below. */ d154 1 a154 1 u_long options; /*%< option flags - see below. */ d156 1 a156 1 int nscount; /*%< number of name servers */ d158 5 a162 5 nsaddr_list[MAXNS]; /*%< address of name server */ #define nsaddr nsaddr_list[0] /*%< for backward compatibility */ u_short id; /*%< current message id */ char *dnsrch[MAXDNSRCH+1]; /*%< components of domain to search */ char defdname[256]; /*%< default domain (deprecated) */ d164 1 a164 1 u_int pfcode; /*%< RES_PRF_ flags - see below. */ d166 1 a166 1 u_long pfcode; /*%< RES_PRF_ flags - see below. */ d168 2 a169 2 unsigned ndots:4; /*%< threshold for initial abs. query */ unsigned nsort:4; /*%< number of elements in sort_list[] */ d178 6 a183 6 res_send_qhook qhook; /*%< query hook */ res_send_rhook rhook; /*%< response hook */ int res_h_errno; /*%< last one set for this context */ int _vcsock; /*%< PRIVATE: for res_send VC i/o */ u_int _flags; /*%< PRIVATE: see below */ u_int _pad; /*%< make _u 64 bit aligned */ d189 1 a189 1 uint16_t nstimes[MAXNS]; /*%< ms. */ d191 1 a191 1 struct __res_state_ext *ext; /*%< extention for IPv6 */ d205 1 a205 1 int64_t __align64; /*%< 64bit alignment */ d207 1 a207 1 int32_t __align32; /*%< 32bit alignment */ d212 1 a212 1 /*% d215 6 a220 6 #define RES_F_VC 0x00000001 /*%< socket is TCP */ #define RES_F_CONN 0x00000002 /*%< socket is connected */ #define RES_F_EDNS0ERR 0x00000004 /*%< EDNS0 caused errors */ #define RES_F__UNUSED 0x00000008 /*%< (unused) */ #define RES_F_LASTMASK 0x000000F0 /*%< ordinal server of last res_nsend */ #define RES_F_LASTSHIFT 4 /*%< bit position of LASTMASK "flag" */ d224 3 a226 3 #define RES_EXHAUSTIVE 0x00000001 /*%< always do all queries */ #define RES_IPV4ONLY 0x00000002 /*%< IPv4 only */ #define RES_IPV6ONLY 0x00000004 /*%< IPv6 only */ d228 1 a228 1 /*% d231 20 a250 20 #define RES_INIT 0x00000001 /*%< address initialized */ #define RES_DEBUG 0x00000002 /*%< print debug messages */ #define RES_AAONLY 0x00000004 /*%< authoritative answers only (!IMPL)*/ #define RES_USEVC 0x00000008 /*%< use virtual circuit */ #define RES_PRIMARY 0x00000010 /*%< query primary server only (!IMPL) */ #define RES_IGNTC 0x00000020 /*%< ignore trucation errors */ #define RES_RECURSE 0x00000040 /*%< recursion desired */ #define RES_DEFNAMES 0x00000080 /*%< use default domain name */ #define RES_STAYOPEN 0x00000100 /*%< Keep TCP socket open */ #define RES_DNSRCH 0x00000200 /*%< search up local domain tree */ #define RES_INSECURE1 0x00000400 /*%< type 1 security disabled */ #define RES_INSECURE2 0x00000800 /*%< type 2 security disabled */ #define RES_NOALIASES 0x00001000 /*%< shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /*%< use/map IPv6 in gethostbyname() */ #define RES_ROTATE 0x00004000 /*%< rotate ns list after each query */ #define RES_NOCHECKNAME 0x00008000 /*%< do not check names for sanity. */ #define RES_KEEPTSIG 0x00010000 /*%< do not strip TSIG records */ #define RES_BLAST 0x00020000 /*%< blast all recursive servers */ #define RES_NOTLDQUERY 0x00100000 /*%< don't unqualified name as a tld */ #define RES_USE_DNSSEC 0x00200000 /*%< use DNSSEC using OK bit in OPT */ d253 3 a255 3 #define RES_USE_DNAME 0x10000000 /*%< use DNAME */ #define RES_USE_EDNS0 0x40000000 /*%< use EDNS0 if configured */ #define RES_NO_NIBBLE2 0x80000000 /*%< disable alternate nibble lookup */ d260 1 a260 1 /*% @ 1.31.4.1.2.1 log @Apply patch, requested by spz in ticket 1413: dist/bind/ patch include/resolv.h patch include/arpa/nameser.h: patch lib/libc/include/isc/assertions.h: patch lib/libc/include/isc/eventlib.h patch lib/libc/isc/assertions.c: patch lib/libc/nameser/ns_parse.c patch lib/libc/resolv/herror.c: patch lib/libc/resolv/res_init.c patch lib/libc/resolv/res_mkquery.c: patch lib/libc/resolv/res_query.c patch lib/libc/resolv/res_send.c: patch usr.sbin/bind/Makefile.inc patch usr.sbin/bind/include/config.h: patch usr.sbin/bind/include/dns/code.h: patch usr.sbin/bind/include/dns/enumclass.h: patch usr.sbin/bind/include/dns/enumtype.h: patch usr.sbin/bind/include/dns/rdatastruct.h: patch usr.sbin/bind/include/isc/platform.h: patch usr.sbin/bind/include/lwres/netdb.h: patch usr.sbin/bind/include/lwres/platform.h: patch usr.sbin/bind/libisc/Makefile: patch lib/libc/inet/inet_addr.c new file Update bind to 9.4-ESV-R4, latest version of the 9.4 line. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.31.4.1 2007/05/17 21:25:10 jdc Exp $ */ a247 1 #define RES_NSID 0x00040000 /*%< request name server ID */ a395 1 #define res_nopt_rdata __res_nopt_rdata a476 2 int res_nopt_rdata(res_state, int, u_char *, int, u_char *, u_short, u_short, u_char *); @ 1.31.4.2 log @Apply patch, requested by spz in ticket 1413: dist/bind/ patch include/resolv.h patch include/arpa/nameser.h: patch lib/libc/include/isc/assertions.h: patch lib/libc/include/isc/eventlib.h patch lib/libc/isc/assertions.c: patch lib/libc/nameser/ns_parse.c patch lib/libc/resolv/herror.c: patch lib/libc/resolv/res_init.c patch lib/libc/resolv/res_mkquery.c: patch lib/libc/resolv/res_query.c patch lib/libc/resolv/res_send.c: patch usr.sbin/bind/Makefile.inc patch usr.sbin/bind/include/config.h: patch usr.sbin/bind/include/dns/code.h: patch usr.sbin/bind/include/dns/enumclass.h: patch usr.sbin/bind/include/dns/enumtype.h: patch usr.sbin/bind/include/dns/rdatastruct.h: patch usr.sbin/bind/include/isc/platform.h: patch usr.sbin/bind/include/lwres/netdb.h: patch usr.sbin/bind/include/lwres/platform.h: patch usr.sbin/bind/libisc/Makefile: patch lib/libc/inet/inet_addr.c new file Update bind to 9.4-ESV-R4, latest version of the 9.4 line. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.31.4.1 2007/05/17 21:25:10 jdc Exp $ */ a247 1 #define RES_NSID 0x00040000 /*%< request name server ID */ a395 1 #define res_nopt_rdata __res_nopt_rdata a476 2 int res_nopt_rdata(res_state, int, u_char *, int, u_char *, u_short, u_short, u_char *); @ 1.30 log @de-__P -- the hack is long since useless. Discussed with christos, matt, kleink, others. Approved by christos. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.29 2004/11/07 01:48:01 christos Exp $ */ d173 1 a173 1 u_int32_t mask; d188 2 a189 2 u_int16_t nscount; u_int16_t nstimes[MAXNS]; /* ms. */ d427 2 a428 2 void putlong(u_int32_t, u_char *); void putshort(u_int16_t, u_char *); d430 2 a431 2 u_int16_t _getshort(const u_char *); u_int32_t _getlong(const u_char *); d434 1 a434 1 const char * p_time(u_int32_t); d482 1 a482 1 const char * res_servicename(u_int16_t, const char *); d489 2 a490 2 u_int16_t res_nametoclass(const char *, int *); u_int16_t res_nametotype(const char *, int *); @ 1.29 log @Resolve conflicts. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.1.1.5 2004/11/07 01:28:26 christos Exp $ */ d116 1 a116 9 #ifndef __PMT #if defined(__STDC__) || defined(__cplusplus) #define __PMT(args) args #else #define __PMT(args) () #endif #endif typedef res_sendhookact (*res_send_qhook)__PMT((struct sockaddr * const *, d118 1 a118 1 u_char *, int, int *)); d120 1 a120 1 typedef res_sendhookact (*res_send_rhook)__PMT((const struct sockaddr *, d122 1 a122 1 int, int *)); d316 17 a332 17 void fp_nquery __P((const u_char *, int, FILE *)); void fp_query __P((const u_char *, FILE *)); const char * hostalias __P((const char *)); void p_query __P((const u_char *)); void res_close __P((void)); int res_init __P((void)); int res_opt __P((int, u_char *, int, int)); int res_isourserver __P((const struct sockaddr_in *)); int res_mkquery __P((int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int)); int res_query __P((const char *, int, int, u_char *, int)); int res_querydomain __P((const char *, const char *, int, int, u_char *, int)); int res_search __P((const char *, int, int, u_char *, int)); int res_send __P((const u_char *, int, u_char *, int)); int res_sendsigned __P((const u_char *, int, ns_tsig_key *, u_char *, int)); d415 14 a428 14 int res_hnok __P((const char *)); int res_ownok __P((const char *)); int res_mailok __P((const char *)); int res_dnok __P((const char *)); int sym_ston __P((const struct res_sym *, const char *, int *)); const char * sym_ntos __P((const struct res_sym *, int, int *)); const char * sym_ntop __P((const struct res_sym *, int, int *)); int b64_ntop __P((u_char const *, size_t, char *, size_t)); int b64_pton __P((char const *, u_char *, size_t)); int loc_aton __P((const char *, u_char *)); const char * loc_ntoa __P((const u_char *, char *)); int dn_skipname __P((const u_char *, const u_char *)); void putlong __P((u_int32_t, u_char *)); void putshort __P((u_int16_t, u_char *)); d430 2 a431 2 u_int16_t _getshort __P((const u_char *)); u_int32_t _getlong __P((const u_char *)); d433 22 a454 23 const char * p_class __P((int)); const char * p_time __P((u_int32_t)); const char * p_type __P((int)); const char * p_rcode __P((int)); const char * p_sockun __P((union res_sockaddr_union, char *, size_t)); const u_char * p_cdnname __P((const u_char *, const u_char *, int, FILE *)); const u_char * p_cdname __P((const u_char *, const u_char *, FILE *)); const u_char * p_fqnname __P((const u_char *, const u_char *, int, char *, int)); const u_char * p_fqname __P((const u_char *, const u_char *, FILE *)); const char * p_option __P((u_long)); char * p_secstodate __P((u_long)); int dn_count_labels __P((const char *)); int dn_comp __P((const char *, u_char *, int, u_char **, u_char **)); int dn_expand __P((const u_char *, const u_char *, const u_char *, char *, int)); u_int res_randomid __P((void)); int res_nameinquery __P((const char *, int, int, const u_char *, const u_char *)); int res_queriesmatch __P((const u_char *, const u_char *, const u_char *, const u_char *)); const char * p_section __P((int, int)); d456 10 a465 14 int res_ninit __P((res_state)); int res_nisourserver __P((const res_state, const struct sockaddr_in *)); void fp_resstat __P((const res_state, FILE *)); void res_pquery __P((const res_state, const u_char *, int, FILE *)); const char * res_hostalias __P((const res_state, const char *, char *, size_t)); int res_nquery __P((res_state, const char *, int, int, u_char *, int)); int res_nsearch __P((res_state, const char *, int, int, u_char *, int)); int res_nquerydomain __P((res_state, const char *, const char *, int, int, u_char *, int)); int res_nmkquery __P((res_state, int, const char *, int, int, d467 7 a473 7 u_char *, int)); int res_nsend __P((res_state, const u_char *, int, u_char *, int)); int res_nsendsigned __P((res_state, const u_char *, int, ns_tsig_key *, u_char *, int)); int res_findzonecut __P((res_state, const char *, ns_class, int, char *, size_t, struct in_addr *, int)); int res_findzonecut2 __P((res_state, const char *, ns_class, int, d475 20 a494 20 union res_sockaddr_union *, int)); void res_nclose __P((res_state)); int res_nopt __P((res_state, int, u_char *, int, int)); void res_send_setqhook __P((res_send_qhook)); void res_send_setrhook __P((res_send_rhook)); int __res_vinit __P((res_state, int)); void res_destroyservicelist __P((void)); const char * res_servicename __P((u_int16_t, const char *)); const char * res_protocolname __P((int)); void res_destroyprotolist __P((void)); void res_buildprotolist __P((void)); const char * res_get_nibblesuffix __P((res_state)); const char * res_get_nibblesuffix2 __P((res_state)); void res_ndestroy __P((res_state)); u_int16_t res_nametoclass __P((const char *, int *)); u_int16_t res_nametotype __P((const char *, int *)); void res_setservers __P((res_state, const union res_sockaddr_union *, int)); int res_getservers __P((res_state, union res_sockaddr_union *, int)); @ 1.28 log @Provide an ifdef so that we can define an old style _res if we need to. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.27 2004/06/04 09:54:03 he Exp $ */ d51 1 a51 1 * Id: resolv.h,v 1.7.2.11.4.1 2004/03/09 08:33:29 marka Exp d259 1 @ 1.27 log @Removr parameter names from __h_errno_set() function declaration. Without this the vax port fails to compile the okheaders regression test, because the "err" parameter name shadows a global variable. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.26 2004/05/26 01:08:50 christos Exp $ */ d183 3 d202 1 @ 1.26 log @PR/25707: Love: remove _LIBC from res_state as suggested, so that res_ninit calls in userland don't trash memory. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.25 2004/05/22 23:46:16 christos Exp $ */ d100 1 a100 1 void __h_errno_set(struct __res_state *res, int err); @ 1.25 log @Provide access to the 5 symbols the bind8 resolver libc did. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.24 2004/05/22 15:42:17 christos Exp $ */ a182 3 #ifndef _LIBC char lookups[4]; #else a198 1 #endif @ 1.24 log @provide unconditional access to _res via __res_state(). This will abort for multi-threaded programs. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.23 2004/05/21 02:26:20 christos Exp $ */ a307 1 #define res_init __res_init d310 1 a310 4 #define res_mkquery __res_mkquery #define res_query __res_query #define res_querydomain __res_querydomain #define res_search __res_search d314 8 a361 1 #define dn_expand __dn_expand @ 1.23 log @resolve conflicts. @ text @d1 1 a1 1 /* $NetBSD$ */ d293 6 a298 4 #ifndef _REENTRANT /* Binary compatibility */ extern struct __res_state _res; #endif @ 1.22 log @Move UCB-licensed code from 4-clause to 3-clause licence. Patches provided by Joel Baker in PR 22270, verified by myself. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.21 2003/07/09 01:59:34 kristerw Exp $ */ d4 2 a5 2 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. * All rights reserved. d15 1 a15 1 * 3. Neither the name of the project nor the names of its contributors d19 1 a19 1 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND d22 1 a22 1 * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE d32 3 a34 3 /*- * Copyright (c) 1983, 1987, 1989, 1993 * The Regents of the University of California. All rights reserved. d36 3 a38 23 * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. d40 10 d51 1 a51 21 * Id: resolv.h,v 4.9.1.2 1993/05/17 09:59:01 vixie Exp * - * Portions Copyright (c) 1993 by Digital Equipment Corporation. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies, and that * the name of Digital Equipment Corporation not be used in advertising or * publicity pertaining to distribution of the document or software without * specific, written prior permission. * * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. * - * --Copyright-- d58 3 d62 1 d66 1 d76 26 a101 1 #define __RES 19960801 d106 1 a106 1 * inital name server(s) to query and the domain search list. d113 25 d149 6 d159 3 d163 1 d171 3 d175 1 d183 35 a217 1 char lookups[4]; a219 1 #if 1 /* INET6 */ d221 1 a221 1 * replacement of __res_state, separated to keep binary compatibility. d223 12 a234 12 struct __res_state_ext { struct sockaddr_storage nsaddr_list[MAXNS]; struct { int af; /* address family for addr, mask */ union { struct in_addr ina; struct in6_addr in6a; } addr, mask; } sort_list[MAXRESOLVSORT]; }; #endif d253 6 d260 3 a262 1 #define RES_USE_EDNS0 0x40000000 /* use EDNS0 */ d264 2 a265 1 #define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH) d271 1 a271 1 /* 0x00000002 */ d284 3 a286 2 #define RES_PRF_INIT 0x00004000 /* 0x00008000 */ d288 9 a296 3 /* hooks are still experimental as of 4.9.2 */ typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } res_sendhookact; d298 1 a298 13 typedef res_sendhookact (*res_send_qhook)__P((struct sockaddr_in * const *, const u_char **, int *, u_char *, int, int *)); typedef res_sendhookact (*res_send_rhook)__P((const struct sockaddr_in *, const u_char *, int, u_char *, int, int *)); d300 15 a314 5 struct res_sym { int number; /* Identifying number, like T_MX */ __aconst char * name; /* Its symbolic name, like "MX" */ __aconst char * humanname; /* Its fun name, like "mail exchanger" */ }; d316 19 a334 3 extern struct __res_state _res; #if 1 /* INET6 */ extern struct __res_state_ext _res_ext; d336 11 d349 2 d352 64 a415 49 /* Private routines shared between libc/net, named, nslookup and others. */ #define res_hnok __res_hnok #define res_ownok __res_ownok #define res_mailok __res_mailok #define res_dnok __res_dnok #define sym_ston __sym_ston #define sym_ntos __sym_ntos #define sym_ntop __sym_ntop #define b64_ntop __b64_ntop #define b64_pton __b64_pton #define loc_ntoa __loc_ntoa #define loc_aton __loc_aton #define dn_skipname __dn_skipname #define fp_resstat __fp_resstat #define fp_query __fp_query #define fp_nquery __fp_nquery #define hostalias __hostalias #define putlong __putlong #define putshort __putshort #define p_class __p_class #define p_time __p_time #define p_type __p_type #define p_query __p_query #define p_cdnname __p_cdnname #define p_cdname __p_cdname #define p_fqnname __p_fqnname #define p_fqname __p_fqname #define p_rr __p_rr #define p_option __p_option #define p_secstodate __p_secstodate #define dn_count_labels __dn_count_labels #define dn_comp __dn_comp #define res_randomid __res_randomid #define res_send __res_send #define res_isourserver __res_isourserver #define res_nameinquery __res_nameinquery #define res_queriesmatch __res_queriesmatch #define res_close __res_close #define res_opt __res_opt #ifdef BIND_RES_POSIX3 #define dn_expand __dn_expand #define res_init __res_init #define res_query __res_query #define res_search __res_search #define res_querydomain __res_querydomain #define res_mkquery __res_mkquery #endif d421 1 a421 1 int sym_ston __P((const struct res_sym *, char *, int *)); a428 4 void fp_resstat __P((struct __res_state *, FILE *)); void fp_query __P((const u_char *, FILE *)); void fp_nquery __P((const u_char *, int, FILE *)); const char * hostalias __P((const char *)); d431 4 d438 2 a439 1 void p_query __P((const u_char *)); d442 1 a442 1 const u_char * p_fqnname __P((const u_char *cp, const u_char *msg, d445 1 a445 2 const u_char * p_rr __P((const u_char *, const u_char *, FILE *)); const char * p_option __P((u_long option)); d447 1 a447 1 int dn_count_labels __P((char *)); a451 1 int res_init __P((void)); d453 2 a454 10 int res_query __P((const char *, int, int, u_char *, int)); int res_search __P((const char *, int, int, u_char *, int)); int res_querydomain __P((const char *, const char *, int, int, u_char *, int)); int res_mkquery __P((int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int)); int res_send __P((const u_char *, int, u_char *, int)); int res_isourserver __P((const struct sockaddr_in *)); int res_nameinquery __P((const char *, int, int, const u_char *, const u_char *)); d457 45 a501 2 void res_close __P((void)); int res_opt __P((int, u_char *, int, int)); @ 1.21 log @Remove variable names from prototypes. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.20 2003/01/06 13:17:01 wiz Exp $ */ d44 1 a44 5 * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors @ 1.20 log @transmission, not transmition. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.19 2000/08/09 14:40:52 itojun Exp $ */ d214 13 a226 13 typedef res_sendhookact (*res_send_qhook)__P((struct sockaddr_in * const *ns, const u_char **query, int *querylen, u_char *ans, int anssiz, int *resplen)); typedef res_sendhookact (*res_send_rhook)__P((const struct sockaddr_in *ns, const u_char *query, int querylen, u_char *ans, int anssiz, int *resplen)); @ 1.19 log @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. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.18 1999/07/01 18:15:41 itojun Exp $ */ d130 1 a130 1 int retrans; /* retransmition time interval */ @ 1.19.2.1 log @Sync with HEAD. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.19 2000/08/09 14:40:52 itojun Exp $ */ d130 1 a130 1 int retrans; /* retransmission time interval */ @ 1.18 log @define IPv6 library functions and structures, as defined in RFC2292 and RFC2553. define internal state structure for IPv6-transport resolver. Commits for source code will follow. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.17 1999/01/17 05:08:10 lukem Exp $ */ d185 2 d279 1 d341 1 @ 1.17 log @revert part of previous; leave char lookups[4] in __res_state. otherwise, complex versioning stuff will have to be performed so that old binaries with a new libc.so don't barf @ text @d1 30 a30 1 /* $NetBSD: resolv.h,v 1.15 1998/07/27 09:09:26 mycroft Exp $ */ d94 1 d151 17 d233 3 @ 1.16 log @remove MAXDNSLUS and lookups[]; unnecessary with nsswitch @ text @d118 1 @ 1.15 log @Make many of the new consts dependent on a new `__AUDIT__' flag, to avoid breaking third party software. *sigh* @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.14 1998/07/26 12:29:33 mycroft Exp $ */ a93 1 #define MAXDNSLUS 4 /* max # of host lookup types */ a117 1 char lookups[MAXDNSLUS]; @ 1.14 log @const poisoning. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.13 1998/02/03 04:21:46 perry Exp $ */ d182 2 a183 2 const char * name; /* Its symbolic name, like "MX" */ const char * humanname; /* Its fun name, like "mail exchanger" */ @ 1.13 log @fix/restore Id @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.12 1998/02/02 21:07:45 perry Exp $ */ d181 3 a183 3 int number; /* Identifying number, like T_MX */ char * name; /* Its symbolic name, like "MX" */ char * humanname; /* Its fun name, like "mail exchanger" */ @ 1.12 log @merge lite-2 @ text @d1 1 a1 1 /* $NetBSD$ */ d36 1 a36 1 * $Id: resolv.h,v 4.9.1.2 1993/05/17 09:59:01 vixie Exp $ @ 1.11 log @rcsid fascism @ text @d1 3 a3 3 /* * ++Copyright++ 1983, 1987, 1989, 1993 * - d5 2 a6 2 * The Regents of the University of California. All rights reserved. * d17 2 a18 2 * This product includes software developed by the University of * California, Berkeley and its contributors. d22 1 a22 1 * d34 3 a58 5 /* * @@(#)resolv.h 8.1 (Berkeley) 6/2/93 * $NetBSD: resolv.h,v 1.10 1997/04/13 09:26:22 mrg Exp $ */ d63 1 a63 5 #if (!defined(BSD)) || (BSD < 199306) # include #else # include #endif @ 1.10 log @merge bind 4.9.5-P1. @ text @d58 1 a58 1 * $Id: resolv.h,v 8.17 1996/11/26 10:11:20 vixie Exp $ @ 1.10.2.1 log @Add necessary files for nsswitch, take 2 Remove support for "lookup" methods in resolv.conf Remove prototypes for _ng_sl_*; these were replaced a long time ago @ text @d58 1 a58 1 * $Id: resolv.h,v 1.10 1997/04/13 09:26:22 mrg Exp $ d100 1 d125 1 @ 1.10.2.2 log @update to current, fix copyrights, reimplement MAXDNSLUS (for now) @ text @d1 3 a3 3 /* $NetBSD: resolv.h,v 1.15 1998/07/27 09:09:26 mycroft Exp $ */ /*- d5 2 a6 2 * The Regents of the University of California. All rights reserved. * d17 2 a18 2 * This product includes software developed by the University of * California, Berkeley and its contributors. d22 1 a22 1 * a33 3 * * @@(#)resolv.h 8.1 (Berkeley) 6/2/93 * Id: resolv.h,v 4.9.1.2 1993/05/17 09:59:01 vixie Exp d56 5 d65 5 a69 1 #include a99 2 #define MAXDNSLUS 4 /* max # of host lookup types */ /* XXX deprecate MAXDNSLUS after full nsswitch merge */ a123 1 char lookups[MAXDNSLUS]; d185 3 a187 3 int number; /* Identifying number, like T_MX */ __aconst char * name; /* Its symbolic name, like "MX" */ __aconst char * humanname; /* Its fun name, like "mail exchanger" */ @ 1.9 log @update these for bind 4.9.3-p1. @ text @d58 1 a58 1 * $Id: resolv.h,v 8.5 1995/12/22 10:20:27 vixie Exp d74 3 a76 3 * revision information. this is the release date in YYYYMMDD format. * it can change every day so the right thing to do with it is use it * in preprocessor commands such as "#if (__RES > 19931104)". do not d81 1 a81 1 #define __RES 19951031 d114 1 a114 1 u_short id; /* current packet id */ d116 1 a116 1 char defdname[MAXDNAME]; /* default domain */ d144 1 d186 6 d193 2 d197 11 d209 1 d218 1 d221 1 d225 3 d229 1 d233 11 d245 50 a294 36 int __dn_skipname __P((const u_char *, const u_char *)); void __fp_resstat __P((struct __res_state *, FILE *)); void __fp_query __P((const u_char *, FILE *)); void __fp_nquery __P((const u_char *, int, FILE *)); char *__hostalias __P((const char *)); void __putlong __P((u_int32_t, u_char *)); void __putshort __P((u_int16_t, u_char *)); char *__p_time __P((u_int32_t)); void __p_query __P((const u_char *)); const u_char *__p_cdnname __P((const u_char *, const u_char *, int, FILE *)); const u_char *__p_cdname __P((const u_char *, const u_char *, FILE *)); const u_char *__p_fqname __P((const u_char *, const u_char *, FILE *)); const u_char *__p_rr __P((const u_char *, const u_char *, FILE *)); const char *__p_type __P((int)); const char *__p_class __P((int)); const char *__p_option __P((u_long option)); int dn_comp __P((const char *, u_char *, int, u_char **, u_char **)); int dn_expand __P((const u_char *, const u_char *, const u_char *, char *, int)); int res_init __P((void)); u_int16_t res_randomid __P((void)); int res_query __P((const char *, int, int, u_char *, int)); int res_search __P((const char *, int, int, u_char *, int)); int res_querydomain __P((const char *, const char *, int, int, u_char *, int)); int res_mkquery __P((int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int)); int res_send __P((const u_char *, int, u_char *, int)); int res_isourserver __P((const struct sockaddr_in *)); int res_nameinquery __P((const char *, int, int, const u_char *, const u_char *)); int res_queriesmatch __P((const u_char *, const u_char *, const u_char *, const u_char *)); /* XXX - these last two don't belong in the resolver */ u_int inet_nsap_addr __P((const char *, u_char *, int maxlen)); char *inet_nsap_ntoa __P((int, const u_char *, char *ascii)); @ 1.9.2.1 log @initial nsswitch implementation @ text @d100 1 d125 1 @ 1.8 log @new RCS ID format. @ text @a0 2 /* $NetBSD$ */ d2 5 a6 3 * Copyright (c) 1983, 1987, 1989 The Regents of the University of California. * All rights reserved. * d17 2 a18 2 * This product includes software developed by the University of * California, Berkeley and its contributors. d22 1 a22 1 * d34 25 a58 2 * * @@(#)resolv.h 5.15 (Berkeley) 4/3/91 d64 9 d81 1 a81 1 #define __RES 19931104 d103 2 a104 2 #define MAXRESOLVSORT 10 /* number of net to sort on */ #define RES_MAXNDOTS 15 /* should reflect bit field size */ d109 1 a109 1 long options; /* option flags - see below. */ d111 2 a112 1 struct sockaddr_in nsaddr_list[MAXNS]; /* address of name server */ d117 3 a119 3 long pfcode; /* RES_PRF_ flags - see below. */ u_char ndots:4; /* threshold for initial abs. query */ u_char nsort:4; /* number of elements in sort_list[] */ d122 2 a123 2 struct in_addr addr; u_int32_t mask; d129 1 a129 1 * Resolver options d131 13 a143 10 #define RES_INIT 0x0001 /* address initialized */ #define RES_DEBUG 0x0002 /* print debug messages */ #define RES_AAONLY 0x0004 /* authoritative answers only */ #define RES_USEVC 0x0008 /* use virtual circuit */ #define RES_PRIMARY 0x0010 /* query primary server only */ #define RES_IGNTC 0x0020 /* ignore trucation errors */ #define RES_RECURSE 0x0040 /* recursion desired */ #define RES_DEFNAMES 0x0080 /* use default domain name */ #define RES_STAYOPEN 0x0100 /* Keep TCP socket open */ #define RES_DNSRCH 0x0200 /* search up local domain tree */ d150 34 a183 16 #define RES_PRF_STATS 0x0001 /* 0x0002 */ #define RES_PRF_CLASS 0x0004 #define RES_PRF_CMD 0x0008 #define RES_PRF_QUES 0x0010 #define RES_PRF_ANS 0x0020 #define RES_PRF_AUTH 0x0040 #define RES_PRF_ADD 0x0080 #define RES_PRF_HEAD1 0x0100 #define RES_PRF_HEAD2 0x0200 #define RES_PRF_TTLID 0x0400 #define RES_PRF_HEADX 0x0800 #define RES_PRF_QUERY 0x1000 #define RES_PRF_REPLY 0x2000 #define RES_PRF_INIT 0x4000 /* 0x8000 */ a186 3 #include #include d190 1 d197 9 d208 3 a210 1 void __fp_query __P((char *, FILE *)); a213 1 char *__p_class __P((int)); d215 9 a223 3 char *__p_type __P((int)); int dn_comp __P((const u_char *, u_char *, int, u_char **, u_char **)); d225 1 a225 1 u_char *, int)); d227 2 a228 1 int res_query __P((char *, int, int, u_char *, int)); d230 13 a242 3 int res_mkquery __P((int, const char *, int, int, const char *, int, const char *, char *, int)); int res_send __P((const char *, int, char *, int)); @ 1.7 log @res_search() takes a const char * as the first arg. @ text @d1 2 d35 1 a35 2 * from: @@(#)resolv.h 5.15 (Berkeley) 4/3/91 * $Id: resolv.h,v 1.6 1994/10/15 07:56:51 deraadt Exp $ @ 1.6 log @u_int_{16,32}_t stuff @ text @d34 1 a34 1 * $Id: resolv.h,v 1.5 1994/06/13 01:16:13 jtc Exp $ d159 1 a159 1 int res_search __P((char *, int, int, u_char *, int)); @ 1.5 log @Add prototypes for res_query() and res_search() to fix bug #250. More extensive changes will come when bind-4.9.3 is released and integrated. @ text @d34 1 a34 1 * $Id: resolv.h,v 1.4 1994/04/07 06:58:30 deraadt Exp $ d89 1 a89 1 u_long mask; d148 2 a149 2 void __putlong __P((u_long, u_char *)); void __putshort __P((u_short, u_char *)); d151 1 a151 1 char *__p_time __P((u_long)); @ 1.4 log @new resolver. changes from 4.9.2 by , as well as a number of features and optimizations by myself. @ text @d34 1 a34 1 * $Id: resolv.h,v 1.3 1994/01/28 03:00:25 deraadt Exp $ d158 2 @ 1.3 log @support for lookup keyword in resolv.conf @ text @d34 1 a34 1 * $Id: resolv.h,v 1.2 1993/08/01 18:45:24 mycroft Exp $ d41 10 d70 2 d73 1 a73 1 struct state { d81 1 d83 8 a90 1 char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ d110 21 a130 1 extern struct state _res; d159 1 a159 1 const struct rrec *, char *, int)); @ 1.2 log @Add RCS identifiers. @ text @d34 1 a34 1 * $Id: $ d57 1 d71 1 @ 1.1 log @Initial revision @ text @d33 2 a34 1 * @@(#)resolv.h 5.15 (Berkeley) 4/3/91 @ 1.1.1.1 log @initial import of 386bsd-0.1 sources @ text @@ 1.1.1.2 log @BIND 4.9.5-P1 include bits @ text @d2 3 a4 5 * ++Copyright++ 1983, 1987, 1989, 1993 * - * Copyright (c) 1983, 1987, 1989, 1993 * The Regents of the University of California. All rights reserved. * d15 2 a16 2 * This product includes software developed by the University of * California, Berkeley and its contributors. d20 1 a20 1 * d32 2 a33 25 * - * Portions Copyright (c) 1993 by Digital Equipment Corporation. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies, and that * the name of Digital Equipment Corporation not be used in advertising or * publicity pertaining to distribution of the document or software without * specific, written prior permission. * * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. * - * --Copyright-- */ /* * @@(#)resolv.h 8.1 (Berkeley) 6/2/93 * $Id: resolv.h,v 8.17 1996/11/26 10:11:20 vixie Exp $ a38 19 #include #if (!defined(BSD)) || (BSD < 199306) # include #else # include #endif #include #include /* * Revision information. This is the release date in YYYYMMDD format. * It can change every day so the right thing to do with it is use it * in preprocessor commands such as "#if (__RES > 19931104)". Do not * compare for equality; rather, use it to determine whether your resolver * is new enough to contain a certain feature. */ #define __RES 19960801 a57 2 #define MAXRESOLVSORT 10 /* number of net to sort on */ #define RES_MAXNDOTS 15 /* should reflect bit field size */ d59 1 a59 1 struct __res_state { d62 1 a62 1 u_long options; /* option flags - see below. */ d64 1 a64 2 struct sockaddr_in nsaddr_list[MAXNS]; /* address of name server */ d66 2 a67 1 u_short id; /* current message id */ a68 10 char defdname[256]; /* default domain (deprecated) */ u_long pfcode; /* RES_PRF_ flags - see below. */ unsigned ndots:4; /* threshold for initial abs. query */ unsigned nsort:4; /* number of elements in sort_list[] */ char unused[3]; struct { struct in_addr addr; u_int32_t mask; } sort_list[MAXRESOLVSORT]; char pad[72]; /* on an i386 this means 512b total */ d72 1 a72 1 * Resolver options (keep these in synch with res_debug.c, please) d74 10 a83 14 #define RES_INIT 0x00000001 /* address initialized */ #define RES_DEBUG 0x00000002 /* print debug messages */ #define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/ #define RES_USEVC 0x00000008 /* use virtual circuit */ #define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */ #define RES_IGNTC 0x00000020 /* ignore trucation errors */ #define RES_RECURSE 0x00000040 /* recursion desired */ #define RES_DEFNAMES 0x00000080 /* use default domain name */ #define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */ #define RES_DNSRCH 0x00000200 /* search up local domain tree */ #define RES_INSECURE1 0x00000400 /* type 1 security disabled */ #define RES_INSECURE2 0x00000800 /* type 2 security disabled */ #define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ d87 1 a87 43 /* * Resolver "pfcode" values. Used by dig. */ #define RES_PRF_STATS 0x00000001 /* 0x00000002 */ #define RES_PRF_CLASS 0x00000004 #define RES_PRF_CMD 0x00000008 #define RES_PRF_QUES 0x00000010 #define RES_PRF_ANS 0x00000020 #define RES_PRF_AUTH 0x00000040 #define RES_PRF_ADD 0x00000080 #define RES_PRF_HEAD1 0x00000100 #define RES_PRF_HEAD2 0x00000200 #define RES_PRF_TTLID 0x00000400 #define RES_PRF_HEADX 0x00000800 #define RES_PRF_QUERY 0x00001000 #define RES_PRF_REPLY 0x00002000 #define RES_PRF_INIT 0x00004000 /* 0x00008000 */ /* hooks are still experimental as of 4.9.2 */ typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } res_sendhookact; typedef res_sendhookact (*res_send_qhook)__P((struct sockaddr_in * const *ns, const u_char **query, int *querylen, u_char *ans, int anssiz, int *resplen)); typedef res_sendhookact (*res_send_rhook)__P((const struct sockaddr_in *ns, const u_char *query, int querylen, u_char *ans, int anssiz, int *resplen)); struct res_sym { int number; /* Identifying number, like T_MX */ char * name; /* Its symbolic name, like "MX" */ char * humanname; /* Its fun name, like "mail exchanger" */ }; d89 2 a90 3 extern struct __res_state _res; extern const struct res_sym __p_class_syms[]; extern const struct res_sym __p_type_syms[]; a92 11 #define res_hnok __res_hnok #define res_ownok __res_ownok #define res_mailok __res_mailok #define res_dnok __res_dnok #define sym_ston __sym_ston #define sym_ntos __sym_ntos #define sym_ntop __sym_ntop #define b64_ntop __b64_ntop #define b64_pton __b64_pton #define loc_ntoa __loc_ntoa #define loc_aton __loc_aton a93 1 #define fp_resstat __fp_resstat a94 1 #define fp_nquery __fp_nquery a100 26 #define p_query __p_query #define p_cdnname __p_cdnname #define p_cdname __p_cdname #define p_fqnname __p_fqnname #define p_fqname __p_fqname #define p_rr __p_rr #define p_option __p_option #define p_secstodate __p_secstodate #define dn_count_labels __dn_count_labels #define dn_comp __dn_comp #define res_randomid __res_randomid #define res_send __res_send #define res_isourserver __res_isourserver #define res_nameinquery __res_nameinquery #define res_queriesmatch __res_queriesmatch #define res_close __res_close #ifdef BIND_RES_POSIX3 #define dn_expand __dn_expand #define res_init __res_init #define res_query __res_query #define res_search __res_search #define res_querydomain __res_querydomain #define res_mkquery __res_mkquery #endif d102 16 a117 50 int res_hnok __P((const char *)); int res_ownok __P((const char *)); int res_mailok __P((const char *)); int res_dnok __P((const char *)); int sym_ston __P((const struct res_sym *, char *, int *)); const char * sym_ntos __P((const struct res_sym *, int, int *)); const char * sym_ntop __P((const struct res_sym *, int, int *)); int b64_ntop __P((u_char const *, size_t, char *, size_t)); int b64_pton __P((char const *, u_char *, size_t)); int loc_aton __P((const char *, u_char *)); const char * loc_ntoa __P((const u_char *, char *)); int dn_skipname __P((const u_char *, const u_char *)); void fp_resstat __P((struct __res_state *, FILE *)); void fp_query __P((const u_char *, FILE *)); void fp_nquery __P((const u_char *, int, FILE *)); const char * hostalias __P((const char *)); void putlong __P((u_int32_t, u_char *)); void putshort __P((u_int16_t, u_char *)); const char * p_class __P((int)); const char * p_time __P((u_int32_t)); const char * p_type __P((int)); void p_query __P((const u_char *)); const u_char * p_cdnname __P((const u_char *, const u_char *, int, FILE *)); const u_char * p_cdname __P((const u_char *, const u_char *, FILE *)); const u_char * p_fqnname __P((const u_char *cp, const u_char *msg, int, char *, int)); const u_char * p_fqname __P((const u_char *, const u_char *, FILE *)); const u_char * p_rr __P((const u_char *, const u_char *, FILE *)); const char * p_option __P((u_long option)); char * p_secstodate __P((u_long)); int dn_count_labels __P((char *)); int dn_comp __P((const char *, u_char *, int, u_char **, u_char **)); int dn_expand __P((const u_char *, const u_char *, const u_char *, char *, int)); int res_init __P((void)); u_int res_randomid __P((void)); int res_query __P((const char *, int, int, u_char *, int)); int res_search __P((const char *, int, int, u_char *, int)); int res_querydomain __P((const char *, const char *, int, int, u_char *, int)); int res_mkquery __P((int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int)); int res_send __P((const u_char *, int, u_char *, int)); int res_isourserver __P((const struct sockaddr_in *)); int res_nameinquery __P((const char *, int, int, const u_char *, const u_char *)); int res_queriesmatch __P((const u_char *, const u_char *, const u_char *, const u_char *)); void res_close __P((void)); @ 1.1.1.3 log @import lite-2 @ text @d1 3 a3 1 /*- d5 2 a6 2 * The Regents of the University of California. All rights reserved. * d17 2 a18 2 * This product includes software developed by the University of * California, Berkeley and its contributors. d22 1 a22 1 * a33 3 * * @@(#)resolv.h 8.1 (Berkeley) 6/2/93 * $Id: resolv.h,v 4.9.1.2 1993/05/17 09:59:01 vixie Exp $ d56 5 d64 19 a82 1 #include d102 2 d108 1 a108 1 long options; /* option flags - see below. */ d110 2 a111 1 struct sockaddr_in nsaddr_list[MAXNS]; /* address of name server */ d113 1 a113 1 u_short id; /* current packet id */ d115 10 a124 2 char defdname[MAXDNAME]; /* default domain */ long pfcode; /* RES_PRF_ flags - see below. */ d130 14 a143 10 #define RES_INIT 0x0001 /* address initialized */ #define RES_DEBUG 0x0002 /* print debug messages */ #define RES_AAONLY 0x0004 /* authoritative answers only */ #define RES_USEVC 0x0008 /* use virtual circuit */ #define RES_PRIMARY 0x0010 /* query primary server only */ #define RES_IGNTC 0x0020 /* ignore trucation errors */ #define RES_RECURSE 0x0040 /* recursion desired */ #define RES_DEFNAMES 0x0080 /* use default domain name */ #define RES_STAYOPEN 0x0100 /* Keep TCP socket open */ #define RES_DNSRCH 0x0200 /* search up local domain tree */ d150 40 a189 19 #define RES_PRF_STATS 0x0001 /* 0x0002 */ #define RES_PRF_CLASS 0x0004 #define RES_PRF_CMD 0x0008 #define RES_PRF_QUES 0x0010 #define RES_PRF_ANS 0x0020 #define RES_PRF_AUTH 0x0040 #define RES_PRF_ADD 0x0080 #define RES_PRF_HEAD1 0x0100 #define RES_PRF_HEAD2 0x0200 #define RES_PRF_TTLID 0x0400 #define RES_PRF_HEADX 0x0800 #define RES_PRF_QUERY 0x1000 #define RES_PRF_REPLY 0x2000 #define RES_PRF_INIT 0x4000 /* 0x8000 */ #include #include d192 2 d196 11 d208 1 d210 1 d217 26 d244 50 a293 17 int __dn_skipname __P((const u_char *, const u_char *)); void __fp_resstat __P((struct __res_state *, FILE *)); void __fp_query __P((char *, FILE *)); char *__hostalias __P((const char *)); void __putlong __P((u_int32_t, u_char *)); void __putshort __P((u_short, u_char *)); char *__p_class __P((int)); char *__p_time __P((u_int32_t)); char *__p_type __P((int)); int dn_comp __P((const u_char *, u_char *, int, u_char **, u_char **)); int dn_expand __P((const u_char *, const u_char *, const u_char *, u_char *, int)); int res_init __P((void)); int res_mkquery __P((int, const char *, int, int, const char *, int, const char *, char *, int)); int res_send __P((const char *, int, char *, int)); @ 1.1.1.4 log @import new and changed files from bind9 @ text @d1 4 a4 6 /* $NetBSD: resolv.h,v 1.1.1.1 2004/05/17 23:44:41 christos Exp $ */ /* * Copyright (c) 1983, 1987, 1989 * The Regents of the University of California. All rights reserved. * d15 2 a16 2 * This product includes software developed by the University of * California, Berkeley and its contributors. d20 1 a20 1 * a31 5 */ /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (c) 1996-1999 by Internet Software Consortium. d33 5 d40 15 a54 14 * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * @@(#)resolv.h 8.1 (Berkeley) 6/2/93 * Id: resolv.h,v 1.7.2.11.4.1 2004/03/09 08:33:29 marka Exp d60 1 a60 46 #include #if (!defined(BSD)) || (BSD < 199306) # include #else # include #endif #include #include #include #include /* * Revision information. This is the release date in YYYYMMDD format. * It can change every day so the right thing to do with it is use it * in preprocessor commands such as "#if (__RES > 19931104)". Do not * compare for equality; rather, use it to determine whether your resolver * is new enough to contain a certain feature. */ #define __RES 20030124 /* * This used to be defined in res_query.c, now it's in herror.c. * [XXX no it's not. It's in irs/irs_data.c] * It was * never extern'd by any *.h file before it was placed here. For thread * aware programs, the last h_errno value set is stored in res->h_errno. * * XXX: There doesn't seem to be a good reason for exposing RES_SET_H_ERRNO * (and __h_errno_set) to the public via . * XXX: __h_errno_set is really part of IRS, not part of the resolver. * If somebody wants to build and use a resolver that doesn't use IRS, * what do they do? Perhaps something like * #ifdef WANT_IRS * # define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x) * #else * # define RES_SET_H_ERRNO(r,x) (h_errno = (r)->res_h_errno = (x)) * #endif */ #define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x) struct __res_state; /* forward */ __BEGIN_DECLS void __h_errno_set(struct __res_state *res, int err); __END_DECLS d64 1 a64 1 * initial name server(s) to query and the domain search list. a70 25 typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } res_sendhookact; #ifndef __PMT #if defined(__STDC__) || defined(__cplusplus) #define __PMT(args) args #else #define __PMT(args) () #endif #endif typedef res_sendhookact (*res_send_qhook)__PMT((struct sockaddr * const *, const u_char **, int *, u_char *, int, int *)); typedef res_sendhookact (*res_send_rhook)__PMT((const struct sockaddr *, const u_char *, int, u_char *, int, int *)); struct res_sym { int number; /* Identifying number, like T_MX */ const char * name; /* Its symbolic name, like "MX" */ const char * humanname; /* Its fun name, like "mail exchanger" */ }; a79 8 #define MAXRESOLVSORT 10 /* number of net to sort on */ #define RES_MAXNDOTS 15 /* should reflect bit field size */ #define RES_MAXRETRANS 30 /* only for resolv.conf/RES_OPTIONS */ #define RES_MAXRETRY 5 /* only for resolv.conf/RES_OPTIONS */ #define RES_DFLRETRY 2 /* Default #/tries. */ #define RES_MAXTIME 65535 /* Infinity, in milliseconds. */ struct __res_state_ext; d82 1 a82 1 int retrans; /* retransmission time interval */ d84 1 a84 5 #ifdef sun u_int options; /* option flags - see below. */ #else u_long options; /* option flags - see below. */ #endif d86 1 a86 2 struct sockaddr_in nsaddr_list[MAXNS]; /* address of name server */ d88 1 a88 1 u_short id; /* current message id */ d90 2 a91 29 char defdname[256]; /* default domain (deprecated) */ #ifdef sun u_int pfcode; /* RES_PRF_ flags - see below. */ #else u_long pfcode; /* RES_PRF_ flags - see below. */ #endif unsigned ndots:4; /* threshold for initial abs. query */ unsigned nsort:4; /* number of elements in sort_list[] */ char unused[3]; struct { struct in_addr addr; u_int32_t mask; } sort_list[MAXRESOLVSORT]; res_send_qhook qhook; /* query hook */ res_send_rhook rhook; /* response hook */ int res_h_errno; /* last one set for this context */ int _vcsock; /* PRIVATE: for res_send VC i/o */ u_int _flags; /* PRIVATE: see below */ u_int _pad; /* make _u 64 bit aligned */ union { /* On an 32-bit arch this means 512b total. */ char pad[72 - 4*sizeof (int) - 2*sizeof (void *)]; struct { u_int16_t nscount; u_int16_t nstimes[MAXNS]; /* ms. */ int nssocks[MAXNS]; struct __res_state_ext *ext; /* extention for IPv6 */ } _ext; } _u; a93 31 typedef struct __res_state *res_state; union res_sockaddr_union { struct sockaddr_in sin; #ifdef IN6ADDR_ANY_INIT struct sockaddr_in6 sin6; #endif #ifdef ISC_ALIGN64 int64_t __align64; /* 64bit alignment */ #else int32_t __align32; /* 32bit alignment */ #endif char __space[128]; /* max size */ }; /* * Resolver flags (used to be discrete per-module statics ints). */ #define RES_F_VC 0x00000001 /* socket is TCP */ #define RES_F_CONN 0x00000002 /* socket is connected */ #define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors */ #define RES_F__UNUSED 0x00000008 /* (unused) */ #define RES_F_LASTMASK 0x000000F0 /* ordinal server of last res_nsend */ #define RES_F_LASTSHIFT 4 /* bit position of LASTMASK "flag" */ #define RES_GETLAST(res) (((res)._flags & RES_F_LASTMASK) >> RES_F_LASTSHIFT) /* res_findzonecut2() options */ #define RES_EXHAUSTIVE 0x00000001 /* always do all queries */ #define RES_IPV4ONLY 0x00000002 /* IPv4 only */ #define RES_IPV6ONLY 0x00000004 /* IPv6 only */ d97 10 a106 24 #define RES_INIT 0x00000001 /* address initialized */ #define RES_DEBUG 0x00000002 /* print debug messages */ #define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/ #define RES_USEVC 0x00000008 /* use virtual circuit */ #define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */ #define RES_IGNTC 0x00000020 /* ignore trucation errors */ #define RES_RECURSE 0x00000040 /* recursion desired */ #define RES_DEFNAMES 0x00000080 /* use default domain name */ #define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */ #define RES_DNSRCH 0x00000200 /* search up local domain tree */ #define RES_INSECURE1 0x00000400 /* type 1 security disabled */ #define RES_INSECURE2 0x00000800 /* type 2 security disabled */ #define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ #define RES_ROTATE 0x00004000 /* rotate ns list after each query */ #define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity. */ #define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */ #define RES_BLAST 0x00020000 /* blast all recursive servers */ #define RES_NOTLDQUERY 0x00100000 /* don't unqualified name as a tld */ #define RES_USE_DNSSEC 0x00200000 /* use DNSSEC using OK bit in OPT */ /* KAME extensions: use higher bit to avoid conflict with ISC use */ #define RES_USE_DNAME 0x10000000 /* use DNAME */ #define RES_USE_EDNS0 0x40000000 /* use EDNS0 if configured */ #define RES_NO_NIBBLE2 0x80000000 /* disable alternate nibble lookup */ d108 1 a108 2 #define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | \ RES_DNSRCH | RES_NO_NIBBLE2) d113 19 a131 17 #define RES_PRF_STATS 0x00000001 #define RES_PRF_UPDATE 0x00000002 #define RES_PRF_CLASS 0x00000004 #define RES_PRF_CMD 0x00000008 #define RES_PRF_QUES 0x00000010 #define RES_PRF_ANS 0x00000020 #define RES_PRF_AUTH 0x00000040 #define RES_PRF_ADD 0x00000080 #define RES_PRF_HEAD1 0x00000100 #define RES_PRF_HEAD2 0x00000200 #define RES_PRF_TTLID 0x00000400 #define RES_PRF_HEADX 0x00000800 #define RES_PRF_QUERY 0x00001000 #define RES_PRF_REPLY 0x00002000 #define RES_PRF_INIT 0x00004000 #define RES_PRF_TRUNC 0x00008000 /* 0x00010000 */ a132 8 /* Things involving an internal (static) resolver context. */ #ifdef _REENTRANT __BEGIN_DECLS extern struct __res_state *__res_state(void); __END_DECLS #define _res (*__res_state()) #else #ifndef __BIND_NOSTATIC a133 17 #endif #endif #ifndef __BIND_NOSTATIC #define fp_nquery __fp_nquery #define fp_query __fp_query #define hostalias __hostalias #define p_query __p_query #define res_close __res_close #define res_init __res_init #define res_isourserver __res_isourserver #define res_mkquery __res_mkquery #define res_query __res_query #define res_querydomain __res_querydomain #define res_search __res_search #define res_send __res_send #define res_sendsigned __res_sendsigned d135 9 d145 17 a161 184 void fp_nquery __P((const u_char *, int, FILE *)); void fp_query __P((const u_char *, FILE *)); const char * hostalias __P((const char *)); void p_query __P((const u_char *)); void res_close __P((void)); int res_init __P((void)); int res_isourserver __P((const struct sockaddr_in *)); int res_mkquery __P((int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int)); int res_query __P((const char *, int, int, u_char *, int)); int res_querydomain __P((const char *, const char *, int, int, u_char *, int)); int res_search __P((const char *, int, int, u_char *, int)); int res_send __P((const u_char *, int, u_char *, int)); int res_sendsigned __P((const u_char *, int, ns_tsig_key *, u_char *, int)); __END_DECLS #endif #if !defined(SHARED_LIBBIND) || defined(LIB) /* * If libbind is a shared object (well, DLL anyway) * these externs break the linker when resolv.h is * included by a lib client (like named) * Make them go away if a client is including this * */ extern const struct res_sym __p_key_syms[]; extern const struct res_sym __p_cert_syms[]; extern const struct res_sym __p_class_syms[]; extern const struct res_sym __p_type_syms[]; extern const struct res_sym __p_rcode_syms[]; #endif /* SHARED_LIBBIND */ #define b64_ntop __b64_ntop #define b64_pton __b64_pton #define dn_comp __dn_comp #define dn_count_labels __dn_count_labels #define dn_expand __dn_expand #define dn_skipname __dn_skipname #define fp_resstat __fp_resstat #define loc_aton __loc_aton #define loc_ntoa __loc_ntoa #define p_cdname __p_cdname #define p_cdnname __p_cdnname #define p_class __p_class #define p_fqname __p_fqname #define p_fqnname __p_fqnname #define p_option __p_option #define p_secstodate __p_secstodate #define p_section __p_section #define p_time __p_time #define p_type __p_type #define p_rcode __p_rcode #define p_sockun __p_sockun #define putlong __putlong #define putshort __putshort #define res_dnok __res_dnok #define res_findzonecut __res_findzonecut #define res_findzonecut2 __res_findzonecut2 #define res_hnok __res_hnok #define res_hostalias __res_hostalias #define res_mailok __res_mailok #define res_nameinquery __res_nameinquery #define res_nclose __res_nclose #define res_ninit __res_ninit #define res_nmkquery __res_nmkquery #define res_pquery __res_pquery #define res_nquery __res_nquery #define res_nquerydomain __res_nquerydomain #define res_nsearch __res_nsearch #define res_nsend __res_nsend #define res_nsendsigned __res_nsendsigned #define res_nisourserver __res_nisourserver #define res_ownok __res_ownok #define res_queriesmatch __res_queriesmatch #define res_randomid __res_randomid #define sym_ntop __sym_ntop #define sym_ntos __sym_ntos #define sym_ston __sym_ston #define res_nopt __res_nopt #define res_ndestroy __res_ndestroy #define res_nametoclass __res_nametoclass #define res_nametotype __res_nametotype #define res_setservers __res_setservers #define res_getservers __res_getservers #define res_buildprotolist __res_buildprotolist #define res_destroyprotolist __res_destroyprotolist #define res_destroyservicelist __res_destroyservicelist #define res_get_nibblesuffix __res_get_nibblesuffix #define res_get_nibblesuffix2 __res_get_nibblesuffix2 #define res_ourserver_p __res_ourserver_p #define res_protocolname __res_protocolname #define res_protocolnumber __res_protocolnumber #define res_send_setqhook __res_send_setqhook #define res_send_setrhook __res_send_setrhook #define res_servicename __res_servicename #define res_servicenumber __res_servicenumber __BEGIN_DECLS int res_hnok __P((const char *)); int res_ownok __P((const char *)); int res_mailok __P((const char *)); int res_dnok __P((const char *)); int sym_ston __P((const struct res_sym *, const char *, int *)); const char * sym_ntos __P((const struct res_sym *, int, int *)); const char * sym_ntop __P((const struct res_sym *, int, int *)); int b64_ntop __P((u_char const *, size_t, char *, size_t)); int b64_pton __P((char const *, u_char *, size_t)); int loc_aton __P((const char *, u_char *)); const char * loc_ntoa __P((const u_char *, char *)); int dn_skipname __P((const u_char *, const u_char *)); void putlong __P((u_int32_t, u_char *)); void putshort __P((u_int16_t, u_char *)); #ifndef __ultrix__ u_int16_t _getshort __P((const u_char *)); u_int32_t _getlong __P((const u_char *)); #endif const char * p_class __P((int)); const char * p_time __P((u_int32_t)); const char * p_type __P((int)); const char * p_rcode __P((int)); const char * p_sockun __P((union res_sockaddr_union, char *, size_t)); const u_char * p_cdnname __P((const u_char *, const u_char *, int, FILE *)); const u_char * p_cdname __P((const u_char *, const u_char *, FILE *)); const u_char * p_fqnname __P((const u_char *, const u_char *, int, char *, int)); const u_char * p_fqname __P((const u_char *, const u_char *, FILE *)); const char * p_option __P((u_long)); char * p_secstodate __P((u_long)); int dn_count_labels __P((const char *)); int dn_comp __P((const char *, u_char *, int, u_char **, u_char **)); int dn_expand __P((const u_char *, const u_char *, const u_char *, char *, int)); u_int res_randomid __P((void)); int res_nameinquery __P((const char *, int, int, const u_char *, const u_char *)); int res_queriesmatch __P((const u_char *, const u_char *, const u_char *, const u_char *)); const char * p_section __P((int, int)); /* Things involving a resolver context. */ int res_ninit __P((res_state)); int res_nisourserver __P((const res_state, const struct sockaddr_in *)); void fp_resstat __P((const res_state, FILE *)); void res_pquery __P((const res_state, const u_char *, int, FILE *)); const char * res_hostalias __P((const res_state, const char *, char *, size_t)); int res_nquery __P((res_state, const char *, int, int, u_char *, int)); int res_nsearch __P((res_state, const char *, int, int, u_char *, int)); int res_nquerydomain __P((res_state, const char *, const char *, int, int, u_char *, int)); int res_nmkquery __P((res_state, int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int)); int res_nsend __P((res_state, const u_char *, int, u_char *, int)); int res_nsendsigned __P((res_state, const u_char *, int, ns_tsig_key *, u_char *, int)); int res_findzonecut __P((res_state, const char *, ns_class, int, char *, size_t, struct in_addr *, int)); int res_findzonecut2 __P((res_state, const char *, ns_class, int, char *, size_t, union res_sockaddr_union *, int)); void res_nclose __P((res_state)); int res_nopt __P((res_state, int, u_char *, int, int)); void res_send_setqhook __P((res_send_qhook)); void res_send_setrhook __P((res_send_rhook)); int __res_vinit __P((res_state, int)); void res_destroyservicelist __P((void)); const char * res_servicename __P((u_int16_t, const char *)); const char * res_protocolname __P((int)); void res_destroyprotolist __P((void)); void res_buildprotolist __P((void)); const char * res_get_nibblesuffix __P((res_state)); const char * res_get_nibblesuffix2 __P((res_state)); void res_ndestroy __P((res_state)); u_int16_t res_nametoclass __P((const char *, int *)); u_int16_t res_nametotype __P((const char *, int *)); void res_setservers __P((res_state, const union res_sockaddr_union *, int)); int res_getservers __P((res_state, union res_sockaddr_union *, int)); @ 1.1.1.5 log @Re-import these. I imported the old ones accidentally. @ text @d1 1 a1 1 /* $NetBSD: resolv.h,v 1.1.1.2 2004/11/06 23:55:25 christos Exp $ */ d55 1 a55 1 * Id: resolv.h,v 1.7.2.11.4.2 2004/06/25 00:41:05 marka Exp a258 1 /* #define RES_DEBUG2 0x00400000 */ /* nslookup internal */ @ 1.1.1.6 log @import files from bind-9-4-0-rc2 @ text @d1 2 d53 1 a53 1 /*% d55 1 a55 1 * $Id: resolv.h,v 1.19.18.3 2005/08/25 04:43:51 marka Exp $ d72 1 a72 1 /*% d82 1 a82 1 /*% d102 1 a102 1 struct __res_state; /*%< forward */ d107 1 a107 1 /*% d137 3 a139 3 int number; /*%< Identifying number, like T_MX */ const char * name; /*%< Its symbolic name, like "MX" */ const char * humanname; /*%< Its fun name, like "mail exchanger" */ d142 1 a142 1 /*% d145 13 a157 11 #define MAXNS 3 /*%< max # name servers we'll track */ #define MAXDFLSRCH 3 /*%< # default domain levels to try */ #define MAXDNSRCH 6 /*%< max # domains in search path */ #define LOCALDOMAINPARTS 2 /*%< min levels in name that is "local" */ #define RES_TIMEOUT 5 /*%< min. seconds between retries */ #define MAXRESOLVSORT 10 /*%< number of net to sort on */ #define RES_MAXNDOTS 15 /*%< should reflect bit field size */ #define RES_MAXRETRANS 30 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_MAXRETRY 5 /*%< only for resolv.conf/RES_OPTIONS */ #define RES_DFLRETRY 2 /*%< Default #/tries. */ #define RES_MAXTIME 65535 /*%< Infinity, in milliseconds. */ d161 2 a162 2 int retrans; /*%< retransmission time interval */ int retry; /*%< number of times to retransmit */ d164 1 a164 1 u_int options; /*%< option flags - see below. */ d166 1 a166 1 u_long options; /*%< option flags - see below. */ d168 1 a168 1 int nscount; /*%< number of name servers */ d170 5 a174 5 nsaddr_list[MAXNS]; /*%< address of name server */ #define nsaddr nsaddr_list[0] /*%< for backward compatibility */ u_short id; /*%< current message id */ char *dnsrch[MAXDNSRCH+1]; /*%< components of domain to search */ char defdname[256]; /*%< default domain (deprecated) */ d176 1 a176 1 u_int pfcode; /*%< RES_PRF_ flags - see below. */ d178 1 a178 1 u_long pfcode; /*%< RES_PRF_ flags - see below. */ d180 2 a181 2 unsigned ndots:4; /*%< threshold for initial abs. query */ unsigned nsort:4; /*%< number of elements in sort_list[] */ d187 6 a192 6 res_send_qhook qhook; /*%< query hook */ res_send_rhook rhook; /*%< response hook */ int res_h_errno; /*%< last one set for this context */ int _vcsock; /*%< PRIVATE: for res_send VC i/o */ u_int _flags; /*%< PRIVATE: see below */ u_int _pad; /*%< make _u 64 bit aligned */ d198 1 a198 1 u_int16_t nstimes[MAXNS]; /*%< ms. */ d200 1 a200 1 struct __res_state_ext *ext; /*%< extention for IPv6 */ d213 1 a213 1 int64_t __align64; /*%< 64bit alignment */ d215 1 a215 1 int32_t __align32; /*%< 32bit alignment */ d217 1 a217 1 char __space[128]; /*%< max size */ d220 1 a220 1 /*% d223 6 a228 6 #define RES_F_VC 0x00000001 /*%< socket is TCP */ #define RES_F_CONN 0x00000002 /*%< socket is connected */ #define RES_F_EDNS0ERR 0x00000004 /*%< EDNS0 caused errors */ #define RES_F__UNUSED 0x00000008 /*%< (unused) */ #define RES_F_LASTMASK 0x000000F0 /*%< ordinal server of last res_nsend */ #define RES_F_LASTSHIFT 4 /*%< bit position of LASTMASK "flag" */ d232 3 a234 3 #define RES_EXHAUSTIVE 0x00000001 /*%< always do all queries */ #define RES_IPV4ONLY 0x00000002 /*%< IPv4 only */ #define RES_IPV6ONLY 0x00000004 /*%< IPv6 only */ d236 1 a236 1 /*% d239 20 a258 20 #define RES_INIT 0x00000001 /*%< address initialized */ #define RES_DEBUG 0x00000002 /*%< print debug messages */ #define RES_AAONLY 0x00000004 /*%< authoritative answers only (!IMPL)*/ #define RES_USEVC 0x00000008 /*%< use virtual circuit */ #define RES_PRIMARY 0x00000010 /*%< query primary server only (!IMPL) */ #define RES_IGNTC 0x00000020 /*%< ignore trucation errors */ #define RES_RECURSE 0x00000040 /*%< recursion desired */ #define RES_DEFNAMES 0x00000080 /*%< use default domain name */ #define RES_STAYOPEN 0x00000100 /*%< Keep TCP socket open */ #define RES_DNSRCH 0x00000200 /*%< search up local domain tree */ #define RES_INSECURE1 0x00000400 /*%< type 1 security disabled */ #define RES_INSECURE2 0x00000800 /*%< type 2 security disabled */ #define RES_NOALIASES 0x00001000 /*%< shuts off HOSTALIASES feature */ #define RES_USE_INET6 0x00002000 /*%< use/map IPv6 in gethostbyname() */ #define RES_ROTATE 0x00004000 /*%< rotate ns list after each query */ #define RES_NOCHECKNAME 0x00008000 /*%< do not check names for sanity. */ #define RES_KEEPTSIG 0x00010000 /*%< do not strip TSIG records */ #define RES_BLAST 0x00020000 /*%< blast all recursive servers */ #define RES_NOTLDQUERY 0x00100000 /*%< don't unqualified name as a tld */ #define RES_USE_DNSSEC 0x00200000 /*%< use DNSSEC using OK bit in OPT */ d261 3 a263 3 #define RES_USE_DNAME 0x10000000 /*%< use DNAME */ #define RES_USE_EDNS0 0x40000000 /*%< use EDNS0 if configured */ #define RES_NO_NIBBLE2 0x80000000 /*%< disable alternate nibble lookup */ d268 1 a268 1 /*% a295 5 #ifdef __linux __BEGIN_DECLS extern struct __res_state * __res_state(void); __END_DECLS #endif a503 1 /*! \file */ @ 1.1.1.7 log @Import bind 9.4.0. @ text @a0 2 /* $NetBSD$ */ d53 1 a53 1 * Id: resolv.h,v 1.19.18.3 2005/08/25 04:43:51 marka Exp @ 1.1.1.8 log @import libbind include files. @ text @d1 1 a1 18 /* $NetBSD: resolv.h,v 1.1.1.1 2009/04/12 15:33:33 christos Exp $ */ /* * Portions Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1995-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ d6 1 a6 1 * d22 1 a22 1 * d36 17 d55 1 a55 1 * Id: resolv.h,v 1.30 2009/03/03 01:52:48 each Exp d80 1 a80 1 #define __RES 20090302 d130 1 a130 1 u_char *, int, int *); d134 1 a134 1 int, int *); d183 1 a183 1 uint32_t mask; a189 1 u_char _rnd[16]; /*%< PRIVATE: random state */ d193 1 a193 1 char pad[56 - 4*sizeof (int) - 2*sizeof (void *)]; d195 2 a196 2 uint16_t nscount; uint16_t nstimes[MAXNS]; /*%< ms. */ a254 1 #define RES_NSID 0x00040000 /*%< request name server ID */ d320 16 a335 16 void fp_nquery(const u_char *, int, FILE *); void fp_query(const u_char *, FILE *); const char * hostalias(const char *); void p_query(const u_char *); void res_close(void); int res_init(void); int res_isourserver(const struct sockaddr_in *); int res_mkquery(int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int); int res_query(const char *, int, int, u_char *, int); int res_querydomain(const char *, const char *, int, int, u_char *, int); int res_search(const char *, int, int, u_char *, int); int res_send(const u_char *, int, u_char *, int); int res_sendsigned(const u_char *, int, ns_tsig_key *, u_char *, int); d342 1 a342 1 * these externs break the linker when resolv.h is a395 1 #define res_rndinit __res_rndinit a396 1 #define res_nrandomid __res_nrandomid a400 1 #define res_nopt_rdata __res_nopt_rdata d419 14 a432 14 int res_hnok(const char *); int res_ownok(const char *); int res_mailok(const char *); int res_dnok(const char *); int sym_ston(const struct res_sym *, const char *, int *); const char * sym_ntos(const struct res_sym *, int, int *); const char * sym_ntop(const struct res_sym *, int, int *); int b64_ntop(u_char const *, size_t, char *, size_t); int b64_pton(char const *, u_char *, size_t); int loc_aton(const char *, u_char *); const char * loc_ntoa(const u_char *, char *); int dn_skipname(const u_char *, const u_char *); void putlong(uint32_t, u_char *); void putshort(uint16_t, u_char *); d434 2 a435 2 uint16_t _getshort(const u_char *); uint32_t _getlong(const u_char *); d437 23 a459 25 const char * p_class(int); const char * p_time(uint32_t); const char * p_type(int); const char * p_rcode(int); const char * p_sockun(union res_sockaddr_union, char *, size_t); const u_char * p_cdnname(const u_char *, const u_char *, int, FILE *); const u_char * p_cdname(const u_char *, const u_char *, FILE *); const u_char * p_fqnname(const u_char *, const u_char *, int, char *, int); const u_char * p_fqname(const u_char *, const u_char *, FILE *); const char * p_option(u_long); char * p_secstodate(u_long); int dn_count_labels(const char *); int dn_comp(const char *, u_char *, int, u_char **, u_char **); int dn_expand(const u_char *, const u_char *, const u_char *, char *, int); void res_rndinit(res_state); u_int res_randomid(void); u_int res_nrandomid(res_state); int res_nameinquery(const char *, int, int, const u_char *, const u_char *); int res_queriesmatch(const u_char *, const u_char *, const u_char *, const u_char *); const char * p_section(int, int); d461 14 a474 14 int res_ninit(res_state); int res_nisourserver(const res_state, const struct sockaddr_in *); void fp_resstat(const res_state, FILE *); void res_pquery(const res_state, const u_char *, int, FILE *); const char * res_hostalias(const res_state, const char *, char *, size_t); int res_nquery(res_state, const char *, int, int, u_char *, int); int res_nsearch(res_state, const char *, int, int, u_char *, int); int res_nquerydomain(res_state, const char *, const char *, int, int, u_char *, int); int res_nmkquery(res_state, int, const char *, int, int, d476 7 a482 7 u_char *, int); int res_nsend(res_state, const u_char *, int, u_char *, int); int res_nsendsigned(res_state, const u_char *, int, ns_tsig_key *, u_char *, int); int res_findzonecut(res_state, const char *, ns_class, int, char *, size_t, struct in_addr *, int); int res_findzonecut2(res_state, const char *, ns_class, int, d484 20 a503 22 union res_sockaddr_union *, int); void res_nclose(res_state); int res_nopt(res_state, int, u_char *, int, int); int res_nopt_rdata(res_state, int, u_char *, int, u_char *, u_short, u_short, u_char *); void res_send_setqhook(res_send_qhook); void res_send_setrhook(res_send_rhook); int __res_vinit(res_state, int); void res_destroyservicelist(void); const char * res_servicename(uint16_t, const char *); const char * res_protocolname(int); void res_destroyprotolist(void); void res_buildprotolist(void); const char * res_get_nibblesuffix(res_state); const char * res_get_nibblesuffix2(res_state); void res_ndestroy(res_state); uint16_t res_nametoclass(const char *, int *); uint16_t res_nametotype(const char *, int *); void res_setservers(res_state, const union res_sockaddr_union *, int); int res_getservers(res_state, union res_sockaddr_union *, int); d507 1 @