953 lines
40 KiB
Plaintext
953 lines
40 KiB
Plaintext
|
@(#)RELEASE_NOTES e07@nikhef.nl (Eric Wassenaar) 961113
|
||
|
|
||
|
yymmdd Description of changes per release
|
||
|
TODO Things that still need to be done
|
||
|
WISHLIST Wishes expressed by various people
|
||
|
NOTES Important issues to keep in mind
|
||
|
MISC Miscellaneous reminders
|
||
|
|
||
|
# ----------------------------------------------------------------------
|
||
|
# Description of changes per release
|
||
|
# ----------------------------------------------------------------------
|
||
|
|
||
|
961113
|
||
|
Portability fix.
|
||
|
Trying to include <strings.h> was a bit over-ambitious
|
||
|
and caused confusion on some platforms.
|
||
|
On certain platforms PAGESIZE is not a constant, but
|
||
|
hides a sysconf() call. This precludes initialization
|
||
|
of static variables in malloc.c
|
||
|
There are no functional changes in this release.
|
||
|
|
||
|
961013
|
||
|
Configurable defaults.
|
||
|
Make the compiled-in read timeout during stream I/O
|
||
|
configurable in conf.h. The default value is 60 seconds.
|
||
|
Make the new default _res.retry and _res.retrans values
|
||
|
configurable in conf.h. Note that the _res.retrans value
|
||
|
can be overridden with the -s command line option.
|
||
|
Minor fixes.
|
||
|
Guard against possible interrupts during I/O handling.
|
||
|
|
||
|
961012
|
||
|
Multiple answers during zone listing.
|
||
|
Allow multiple resource records per reply buffer packet
|
||
|
during zone transfers. Currently BIND puts each resource
|
||
|
record in a seperate reply buffer, but there are other
|
||
|
implementations which behave differently. Important fix.
|
||
|
|
||
|
961010
|
||
|
New resource records and query types.
|
||
|
Add support for T_NAPTR resource records.
|
||
|
Define T_EID/T_NIMLOC/T_ATMA resource record types, but
|
||
|
they have no support yet.
|
||
|
Minor fixes.
|
||
|
When comparing domain names in routines indomain() or
|
||
|
samedomain(), properly handle embedded quoted dots.
|
||
|
This is just a generalization. Currently these modules
|
||
|
are used only in those cases where embedded quoted dots
|
||
|
are not valid.
|
||
|
Miscellaneous changes.
|
||
|
Attempt to further reduce lint clutter. It is difficult
|
||
|
to eliminate this altogether. There are too many subtle
|
||
|
differences between various platforms.
|
||
|
|
||
|
960929
|
||
|
New resource records and query types.
|
||
|
Define the new IXFR type as per RFC 1995. No support
|
||
|
for this yet, however.
|
||
|
Add support for T_KEY and T_SIG resource records.
|
||
|
These require some new utility functions.
|
||
|
Recognize T_NXT and T_SRV which still have draft status.
|
||
|
Extra safety checks.
|
||
|
After a positive return from an ordinary gethostbyname
|
||
|
or gethostbyaddr we cannot be absolutely sure that the
|
||
|
size of the canonical h_name is within bounds.
|
||
|
Note that this is guaranteed by host's internal modules.
|
||
|
Minor fixes.
|
||
|
Be more restrictive with respect to wildcard checking.
|
||
|
Make sure it is really specified as the first label.
|
||
|
Construct reverse in-addr.arpa name without trailing dot
|
||
|
if we know that this is already an absolute name.
|
||
|
Miscellaneous changes.
|
||
|
Print also the input name we are going to hostalias().
|
||
|
Rename a few variables for better readability.
|
||
|
Add various definitions that might be missing in the
|
||
|
default include files on some weird platforms.
|
||
|
Use a configurable limit for the number of recursive
|
||
|
chain lookups.
|
||
|
Some cleanup to avoid lint warnings on some platforms.
|
||
|
Revised manual page.
|
||
|
Some items needed an update.
|
||
|
Extend the list of related RFCs.
|
||
|
Several layout changes, suggested by Greg Woods.
|
||
|
|
||
|
960921
|
||
|
Extend functionality of -A option.
|
||
|
If the -A flag is specified along with any explicit
|
||
|
list mode option, it not only enables reversed address
|
||
|
checking, it also enables those special checks that are
|
||
|
normally suppressed during recursive listings, such as
|
||
|
checks for canonical host names and invalid underscores.
|
||
|
Revise -p option plus explicit server.
|
||
|
Consider the set of NS servers gotten from an explicit
|
||
|
server as authoritative if the -p option is also given.
|
||
|
This affects whether or not to print lame delegation
|
||
|
warnings in case the SOA record could not be retrieved.
|
||
|
Suppress lame delegation warnings in case the A records
|
||
|
for NS servers could not be retrieved and an explicit
|
||
|
server is specified. The latter was an oversight.
|
||
|
Indicated by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>
|
||
|
Improve error reporting.
|
||
|
After a negative return from an ordinary gethostbyname
|
||
|
or gethostbyaddr we don't know whether or not the answer
|
||
|
was authoritative. Perform an extra lookup in some few
|
||
|
cases where we really want to distinguish between them.
|
||
|
This is kludgy, and needs improvement.
|
||
|
Revise additional checking during RR printout.
|
||
|
This prevents possible recursive loops in some cases.
|
||
|
Requires adapting the way state information is passed
|
||
|
via print_info() and print_rrec().
|
||
|
Make query section consistency checks.
|
||
|
When retrieving certain crucial information, such as
|
||
|
SOA or NS records, make sure the qdcount is exactly one
|
||
|
as it should be.
|
||
|
The values in the query section in a reply should match
|
||
|
those in the original query. This is already enforced
|
||
|
by the BIND 4.9 res_send(). An error is reported when a
|
||
|
mismatch is detected, but results are processed anyway.
|
||
|
Make sure response comes from a known server.
|
||
|
When using datagrams, compare the source address of the
|
||
|
response to the list of known servers. Ignore the answer
|
||
|
if there is a mismatch. Was missing for HOST_RES_SEND.
|
||
|
Minor bug fixes.
|
||
|
When retrieving SOA records, make sure they belong to
|
||
|
the requested domain.
|
||
|
Must properly set h_errno in some obscure circumstances.
|
||
|
Miscellaneous changes.
|
||
|
Clear the entire sockaddr_in before filling in the
|
||
|
relevant entries. Some platforms seem to rely on
|
||
|
sin_zero being actually zero.
|
||
|
|
||
|
960808
|
||
|
Conform to BIND 4.9.5 interpretation of TXT strings.
|
||
|
When multiple strings are encoded, they are now treated
|
||
|
and printed as individual quoted strings, separated by
|
||
|
whitespace. Formerly, they were concatenated and printed
|
||
|
as one single quoted string.
|
||
|
Note that this interpretation makes the TXT data field
|
||
|
multi-valued, and precludes the use of strings that are
|
||
|
longer than 255 characters.
|
||
|
|
||
|
960512
|
||
|
Allocate list of host data dynamically.
|
||
|
This avoids the MAXHOSTS static limit, and keeps the
|
||
|
initial BSS of the executable to a reasonable size.
|
||
|
Mentioned by Greg Woods <woods@most.weird.com>
|
||
|
The list will be expanded in chunks as needed during
|
||
|
zone transfers, but will not shrink again.
|
||
|
Escape special characters within quoted strings.
|
||
|
Data fields of TXT/HINFO/UINFO records are printed as
|
||
|
quoted strings. Some special embedded characters should
|
||
|
be backslash-escaped in the output format.
|
||
|
Properly handle tcp packet overflow.
|
||
|
If the supplied answer buffer space is insufficient to
|
||
|
store the entire answer, res_send() is supposed to
|
||
|
return the length of the entire untruncated answer, not
|
||
|
the number of bytes that are actually available.
|
||
|
Increase MAXPACKET packet buffer size.
|
||
|
This is now set to the maximum value used internally
|
||
|
by the BIND named. The same value is used by dig.
|
||
|
Although still static, it should be sufficient.
|
||
|
Miscellaneous changes.
|
||
|
Show the length of the received answer in various debug
|
||
|
messages. This gives some insight in case of truncation.
|
||
|
|
||
|
960417
|
||
|
Rudimentary support for AAAA RR.
|
||
|
Just decode and print the ip v6 address during regular
|
||
|
RR type processing, in the most straightforward way.
|
||
|
No provisions for reverse lookups yet.
|
||
|
Increase MAXPACKET packet buffer size.
|
||
|
The traditional value 1024 for the (tcp) packet size is
|
||
|
no longer sufficient (see moderators.uu.net MX records).
|
||
|
Miscellaneous changes.
|
||
|
In verbose mode, show the number of bytes in the answer
|
||
|
if it exceeds the (udp) packet size PACKETSZ (512), or
|
||
|
in case the answer is truncated. Print the truncation
|
||
|
indication at a more appropriate position.
|
||
|
|
||
|
951231
|
||
|
Cosmetic changes.
|
||
|
Print all relevant messages in debug mode to stdout,
|
||
|
and appropriately prefix them with ";; " to conform
|
||
|
with the BIND 4.9.3 conventions.
|
||
|
Miscellaneous changes.
|
||
|
Consider the all-ones broadcast address a fake address.
|
||
|
|
||
|
951024
|
||
|
Avoid potential alignment conflicts.
|
||
|
Allocate socket addresses of type struct sockaddr_in
|
||
|
instead of type struct sockaddr. The first one has
|
||
|
stricter alignment restrictions, although they have
|
||
|
the same size.
|
||
|
Correct various misspellings.
|
||
|
Noted by Keith Bostic <bostic@bsdi.com>
|
||
|
|
||
|
950925
|
||
|
Portability fix.
|
||
|
Refine type definitions for the arguments to various
|
||
|
resolver routines to be even more backward compatible,
|
||
|
and to avoid compilation or lint warning messages on
|
||
|
new platforms. It should run clean on BSD44 systems.
|
||
|
There are no functional changes in this release.
|
||
|
|
||
|
950923
|
||
|
Add new -z option to list delegated zones in a zone.
|
||
|
This is a new variant of the zone listing specials.
|
||
|
A zone transfer is done, and only the names of the
|
||
|
encountered delegated zones are printed.
|
||
|
This option is undocumented, and subject to change.
|
||
|
Sort list of delegated zones alphabetically.
|
||
|
Before acting on delegated zones during zone listings,
|
||
|
sort them in alphabetical order for prettier output.
|
||
|
Portability fix.
|
||
|
The BIND 4.9.3 resolver routines require the passed
|
||
|
buffer arguments to be of type u_char instead of char.
|
||
|
This causes a prototype mismatch for HOST_RES_SEND.
|
||
|
Mentioned by Geert Jan de Groot <geertj@ripe.net>
|
||
|
Minor command option functionality change.
|
||
|
The -L flag, when given without any other list mode
|
||
|
option, now implies the -l option.
|
||
|
Miscellaneous code cleanup.
|
||
|
Pass the name of the actually contacted server during
|
||
|
zone listings in more elegant way.
|
||
|
Avoid (harmless) lint warnings on picky platforms.
|
||
|
|
||
|
950822
|
||
|
Fix bug in recursive lookup handling.
|
||
|
During recursive lookups, e.g. when following CNAME
|
||
|
chains, querynames are always assumed to be already
|
||
|
fully qualified, and must be tried ``as is''.
|
||
|
The classical example of a CNAME that points to the
|
||
|
pseudo "localhost.", or an erroneously dot-terminated
|
||
|
single name, should not be subject to local aliasing
|
||
|
or search list processing. They were.
|
||
|
Reported by Alexander Dupuy <dupuy@smarts.com>
|
||
|
|
||
|
950809
|
||
|
Portability fix.
|
||
|
Check for SVR4 as well as for SYSV in port.h, which is
|
||
|
necessary for compilation via the master BIND Makefile.
|
||
|
Suggested by <Piete.Brooks@cl.cam.ac.uk>
|
||
|
There are no functional changes in this release.
|
||
|
|
||
|
950502
|
||
|
Maintain hash list for zone name lookups.
|
||
|
This should not be really necessary for most practical
|
||
|
purposes, but it makes processing of the .in-addr.arpa
|
||
|
zone and even the .COM zone at least feasible.
|
||
|
The latter still requires quite a lot of memory, and
|
||
|
some cpu time to filter out the glue records from its
|
||
|
50000 A records and 110000 NS records.
|
||
|
The toplevel zone count as of today is:
|
||
|
COM 50000 delegated zones
|
||
|
IN-ADDR.ARPA 30000 delegated zones
|
||
|
ORG 5000 delegated zones
|
||
|
NET 3000 delegated zones
|
||
|
EDU 2000 delegated zones
|
||
|
Suppress various checks in quiet mode.
|
||
|
This avoids costly checks and achieves some speedup
|
||
|
in cases that nothing would have been printed anyway.
|
||
|
Supply alternative recv_sock() module.
|
||
|
The select() system call may fail on the solaris 2.4
|
||
|
platform without appropriate patches. An alarm can be
|
||
|
used instead, at the cost of extra system call overhead.
|
||
|
|
||
|
950429
|
||
|
Fix bug in error reporting.
|
||
|
The name and address of the contacted server during
|
||
|
zone listings could be clobbered by intermediate
|
||
|
calls to res_send().
|
||
|
|
||
|
950427
|
||
|
Fix glitch in host name lookup.
|
||
|
New entry would be inadvertently added to the hash
|
||
|
list in case the MAXHOSTS limit was reached.
|
||
|
Miscellaneous changes.
|
||
|
Speedup comparison of zone names and host names by
|
||
|
looking up zone names in the host name hash list.
|
||
|
|
||
|
950407
|
||
|
Maintain hash list for host name lookups.
|
||
|
A linear search through the per-zone host name table
|
||
|
becomes very costly for zones with several thousands
|
||
|
of hosts. Significant speedup is achieved.
|
||
|
Even for recursive listings of many small zones the
|
||
|
reduction of total processing time is noticeable.
|
||
|
|
||
|
950318
|
||
|
Increase (static) maximum number of hosts.
|
||
|
This avoids imposing arbitrary limits in most cases.
|
||
|
|
||
|
950302
|
||
|
Prevent zone transfer for certain zones.
|
||
|
Some zones are known to contain bogus information.
|
||
|
E.g. definition of A records for all possible addresses
|
||
|
in a class-B network will bias the hostcount.
|
||
|
Add new -N option to define an explicit list of zones
|
||
|
for which a zone transfer is deliberately skipped.
|
||
|
Requested by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>
|
||
|
Miscellaneous code cleanup.
|
||
|
Split off various tasks from monolithic list_zone().
|
||
|
Invert the double matching loop in sort_servers().
|
||
|
Fix glitch when comparing matching domain labels.
|
||
|
|
||
|
950115
|
||
|
Sort list of nameservers for a zone.
|
||
|
When the NS records for a zone are issued in BIND 4.9
|
||
|
round-robin fashion, this may yield an unfavorable
|
||
|
order for doing zone transfers. Apply some heuristic
|
||
|
to sort them according to preference, giving priority
|
||
|
to servers within your own domain or parent domains.
|
||
|
Add new option -P to define an explicit list of domains
|
||
|
of preferred servers, giving priority to matching ones.
|
||
|
Suggested by Marten Terpstra <marten@ripe.net>
|
||
|
Don't suppress certain rr data any more.
|
||
|
The preference value in the MX/RT/PX records and the
|
||
|
version number in the AFSDB record was suppressed in
|
||
|
non-verbose mode, unless the -T option was specified.
|
||
|
These values are now printed by default.
|
||
|
Requested by Geert Jan de Groot <geertj@ripe.net>
|
||
|
|
||
|
941210
|
||
|
Adapt implementation of LOC RR.
|
||
|
The binary data format has already changed twice:
|
||
|
the four 4-bit fields are now four 8-bit fields,
|
||
|
and log2 encoding has changed to power-of-10 encoding.
|
||
|
Support for this will be incorporated in BIND 4.9.3.
|
||
|
Still undocumented in the host manual page.
|
||
|
|
||
|
941206
|
||
|
Compatibility with BIND 4.9.3.
|
||
|
The NOCHANGE query response has now been conditionally
|
||
|
defined via #ifdef ALLOW_UPDATES. Older versions of
|
||
|
BIND may still return this (should have been FORMERR).
|
||
|
Improve error reporting.
|
||
|
Define a special h_errno status SERVER_FAILURE for the
|
||
|
case a SERVFAIL query response is returned. This is
|
||
|
used to report lame delegations during SOA checking
|
||
|
or zone transfers. Servers may return this code when
|
||
|
the zone data has expired altogether. This is not a
|
||
|
TRY_AGAIN situation if such server is authoritative.
|
||
|
Suggested by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>
|
||
|
Rename special status NOT_AVAILABLE to QUERY_REFUSED.
|
||
|
Various minor changes.
|
||
|
Check for invalid characters in T_AAAA record names.
|
||
|
Print optional protocol and port from T_A record
|
||
|
after a comment sign. Not sure whether this has ever
|
||
|
been used.
|
||
|
|
||
|
941129
|
||
|
Implement LOC RR as defined by preliminary draft-RFC.
|
||
|
Requires conversion routines for spherical position,
|
||
|
vertical position, and precision.
|
||
|
Tested on big-endian, little-endian, Alpha, Cray.
|
||
|
This is only a pre-release.
|
||
|
Undocumented until RFC gets public.
|
||
|
|
||
|
941125
|
||
|
Recognize new RR types as reserved by RFC 1700.
|
||
|
Implement PX RR type as defined per RFC 1664.
|
||
|
Implement GPOS RR type as defined per RFC 1712.
|
||
|
Include few simple utility scripts.
|
||
|
These are just examples of wrappers to host.
|
||
|
nslookup -- emulate most functions of the real one.
|
||
|
mxlookup -- lookup records at each of its servers.
|
||
|
|
||
|
941006
|
||
|
Lessen restrictions for certain tests.
|
||
|
The checks for invalid underscores and canonical host
|
||
|
names were suppressed during recursive zone listings
|
||
|
on all levels. They are now suppressed only when not
|
||
|
operating on the base level. This enables the checks
|
||
|
during the ``host -C -L 1'' command.
|
||
|
Extend functionality of -A option.
|
||
|
If the -A flag is specified along with any explicit
|
||
|
list mode option, it enables reversed address checking.
|
||
|
The address of each encountered A record is reverse
|
||
|
mapped, and it is checked whether it is registered and
|
||
|
maps back to the A record name. This flag can safely
|
||
|
be specified in the ``host -CA -L 1'' command.
|
||
|
Add new -W option to list wildcard records in a zone.
|
||
|
This is a new variant of the zone listing specials.
|
||
|
A zone transfer is done, and only wildcard records
|
||
|
are printed. The default resource record type is MX.
|
||
|
This option is undocumented, and subject to change.
|
||
|
|
||
|
941004
|
||
|
Improve printout.
|
||
|
Include conversion of the various time values from the
|
||
|
SOA record in the comment part during ordinary printout.
|
||
|
|
||
|
941002
|
||
|
Call alternative res_debug print routine if available.
|
||
|
In BIND 4.9.* an alternative module is present which
|
||
|
accepts (as it should) the size of the query buffer.
|
||
|
Rearrange include files.
|
||
|
Move configuration definitions to new conf.h.
|
||
|
|
||
|
940917
|
||
|
Improve support for NSAP records, as per RFC 1637.
|
||
|
Print ordinary NSAP addresses with separating dots,
|
||
|
after the 1-byte AFI, then after every 2 bytes.
|
||
|
Add new option -n to generate reverse NSAP within the
|
||
|
nsap.int domain, similar to the -i option.
|
||
|
Print reverse NSAP in forward notation, unless forced
|
||
|
to print full zone file format.
|
||
|
|
||
|
940911
|
||
|
Verify that some host names are canonical.
|
||
|
This is formally required, but also in practice highly
|
||
|
desirable. The target hosts in NS and MX records only
|
||
|
are verified, being the most crucial.
|
||
|
Currently the test is skipped during recursive zone
|
||
|
processing, to avoid excessive output of non-canonical
|
||
|
MX targets.
|
||
|
When figuring out the nameservers for a zone before
|
||
|
doing a zone transfer, a non-canonical nameserver name
|
||
|
is always reported.
|
||
|
Report illegal domain names.
|
||
|
This is now done by default for 'host' related domain
|
||
|
names. The A and MX record names and NS and MX target
|
||
|
names are checked only.
|
||
|
Only alphanumeric characters and hyphen '-' are valid.
|
||
|
Currently the reporting of names containing underscores
|
||
|
is suppressed during recursive zone listings, to avoid
|
||
|
excessive output of such illegal host names.
|
||
|
During SOA checking, an illegal primary or hostmaster
|
||
|
is always reported.
|
||
|
Document the -I option.
|
||
|
This option does no longer trigger the checking of
|
||
|
invalid characters in names.
|
||
|
To suppress illegal underscore messages, use "-I _".
|
||
|
To show them during recursive listings, use "-I ''".
|
||
|
Modify various messages.
|
||
|
Make some warning messages slightly shorter, and start
|
||
|
the message with the resource record or zone name.
|
||
|
Most of the SOA check messages have been affected.
|
||
|
Remove the answer buf offset in the incomplete HINFO
|
||
|
warning messages.
|
||
|
Improve error reporting.
|
||
|
Include the name of an explicit server in ns_error()
|
||
|
messages describing h_errno. This was already done
|
||
|
for the errno messages.
|
||
|
Include the server name also in ns_error() messages
|
||
|
after a failing zone transfer from that server.
|
||
|
Define a special h_errno status NOT_AVAILABLE for the
|
||
|
case a query was explicitly refused. Some servers are
|
||
|
configured to refuse zone transfers.
|
||
|
Major update of manual page.
|
||
|
Explain some more failure messages.
|
||
|
Explain most of the common warning and error messages.
|
||
|
|
||
|
940819
|
||
|
Modify various messages.
|
||
|
Include the server name in messages reporting failures
|
||
|
and problems during zone transfers.
|
||
|
Implement ttl consistency checks.
|
||
|
Multiple records of same name/type/class should have the
|
||
|
same ttl value in zone listings. This is now checked.
|
||
|
A suitable hash function is needed to minimize overhead.
|
||
|
The approach is similar to the function used in sendmail.
|
||
|
This has been a long standing wish from
|
||
|
Peter Koch <pk@TechFak.Uni-Bielefeld.DE>
|
||
|
Various speedup fixes.
|
||
|
Avoid unnecessary indomain() calls during zone listings.
|
||
|
|
||
|
940713
|
||
|
Modify various messages.
|
||
|
Replace some of the ``extraneous'' messages with a more
|
||
|
descriptive text. Include name and type of the query in
|
||
|
messages reporting format errors in the response.
|
||
|
Include zone name in error messages during SOA check.
|
||
|
Revise check for valid names.
|
||
|
If a domain name refers to a ``mailbox'', the part up to
|
||
|
the first unquoted dot is the ``local part'' to which
|
||
|
the RFC 822 syntax rules apply.
|
||
|
|
||
|
940623
|
||
|
Revise res_send() strategy.
|
||
|
Mark bad server status for certain conditions which make
|
||
|
it unlikely that we will succeed during the next try.
|
||
|
Operating system failures are not in this category.
|
||
|
Nameserver unreachable status is now reported in a more
|
||
|
reliable fashion. A second try would sometimes timeout.
|
||
|
(May be useful for monitoring the upcoming summer 1994
|
||
|
reshuffling of EBONE/EuropaNET/NSFnet interconnections).
|
||
|
Facelift for socket I/O routines.
|
||
|
Systematically use _res_close() to close a connection.
|
||
|
Include the answer packet length in debug printout.
|
||
|
Extend resolver initialization.
|
||
|
Set initial query ID to some arbitrary number.
|
||
|
Various speedup fixes.
|
||
|
Avoid unnecessary strlen() calls during zone listings.
|
||
|
Check whether the resource record data must be printed
|
||
|
outside the print routine to avoid unnecessary overhead.
|
||
|
Use bcopy() instead of sprintf() in obvious cases.
|
||
|
Better output format control.
|
||
|
In non-verbose and non-debug mode, only pure resource
|
||
|
record output is written to stdout.
|
||
|
Add new -Z option to force resource record output to be
|
||
|
in full zone listing format, including trailing dot in
|
||
|
domain names, plus ttl value and class indicator.
|
||
|
Rearrange include files.
|
||
|
Define resource record structures in rrec.h.
|
||
|
Function declarations moved to defs.h.
|
||
|
|
||
|
940615
|
||
|
Various portability changes.
|
||
|
Avoid use of sizeof() for all entities that have a fixed
|
||
|
field width, and use predefined constants instead. This
|
||
|
is necessary for systems without 16 or 32 bit integers.
|
||
|
Fix use of ipaddr_t and struct in_addr appropriately.
|
||
|
All this makes the utility portable to e.g. Cray.
|
||
|
Save and restore state during recursive lookup.
|
||
|
Error codes could be clobbered during MAILB tracing.
|
||
|
Miscellaneous minor code cleanup.
|
||
|
|
||
|
940603
|
||
|
Fix implementation for -F option properly.
|
||
|
Exchanging the role of stdout and the logfile now works
|
||
|
on all platforms. Asked by Artur Romao <artur@dns.pt>
|
||
|
|
||
|
940526
|
||
|
Combine explicit server and -p option.
|
||
|
If both are specified, the explicit server is contacted
|
||
|
to retrieve the desired servers for the given zone
|
||
|
during zone listing/checking modes. This is useful for
|
||
|
checking zones that have not been registered yet.
|
||
|
Requested by Geert Jan de Groot <geertj@ripe.net>
|
||
|
Rudimentary support for NSAP records.
|
||
|
This is still very experimental. It is unclear how an
|
||
|
NSAP address should be encoded in the resource record,
|
||
|
and how its hierarchical structure is decided.
|
||
|
Inspired by the 4.9 diffs from cisco.com.
|
||
|
|
||
|
940317
|
||
|
Print SOA serial always as an unsigned value.
|
||
|
Warn about ``extraordinary'' serial if high bit is set.
|
||
|
Reset errno to avoid stale values.
|
||
|
Could happen when doing multiple gethostbyaddr() calls
|
||
|
in extended mode when the BIND res_send() is linked in.
|
||
|
Problem noted by <Piete.Brooks@cl.cam.ac.uk>
|
||
|
Solaris portability fix.
|
||
|
For solaris 2.x use res_gethostby{addr,name} modules
|
||
|
to force dns lookups. The __switch_gethostby{addr,name}
|
||
|
modules have disappeared in solaris 2.3.
|
||
|
|
||
|
930926
|
||
|
Extend -I option with argument containing allowed chars.
|
||
|
This string specifies formally illegal, but silently
|
||
|
allowed characters when checking illegal domain names.
|
||
|
The -I option is still necessary to enable checking.
|
||
|
Still done only for resource record names in listings.
|
||
|
Note that some hesiod names contain the '/' character.
|
||
|
Indicated by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
Additional SOA record checks.
|
||
|
Check hostmaster field for illegal chars, such as '@'
|
||
|
(needed as long as data field names are not checked).
|
||
|
Revised SOA record checks.
|
||
|
Check primary field against list of known nameservers.
|
||
|
Issue warning if not among the authoritative servers.
|
||
|
This may be intentional in special cases, however.
|
||
|
Required some code reshuffling.
|
||
|
Add new -M option to list mailable subdomains in a zone.
|
||
|
This is a new variant of the zone listing specials.
|
||
|
A zone transfer is done (without listing anything by
|
||
|
default) to determine the available delegated zones.
|
||
|
For each of these zones, the MX records are printed.
|
||
|
Experimental, undocumented. Insufficient too: you
|
||
|
really want to see also the domains for which only
|
||
|
an MX record exist.
|
||
|
Cleanup terminology in the code documentation.
|
||
|
Remove the word 'subdomain' and cleanup the confusion
|
||
|
between 'domain' versus 'zone'.
|
||
|
Update manual page.
|
||
|
Use terminology that is technically more correct.
|
||
|
Explain various things that were still missing.
|
||
|
|
||
|
930919
|
||
|
Print actual name that was queried in error messages.
|
||
|
Formerly, only the (possibly abbreviated) queryname
|
||
|
as specified on the command line was printed.
|
||
|
Special care must be given if domain search is enabled,
|
||
|
especially in the enforced BIND compatibility mode.
|
||
|
Looks much better. Asked by <Piete.Brooks@cl.cam.ac.uk>
|
||
|
Some more SOA record tests.
|
||
|
Some records have the name of the zone specified in the
|
||
|
field that should contain the name of the primary server.
|
||
|
Miscellaneous minor changes.
|
||
|
Slightly modify the nameserver name printout during -C.
|
||
|
Set proper h_errno when answer buffer counts are corrupt.
|
||
|
Add new -V option to print version number.
|
||
|
Define version in separate vers.c
|
||
|
Use class mnemonics as defined in RFC 1035.
|
||
|
Print 'CH' instead of 'CHAOS'. Anyone using this ?
|
||
|
Recognize obsolete 'CS' or 'CSNET'. Pretty useless.
|
||
|
Just for ultimate completeness.
|
||
|
Check for invalid characters in domain names.
|
||
|
Only alphanumeric characters and hyphen '-' are valid.
|
||
|
Unfortunately, the use of underscore '_' is widespread,
|
||
|
so issuing a warning by default is unrealistic. Therefore:
|
||
|
Add new -I option to warn about illegal domain names.
|
||
|
Currently done only for resource record names during zone
|
||
|
listing. Could be extended to domain names in data fields.
|
||
|
Perhaps a warning by default in case illegal other than
|
||
|
underscore. Option is still undocumented as the semantics
|
||
|
are subject to change.
|
||
|
|
||
|
930915
|
||
|
Add -R option to always first try search domains.
|
||
|
Normally querynames are assumed to be fully qualified
|
||
|
and are tried as such, unless it is a single name which
|
||
|
is always tried, and only once, in the default domain.
|
||
|
This option sets RES_DNSRCH and simulates the default
|
||
|
BIND behavior, with the exception that NO_DATA status
|
||
|
terminates the search immediately.
|
||
|
With the additional otherwise undocumented -B option the
|
||
|
BIND behavior is fully enforced and the search continues.
|
||
|
Added only for testing purposes, not for general use.
|
||
|
Few more BIND 4.9 compatibility changes.
|
||
|
Some resolver routines have gotten new argument types.
|
||
|
Adapt Makefile to BIND conventions.
|
||
|
The Makefile can be used completely stand-alone,
|
||
|
or can be invoked from the master BIND Makefile.
|
||
|
Affects names of various (inherited) make variables.
|
||
|
Change BIND_RES_SEND to HOST_RES_SEND with opposite
|
||
|
meaning. Default is HOST_RES_SEND in case stand-alone.
|
||
|
|
||
|
930911
|
||
|
Extension of user interface.
|
||
|
Allow multiple arguments on command line or from stdin.
|
||
|
Requires new syntax for specifying explicit server.
|
||
|
New options -x and '-X server' indicate extended syntax.
|
||
|
Quite a lot reshuffling of code. Urgently requested by
|
||
|
<Piete.Brooks@cl.cam.ac.uk> and Paul Vixie <paul@vix.com>
|
||
|
Configurable default options.
|
||
|
Use an environment variable HOST_DEFAULTS to pre-define
|
||
|
default options and parameters. These are interpolated
|
||
|
in front of the command line arguments before scanning.
|
||
|
Syntax is the same as the command line syntax.
|
||
|
Fix bug when querying single name without dot.
|
||
|
Not only the default domain, but also the eventual other
|
||
|
search domains would be tried, although DNSRCH is off.
|
||
|
This is a long-standing bug. Very important fix.
|
||
|
|
||
|
930908
|
||
|
Various declaration changes for portability.
|
||
|
Print TXT/HINFO/UINFO strings within double quotes.
|
||
|
It is done both in regular and zone listing output.
|
||
|
This is conforming the syntax for zone input files.
|
||
|
Add trailing dot to domain names in zone listing.
|
||
|
This is conforming the syntax for zone input files.
|
||
|
The trailing dot is not added in regular output.
|
||
|
Define exit codes in new exit.h header file.
|
||
|
This avoids the need to include /usr/ucbinclude when
|
||
|
running in non-BSD mode on solaris 2.x platforms.
|
||
|
Attempt to diagnose lame delegations.
|
||
|
Error messages about lame delegations are given during
|
||
|
zone listings and when checking SOA records (but only when
|
||
|
the contacted servers are supposed to be authoritative).
|
||
|
Also in case servers from NS records turn out not to exist.
|
||
|
This may need some refinement for special cases.
|
||
|
Perform some extra checks during zone listings.
|
||
|
Check for unexpected error status in packets. Only the
|
||
|
very first packet in response to a transfer query can
|
||
|
have an error status.
|
||
|
Issue warning if only a single nameserver found.
|
||
|
Not an error per se, but not much redundancy then.
|
||
|
Suggested by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
Check for anomalous empty zone transfers.
|
||
|
Transfers consisting of only SOA records could occur if
|
||
|
we queried the victim of a lame delegation which happened
|
||
|
to have the SOA record present. Fake an error that will
|
||
|
result in a lame delegation message.
|
||
|
Mentioned by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
Indicate list/check failure/success via exit code.
|
||
|
Failure status is returned in case any error has been
|
||
|
reported via errmsg or pr_error (not pr_warning).
|
||
|
For Ruediger Volk <rv@deins.informatik.uni-dortmund.de>
|
||
|
Add -o option to suppress rr output to stdout.
|
||
|
Can be used in combination with -f to separate rr output
|
||
|
from verbose comments and error output.
|
||
|
Perform some SOA timer consistency checks.
|
||
|
Check timer values for anomalies, such as (retry > refresh)
|
||
|
or (refresh + retry > expire).
|
||
|
Suggested by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
Also compare all values instead of just serial.
|
||
|
More accurate reporting of zones processed.
|
||
|
Print total number of successful zone transfers versus the
|
||
|
number of attempted transfers. Print count of zones which
|
||
|
were successfully processed (transferred or -C checked)
|
||
|
versus the number of zones requested to be processed.
|
||
|
From this we can deduce the number of transfers that failed
|
||
|
and the number of times we couldn't find any nameservers.
|
||
|
|
||
|
930901
|
||
|
Increase MAXNSNAME from 12 to 16.
|
||
|
This is conforming NSMAX in ns.h
|
||
|
Don't accumulate statistics if not necessary.
|
||
|
Skip the costly host count scan in case nothing would
|
||
|
be reported at all according to the command line options.
|
||
|
Add some extra checks during zone listings.
|
||
|
Check for invalid nonzero nscount and arcount.
|
||
|
Special handling for non-authoritative answers.
|
||
|
We had already NO_RREC for non-authoritative NO_DATA, but
|
||
|
non-authoritative HOST_NOT_FOUND would yield TRY_AGAIN.
|
||
|
Change this to NO_HOST to issue a separate error message.
|
||
|
This identifies some special cases, e.g. queries for a
|
||
|
non-existing name using class C_ANY when the nameserver
|
||
|
is authoritative only for one specific class.
|
||
|
Use TRY_AGAIN in both cases during zone listing errors.
|
||
|
Minor declaration changes for portability.
|
||
|
Add -F option to exchange role of stdout and logfile.
|
||
|
The '-F file' is the same as '-f file' but all stdout
|
||
|
output goes to the logfile, and stdout only gets the extra
|
||
|
resource record output (so that it can be used in pipes).
|
||
|
Implementation is inherently unportable. Supported only on
|
||
|
a few platforms where it happens to work.
|
||
|
Explain status messages in the manual page.
|
||
|
Include address and name of server in perror messages.
|
||
|
This gives a lot more information in case stderr and stdout
|
||
|
are differently redirected.
|
||
|
|
||
|
930830
|
||
|
Make error checking in some routines uniform.
|
||
|
Miscellaneous declaration changes.
|
||
|
Filter resource record class appropriately.
|
||
|
In zone listings records of different class can show up,
|
||
|
e.g. HS records are mixed with IN records. Only records
|
||
|
of the requested class should be processed. This fixes
|
||
|
problems with recursive zone traversals and inaccurate
|
||
|
statistics. Pointed out by <Yves.Devillers@inria.fr>
|
||
|
and <Piet.Beertema@EU.net>. Important fix.
|
||
|
Include record class, if special, in some output.
|
||
|
Show the class if it is not the default IN class.
|
||
|
Include address of duplicate hosts in message.
|
||
|
This may help to locate the problem.
|
||
|
Properly concatenate long TXT strings that are split.
|
||
|
Long TXT strings (>255) are split as of BIND 4.8.3.
|
||
|
They were displayed incorrectly with TAB separators.
|
||
|
Problem noted by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
Cleanup some DNS terminology in output messages.
|
||
|
Fix some confusion between '(sub)domain' and 'zone'. Only
|
||
|
done in the output of host, not yet in the documentation.
|
||
|
Pointed out by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
Implement host address list as hashed list.
|
||
|
The linear list is replaced with a hashed list, using the
|
||
|
low-order address bits as the key. This may dramatically
|
||
|
speed up recursive zone listings. Very important fix.
|
||
|
Suggested by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
Miscellaneous portability hooks.
|
||
|
Add new port.h header file.
|
||
|
Change u_long to u_int for resource record fields.
|
||
|
These are fixed 32-bit quantities.
|
||
|
Note that BIND 4.9 uses u_int32_t for these, but still uses
|
||
|
(inconsistently) u_short instead of u_int16_t.
|
||
|
Necessary for port to alpha and BIND 4.9.
|
||
|
Change u_long to ipaddr_t for 32-bit address fields.
|
||
|
For the time being, make this identical to u_long for non-
|
||
|
alpha machines with pre-BIND 4.9 to avoid lint warnings.
|
||
|
Note that BIND 4.9 uses u_int32_t for these.
|
||
|
Necessary for port to alpha and BIND 4.9.
|
||
|
Introduce new typedef for 'struct state'.
|
||
|
Necessary for BIND 4.9.
|
||
|
Make all arguments to vararg routines same type.
|
||
|
No more mixing of arbitrary pointers and ints. Only number
|
||
|
of arguments is variable. Requires few silly interfaces.
|
||
|
Necessary for port to alpha.
|
||
|
Add the RELEASE_NOTES file to explain changes.
|
||
|
|
||
|
930209
|
||
|
Lookup server name with default resolver values.
|
||
|
Check SOA records without nameserver recursion.
|
||
|
Implement new RR types from RFC 1183 and 1348.
|
||
|
|
||
|
921005
|
||
|
Anticipate ultrix specific resolv.h
|
||
|
Miscellaneous declaration changes.
|
||
|
Some reshuffling of code.
|
||
|
|
||
|
920702
|
||
|
Recognize alternative program call names.
|
||
|
Distinguish between auth and non-auth NO_DATA.
|
||
|
|
||
|
920624
|
||
|
Lookup server name before changing nameserver address.
|
||
|
Handle possible truncation in zone transfers.
|
||
|
Provide private simplified version of res_send().
|
||
|
Add -u option to force virtual circuit connections.
|
||
|
Move all socket I/O routines to separate send.c.
|
||
|
|
||
|
920616
|
||
|
Allocate list of zonenames dynamically, not statically.
|
||
|
Move and slightly modify the test for fake hosts.
|
||
|
Suppress host count statistics during inverse listing.
|
||
|
Miscellaneous documentation updates.
|
||
|
|
||
|
920315
|
||
|
Improve counting of hosts within domain.
|
||
|
Discard glue records not directly within domain.
|
||
|
Keep track of hosts with duplicate address.
|
||
|
Add -D option to list duplicate hosts.
|
||
|
Add -E option to list extrazone hosts.
|
||
|
Miscellaneous casting and typing cleanup.
|
||
|
Increase (static) number of possible subdomains.
|
||
|
|
||
|
911201
|
||
|
Option -T also prints MX preference value.
|
||
|
Save name of longest hostname found (just for fun).
|
||
|
Undocumented option -g to select long names (fun).
|
||
|
|
||
|
911010
|
||
|
Don't recurse on cnames if querytype is cname.
|
||
|
|
||
|
910923
|
||
|
Count gateway hosts (with multiple addresses).
|
||
|
Add -G option to list gateway hosts.
|
||
|
|
||
|
910905
|
||
|
Improve counting of hosts within domain.
|
||
|
Allow hosts not directly within domain.
|
||
|
Increase (static) maximum number of hosts.
|
||
|
|
||
|
910415
|
||
|
Improve finding of subdomain names.
|
||
|
Allow subdomains not directly within domain.
|
||
|
Check for unauthoritative glue records.
|
||
|
Add -T option to print ttl when non-verbose.
|
||
|
Improve connect timeout handling.
|
||
|
Improve dotted quad parsing.
|
||
|
Minimum ttl is now called default ttl.
|
||
|
|
||
|
910129
|
||
|
Maintain count of hosts during domain listings.
|
||
|
Check for hosts with same name as subdomain.
|
||
|
Add -H option for special host count mode.
|
||
|
Recognize obsolete T_MAILA.
|
||
|
|
||
|
# ----------------------------------------------------------------------
|
||
|
# TODO
|
||
|
# ----------------------------------------------------------------------
|
||
|
|
||
|
Enhance reverse mapping.
|
||
|
The new BIND 4.9.* gethostbyaddr() can be configured
|
||
|
to return host aliases in case multiple PTR records
|
||
|
were encountered during the reverse lookup.
|
||
|
It is unclear what the official host name should be.
|
||
|
Should perhaps abandon the idea of official host name.
|
||
|
However, the PTR records are still exempt from the new
|
||
|
round-robin scheduling, and are returned in the order
|
||
|
in which they are defined in the zone file.
|
||
|
|
||
|
Enhance error reporting.
|
||
|
After a negative return from gethostbyname/gethostbyaddr
|
||
|
we want to know whether the answer was authoritative or
|
||
|
not. In a few places we are able to find out, but this
|
||
|
is a kludge and needs to be reimplemented.
|
||
|
|
||
|
# ----------------------------------------------------------------------
|
||
|
# WISHLIST
|
||
|
# ----------------------------------------------------------------------
|
||
|
|
||
|
Skip printing of second SOA in zone listing.
|
||
|
Asked by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
|
||
|
# ----------------------------------------------------------------------
|
||
|
# NOTES
|
||
|
# ----------------------------------------------------------------------
|
||
|
|
||
|
Include files and resolver library.
|
||
|
If you are linking this utility with an explicit resolver
|
||
|
library, make sure you will be compiling with the same
|
||
|
include files that were used to build the resolver library.
|
||
|
The BIND 4.9 include file <resolv.h> is incompatible with
|
||
|
the BIND 4.8 version. This utility can handle both versions,
|
||
|
but you cannot link with an 4.9 library after compilation
|
||
|
with the 4.8 include files, and vice versa.
|
||
|
|
||
|
Old resolver libraries.
|
||
|
The res_mkquery() routine in the SUN-supplied resolver
|
||
|
library on SunOS <= 4.1.3 adds the default domain to given
|
||
|
single names if REF_DEFNAMES is set. This is not correct and
|
||
|
leads to undesired results if you query about toplevel domains.
|
||
|
It may be a pre-BIND 4.8.2 problem.
|
||
|
The same behavior is reported in the default ultrix resolver.
|
||
|
This will not be fixed in host. The documentation states that
|
||
|
you need BIND 4.8.2 or higher.
|
||
|
Problem noted by Peter Koch <pk@TechFak.Uni-Bielefeld.DE>.
|
||
|
|
||
|
Vendor-specific resolver libraries.
|
||
|
Some vendors supply resolver libraries with configurable
|
||
|
lookup strategies for gethostbyname/gethostbyaddr, e.g. to
|
||
|
consult DNS, NIS, /etc/hosts, or other databases, in specific
|
||
|
order. Such libraries are to be avoided when linking host.
|
||
|
It is meant to query the DNS and DNS only.
|
||
|
|
||
|
SUN's resolver library on solaris 2.x
|
||
|
If you are on solaris 2.x and you don't have a proper BIND
|
||
|
resolver library to link with, but have to use the broken
|
||
|
default library, you can define NO_YP_LOOKUP in the Makefile
|
||
|
to prevent gethostbyname/gethostbyaddr querying the YP/NIS.
|
||
|
SUN will probably implement BIND 4.9.3 after its release.
|
||
|
|
||
|
Multiple answers during zone listing.
|
||
|
During zone transfers BIND encapsulates every resource
|
||
|
record in a seperate reply buffer containing a HEADER
|
||
|
and an answer section (ancount == 1). The authority and
|
||
|
additional section are empty. The query section is also
|
||
|
empty except in the very first reply buffer.
|
||
|
Some non-BIND implementations may send multiple answers
|
||
|
per reply buffer (ancount > 1).
|
||
|
|
||
|
# ----------------------------------------------------------------------
|
||
|
# MISC
|
||
|
# ----------------------------------------------------------------------
|
||
|
|
||
|
Port to DEC/Alpha with OSF/1.
|
||
|
Requested by various people.
|
||
|
This requires basically two adaptations:
|
||
|
- sizeof(u_long) is 64 bits instead of 32 bits.
|
||
|
Affects ip address fields and some fixed fields in the
|
||
|
nameserver query/answer buffers.
|
||
|
- pointers in C subroutine arguments are 64 bit quantities.
|
||
|
Affects the varargs modules.
|
||
|
Suggestions by Dietrich Wiegandt <dietrich@dxcern.cern.ch>
|
||
|
and David Cherkus <cherkus@zk3.dec.com>.
|
||
|
|
||
|
Compatibility with BIND 4.9.
|
||
|
Don't use the u_long types any more.
|
||
|
The 'struct state' is now 'struct __res_state'.
|
||
|
New resolver library has various hooks for 'dig'.
|
||
|
New resolver library prints to stdout with leading ";" but
|
||
|
unfortunately not everywhere. It prints to stderr sometimes
|
||
|
also with ";" but does not so in the perror() messages.
|
||
|
(Things have been corrected in BIND 4.9.3).
|
||
|
BIND 4.9 prints FQDN with trailing dot.
|
||
|
BIND 4.9 prints TXT strings within double quotes.
|
||
|
|
||
|
New features of BIND 4.9.3.
|
||
|
Don't use sizeof() for u_int, u_short, struct in_addr, and
|
||
|
HEADER, but use predefined constants for entities that have
|
||
|
a fixed field width.
|
||
|
A new parameter _res.ndots has been defined.
|
||
|
The res_search() module may query the given name ``as_is''.
|
||
|
The res_search() module retries after SERVFAIL.
|
||
|
The res_send() module marks a bad server status for almost
|
||
|
every error condition.
|
||
|
Extra checks are carried out to ensure that a reply packet
|
||
|
really is the answer to a query: nameserver addresses and
|
||
|
query fields are compared.
|
||
|
|