Commit graph

1472 commits

Author SHA1 Message Date
Ondřej Surý
b218bf5227 Fix the concurrent access to batchname in dig.c 2019-12-20 03:43:04 +00:00
Ondřej Surý
1a66aabd22 Refactor the dns_name API to use ISC_THREAD_LOCAL
Previously, the dns_name API used isc_thread_key API for TLS, which is
fairly complicated and requires initialization of memory contexts, etc.
This part of code was refactored to use a ISC_THREAD_LOCAL pointer which
greatly simplifies the whole code related to storing TLS variables.
2019-12-03 16:27:24 +01:00
Mark Andrews
9936462f31 dns_master_indent and dns_master_indentstr must not be global
The indentation for dumping the master zone was driven by two
global variables dns_master_indent and dns_master_indentstr.  In
threaded mode, this becomes prone to data access races, so this commit
converts the global variables into a local per-context tuple that
consist of count and string.
2019-11-26 13:52:18 +01:00
Mark Andrews
e98157b7fe add +[no]yaml to usage() 2019-11-23 00:02:52 +11:00
Evan Hunt
36ee430327 optionally associate a netmgr with a task manager when creating
When a task manager is created, we can now specify an `isc_nm`
object to associate with it; thereafter when the task manager is
placed into exclusive mode, the network manager will be paused.
2019-11-07 11:55:37 -08:00
Ondřej Surý
9366ca769f bin/dig/dighost.c: Fix REQUIRE(!= NULL) condition after the variable has been dereferenced 2019-10-03 09:04:26 +02:00
Ondřej Surý
288f5a4b52 Various little fixes found by coccinelle
The coccinellery repository provides many little semantic patches to fix common
problems in the code.  The number of semantic patches in the coccinellery
repository is high and most of the semantic patches apply only for Linux, so it
doesn't make sense to run them on regular basis as the processing takes a lot of
time.

The list of issue found in BIND 9, by no means complete, includes:

- double assignment to a variable
- `continue` at the end of the loop
- double checks for `NULL`
- useless checks for `NULL` (cannot be `NULL`, because of earlier return)
- using `0` instead of `NULL`
- useless extra condition (`if (foo) return; if (!foo) { ...; }`)
- removing & in front of static functions passed as arguments
2019-10-01 16:48:55 +02:00
Ondřej Surý
c2dad0dcb2 Replace RUNTIME_CHECK(dns_name_copy(..., NULL)) with dns_name_copynf()
Use the semantic patch from the previous commit to replace all the calls to
dns_name_copy() with NULL as third argument with dns_name_copynf().
2019-10-01 10:43:26 +10:00
Ondřej Surý
5efa29e03a The final round of adding RUNTIME_CHECK() around dns_name_copy() calls
This commit was done by hand to add the RUNTIME_CHECK() around stray
dns_name_copy() calls with NULL as third argument.  This covers the edge cases
that doesn't make sense to write a semantic patch since the usage pattern was
unique or almost unique.
2019-10-01 10:43:26 +10:00
Ondřej Surý
35bd7e4da0 Add RUNTIME_CHECK() around plain dns_name_copy(..., NULL) calls using spatch
This commit add RUNTIME_CHECK() around all simple dns_name_copy() calls where
the third argument is NULL using the semantic patch from the previous commit.
2019-10-01 10:43:26 +10:00
Petr Menšík
21371abd72 Emit warning on IDN output failure
Warning is emitted before any dig headers.
2019-09-30 08:52:13 +02:00
Petr Menšík
c8a871e908 Fallback to ASCII on output IDN conversion error
It is possible dig used ACE encoded name in locale, which does not
support converting it to unicode. Instead of fatal error, fallback to
ACE name on output.
2019-09-30 08:52:13 +02:00
Michał Kępień
0476e8f1ac Make VS solution upgrading unnecessary
Until now, the build process for BIND on Windows involved upgrading the
solution file to the version of Visual Studio used on the build host.
Unfortunately, the executable used for that (devenv.exe) is not part of
Visual Studio Build Tools and thus there is no clean way to make that
executable part of a Windows Server container.

Luckily, the solution upgrade process boils down to just adding XML tags
to Visual Studio project files and modifying certain XML attributes - in
files which we pregenerate anyway using win32utils/Configure.  Thus,
extend win32utils/Configure with three new command line parameters that
enable it to mimic what "devenv.exe bind9.sln /upgrade" does.  This
makes the devenv.exe build step redundant and thus facilitates building
BIND in Windows Server containers.
2019-09-26 15:11:15 +02:00
Ondřej Surý
4957255d13 Use the semantic patch to change the usage isc_mem_create() to new API 2019-09-12 09:26:09 +02:00
Tinderbox User
badb8a474e prep for 9.15.4 2019-09-09 13:13:39 +00:00
Mark Andrews
4906fe975c Don't print ';;' comments in yaml mode. 2019-09-06 14:14:20 +10:00
Diego dos Santos Fronza
bc53d68ae6 Added documentation for dig's +unexpected command line option. 2019-09-03 10:15:25 -03:00
Evan Hunt
3ef91562f1 add a toy name server that replies from the wrong address 2019-09-03 10:14:15 -03:00
Diego dos Santos Fronza
460d4d63ee Added +unexpected option so dig will print replies from unexpected
sources.
2019-09-03 10:14:15 -03:00
Ondřej Surý
50e109d659 isc_event_allocate() cannot fail, remove the fail handling blocks
isc_event_allocate() calls isc_mem_get() to allocate the event structure.  As
isc_mem_get() cannot fail softly (e.g. it never returns NULL), the
isc_event_allocate() cannot return NULL, hence we remove the (ret == NULL)
handling blocks using the semantic patch from the previous commit.
2019-08-30 08:55:34 +02:00
Ondřej Surý
f1a887a0b9 dighost_error declaration in dig/dig.h was missing extern 2019-08-29 11:24:16 +02:00
Mark Andrews
d98f446d3f Add support for displaying EDNS option LLQ. 2019-08-28 16:13:43 +10:00
Evan Hunt
617696fbfc document the +yaml option in dig, mdig and delv 2019-08-25 16:41:38 -07:00
Evan Hunt
71325852f1 add "dig +yaml" output format 2019-08-25 16:41:14 -07:00
Tinderbox User
1b9b826518 prep 9.15.3 2019-08-12 14:08:12 +00:00
Evan Hunt
9679c8c20a clarify descriptions of comment-related options in dig usage and man page 2019-08-05 21:30:34 -07:00
Evan Hunt
6d50f7d924 always check 'printcmd' before printing cmdline message 2019-08-05 21:26:32 -07:00
Mark Andrews
2a047af31e set DNS_STYLEFLAG_EXPANDAAAA flag in say_message if appropriate 2019-07-30 21:05:56 -04:00
Ondřej Surý
601cb4e4cc Use coccinelle to cleanup the failure handling blocks from isc_mem_allocate 2019-07-23 15:32:35 -04:00
Evan Hunt
fea6b5bf10 add a search for GeoIP2 libraries in configure
- "--with-geoip" is used to enable the legacy GeoIP library.
- "--with-geoip2" is used to enable the new GeoIP2 library
  (libmaxminddb), and is on by default if the library is found.
- using both "--with-geoip" and "--with-geoip2" at the same time
  is an error.
- an attempt is made to determine the default GeoIP2 database path at
  compile time if pkg-config is able to report the module prefix. if
  this fails, it will be necessary to set the path in named.conf with
  geoip-directory
- Makefiles have been updated, and a stub lib/dns/geoip2.c has been
  added for the eventual GeoIP2 search implementation.
2019-06-27 14:58:13 -07:00
Ondřej Surý
5d1e7be582 Rename OPENSSL_INCLUDES to OPENSSL_CFLAGS in AX_CHECK_OPENSSL() macro
The ax_check_openssl m4 macro used OPENSSL_INCLUDES.  Rename the
subst variable to OPENSSL_CFLAGS and wrap AX_CHECK_OPENSSL() in
action-if-not-found part of PKG_CHECK_MODULE check for libcrypto.
2019-06-25 12:36:01 +02:00
Ondřej Surý
e3e6888946 Make the usage of json-c objects opaque to the caller
The json-c have previously leaked into the global namespace leading
to forced -I<include_path> for every compilation unit using isc/xml.h
header.  This MR fixes the usage making the caller object opaque.
2019-06-25 12:04:20 +02:00
Ondřej Surý
0771dd3be8 Make the usage of libxml2 opaque to the caller
The libxml2 have previously leaked into the global namespace leading
to forced -I<include_path> for every compilation unit using isc/xml.h
header.  This MR fixes the usage making the caller object opaque.
2019-06-25 12:01:32 +02:00
Tinderbox User
9bb0b30bc2 prep 9.15.1 2019-06-19 15:36:28 -07:00
Ondřej Surý
4d2d3b49ce Cleanup the way we detect json-c library to use only pkg-config 2019-05-29 15:08:52 +02:00
Mark Andrews
e65d4989a1 Recurse to find the root server list with 'dig +trace'. 2019-05-22 13:02:15 +10:00
Tinderbox User
25e416fb67 prep 9.15.0 2019-05-10 04:39:43 +00:00
Mark Andrews
ee7cf180b3 Recognise EDNS Client Tag and EDNS Server Tag 2019-05-09 17:29:23 +10:00
Mark Andrews
d8798098e8 support printing AAAA in expanded form 2019-05-06 21:50:38 -07:00
Ondřej Surý
a04a390195 Convert *.vcxproj.user to CRLF line endings 2019-03-08 18:01:48 +01:00
Ondřej Surý
c2637c8429 Use ForcedIncludeFiles directive to include config.h everywhere automatically 2019-03-08 17:14:38 +01:00
Ondřej Surý
78d0cb0a7d Use coccinelle to remove explicit '#include <config.h>' from the source files 2019-03-08 15:15:05 +01:00
Mark Andrews
7b60f6832e silence clang 2019-02-18 17:40:56 -05:00
Mark Andrews
f73816ff0f error out if there are extra command line options 2019-02-07 19:49:44 +11:00
Tinderbox User
b4d3f78293 prep 9.13.6 2019-02-06 22:13:05 +00:00
Mark Andrews
d9c368eee0 the condition test for checking the client cookie value was wrong; don't call process_opt multiple times 2019-02-06 12:34:42 +11:00
Michał Kępień
0f168a4b37 dig: return a non-zero exit code for failed TCP EOF retries
dig retries a TCP query when a server closes the connection prematurely.
However, dig's exit code remains unaffected even if the second attempt
to get a response also fails with the same error for the same lookup,
which should not be the case.  Ensure the exit code is updated
appropriately when a retry triggered by a TCP EOF condition fails.
2019-01-24 23:05:43 -08:00
Michał Kępień
13975b32c6 Fix cleanup upon an error before TCP socket creation
When a query times out after a socket is created and associated with a
given dig_query_t structure, calling isc_socket_cancel() causes
connect_done() to be run, which in turn takes care of all necessary
cleanups.  However, certain errors (e.g. get_address() returning
ISC_R_FAMILYNOSUPPORT) may prevent a TCP socket from being created in
the first place.  Since force_timeout() may be used in code handling
such errors, connect_timeout() needs to properly clean up a TCP query
which is not associated with any socket.  Call clear_query() from
connect_timeout() after attempting to send a TCP query to the next
available server if the timed out query does not have a socket
associated with it, in order to prevent dig from hanging indefinitely
due to the dig_query_t structure not being detached from its parent
dig_lookup_t structure.
2019-01-08 11:17:39 +01:00
Michał Kępień
c108fc5c6e Refactor code sending a query to the next server upon a timeout
When a query times out and another server is available for querying
within the same lookup, the timeout handler - connect_timeout() - is
responsible for sending the query to the next server.  Extract the
relevant part of connect_timeout() to a separate function in order to
improve code readability.
2019-01-08 11:17:39 +01:00
Michał Kępień
ef1da8731b Remove dead code handling address family mismatches for TCP sockets
Before commit c2ec022f57, using the "-b"
command line switch for dig did not disable use of the other address
family than the one to which the address supplied to that option
belonged to.  Thus, bind9_getaddresses() could e.g. prepare an
isc_sockaddr_t structure for an IPv6 address when an IPv4 address has
been passed to the "-b" command line option.  To avoid attempting the
impossible (e.g. querying an IPv6 address from a socket bound to an IPv4
address), a certain code block in send_tcp_connect() checked whether the
address family of the server to be queried was the same as the address
family of the socket set up for sending that query; if there was a
mismatch, that particular server address was skipped.

Commit c2ec022f57 made
bind9_getaddresses() fail upon an address family mismatch between the
address the hostname passed to it resolved to and the address supplied
to the "-b" command line option.  Such failures were fatal to dig back
then.

Commit 7f65860391 made
bind9_getaddresses() failures non-fatal, but also ensured that a
get_address() failure in send_tcp_connect() still causes the given query
address to be skipped (and also made such failures trigger an early
return from send_tcp_connect()).

Summing up, the code block handling address family mismatches in
send_tcp_connect() has been redundant since commit
c2ec022f57.  Remove it.
2019-01-08 11:17:39 +01:00
Mark Andrews
dc64b70616 update copyrights 2019-01-02 10:20:43 +11:00
Andreas Hasenack
665618698e add -U to preparse and usage 2018-12-07 07:43:52 +11:00
Witold Kręcicki
929ea7c2c4 - Make isc_mutex_destroy return void
- Make isc_mutexblock_init/destroy return void
- Minor cleanups
2018-11-22 11:52:08 +00:00
Ondřej Surý
2f3eee5a4f isc_mutex_init returns 'void' 2018-11-22 11:51:49 +00:00
Tinderbox User
db1cd0d970 prep 9.13.4 2018-11-22 00:20:22 +00:00
Tony Finch
fdb74fed9e dig: a -r option to disable .digrc 2018-11-15 11:09:04 +11:00
Mark Andrews
ba5d28dcfe add -q to dash_opts 2018-11-14 10:50:34 +11:00
Mark Andrews
75fa84b67b dig and mdig failed to properly preparse dash value pairs when value was a seperate argument and started with a dash. 2018-11-14 08:39:05 +11:00
Michał Kępień
18758392da Restore localhost fallback in bin/dig/dighost.c
In BIND 9.11 and earlier, dig and similar tools used liblwres for
parsing /etc/resolv.conf.  After getting a list of servers from
liblwres, a tool would check the address family of each server found and
reject those unusable.  When the resulting list of usable servers was
empty, localhost addresses were queried as a fallback.

When liblwres was removed in BIND 9.12, dig and similar tools were
updated to parse /etc/resolv.conf using libirs instead.  As part of that
process, the localhost fallback was removed from bin/dig/dighost.c since
the localhost fallback built into libirs was deemed to be sufficient.
However, libirs only falls back to localhost if it does not find any
name servers at all; if it does find any valid nameserver entry in
/etc/resolv.conf, it just returns it to the caller because it is
oblivious to whether the caller supports IPv4 and/or IPv6 or not.  The
code in bin/dig/dighost.c subsequently filters the returned list of
servers in get_server_list() according to the requested address family
restrictions.  This may result in none of the addresses returned by
libirs being usable, in which case a tool will attempt to work with an
empty server list, causing a hang and subsequently a crash upon user
interruption.

Restore the localhost fallback in bin/dig/dighost.c to prevent the
aforementioned hangs and crashes and ensure recent BIND versions behave
identically to the older ones in the circumstances described above.
2018-11-13 14:31:18 +01:00
Michał Kępień
4621756596 Fix a shutdown race in bin/dig/dighost.c
If a tool using the routines defined in bin/dig/dighost.c is sent an
interruption signal around the time a connection timeout is scheduled to
fire, connect_timeout() may be executed after destroy_libs() detaches
from the global task (setting 'global_task' to NULL), which results in a
crash upon a UDP retry due to bringup_timer() attempting to create a
timer with 'task' set to NULL.  Fix by preventing connect_timeout() from
attempting a retry when shutdown is in progress.
2018-11-13 13:50:47 +01:00
Ondřej Surý
23fff6c569 Hint the compiler with ISC_UNREACHABLE(); that code after INSIST(0); cannot be reached 2018-11-08 12:22:17 +07:00
Ondřej Surý
fbd2e47f51 Add small tweaks to the code to fix compilation when ISC assertions are disabled
While implementing the new unit testing framework cmocka, it was found that the
BIND 9 code doesn't compile when assertions are disabled or replaced with any
function (such as mock_assert() from cmocka unit testing framework) that's not
directly recognized as assertion by the compiler.

This made the compiler to complain about blocks of code that was recognized as
unreachable before, but now it isn't.

The changes in this commit include:

* assigns default values to couple of local variables,
* moves some return statements around INSIST assertions,
* adds __builtin_unreachable(); annotations after some INSIST assertions,
* fixes one broken assertion (= instead of ==)
2018-11-08 12:21:53 +07:00
Witold Krecicki
e9bf8e4798 Add some DBC checks in dighost; fix race between clear_query and send_done in dighost 2018-11-07 13:04:13 -05:00
Ondřej Surý
b659765869 Update the IDN documentation for nslookup 2018-11-06 12:48:08 +07:00
Ondřej Surý
7697923eab Change the dig documentation 2018-11-06 12:48:08 +07:00
Ondřej Surý
0e1bf7d017 Enable IDN processing (both idnin and idnout) only on tty, disable it when the stdout is not a tty 2018-11-06 12:48:08 +07:00
Tony Finch
3064d3d0ef Abolish ip6.int support in dig and mdig 2018-11-05 19:07:31 -05:00
Witold Kręcicki
b2f8f37b80 dighost.c: after invalidating buffer we need to reinit it 2018-11-05 18:59:44 +00:00
Witold Kręcicki
428daba5ce Do not use vector socket functions in diagnostic tools
Refactor diagnostic tools code to no longer use:

  - isc_socket_recvv()
  - isc_socket_sendtov2()
  - isc_socket_sendv()

as these functions will be removed shortly.
2018-10-31 12:12:53 +01:00
Petr Menšík
ec1d9b80f5 Disable IDN from environment as documented
Manual page of host contained instructions to disable IDN processing
when it was built with libidn2. When refactoring IDN support however,
support for disabling IDN in host and nslookup was lost. Use also
environment variable and document it for nslookup, host and dig.
2018-10-05 05:58:33 -04:00
Tinderbox User
19ed6f8f5a prep 9.13.3 2018-09-04 06:11:38 +00:00
Ondřej Surý
25248eb097 Bail-out early in the for install loops instead of continuing because for masks the error in the middle 2018-09-03 12:05:45 +02:00
Ondřej Surý
eb9849daff Update documentation (ARM, READMEs and man pages) 2018-08-31 06:03:42 -04:00
Ondřej Surý
efd613e874 memmove, strtoul, and strcasestr functions are part of ISO C90, remove the compatibility shim 2018-08-28 10:31:48 +02:00
Michał Kępień
deb3b85cb2 Reset dig exit code after a TCP connection is established
The "exitcode" variable is set to 9 if a TCP connection fails, but is
not reset to 0 if a subsequent TCP connection succeeds.  This causes dig
to return a non-zero exit code if it succeeds in getting a TCP response
after a retry.  Fix by resetting "exitcode" to 0 if connect_done()
receives an event with the "result" field set to ISC_R_SUCCESS.
2018-08-27 13:58:08 +10:00
Bhargava Shastry
1c57b73e34 oss-fuzz: Improve interaction with fuzzing tools and add new tests in fuzz/ directory 2018-08-23 10:07:28 +02:00
Witold Kręcicki
5cdb38c2c7 Remove unthreaded support 2018-08-16 17:18:52 +02:00
Ondřej Surý
c5040e5c9e Add @OPENSSL_LIB@ to Windows project files as needed 2018-08-10 16:45:00 +02:00
Ondřej Surý
994e656977 Replace custom isc_boolean_t with C standard bool type 2018-08-08 09:37:30 +02:00
Ondřej Surý
cb6a185c69 Replace custom isc_u?intNN_t types with C99 u?intNN_t types 2018-08-08 09:37:28 +02:00
Ondřej Surý
64fe6bbaf2 Replace ISC_PRINT_QUADFORMAT with inttypes.h format constants 2018-08-08 09:36:44 +02:00
Ondřej Surý
69380eb033 Revert "Merge branch 'modified-manual-install-oot' into 'master'"
This reverts commit d9929b1b0a, reversing
changes made to 8abf2f23d0.
2018-08-02 10:23:30 -04:00
Ondřej Surý
10e6bfc864 Preserve ${LDFLAGS} contents in bin/dig/ 2018-08-02 08:33:03 -04:00
Petr Menšík
88f913ac81 Use make automatic variables to install updated manuals
Make will choose modified manual from build directory or original from source
directory automagically. Take advantage of install tool feature.
Install all files in single command instead of iterating on each of them.
2018-08-01 01:56:16 -04:00
Ondřej Surý
71877806e8 Fix ax_check_openssl to accept yes and improve it to modern autotools standard 2018-07-23 22:10:52 +02:00
Ondřej Surý
83cde08522 Introduce USE_OPENSSL define to Windows build, remove CRYPTO and AES conditions. 2018-07-19 16:54:53 -04:00
Ondřej Surý
c3b8130fe8 Make OpenSSL mandatory 2018-07-19 12:47:03 -04:00
Bill Parker
408bcf9c07 check code is non NULL 2018-07-11 11:22:26 -07:00
Michał Kępień
bf6efbc9a9 Do not set IDN2_NFC_INPUT explicitly
IDN2_NFC_INPUT is always set implicitly by idn2_to_ascii_lz(), so there
is no need to set it explicitly.
2018-07-10 14:34:35 +02:00
Michał Kępień
b896fc4972 Improve error handling in idn_ace_to_locale()
While idn2_to_unicode_8zlz() takes a 'flags' argument, it is ignored and
thus cannot be used to perform IDN checks on the output string.

The bug in libidn2 versions before 2.0.5 was not that a call to
idn2_to_unicode_8zlz() with certain flags set did not cause IDN checks
to be performed.  The bug was that idn2_to_unicode_8zlz() did not check
whether a conversion can be performed between UTF-8 and the current
locale's character encoding.  In other words, with libidn2 version
2.0.5+, if the current locale's character encoding is ASCII, then
idn2_to_unicode_8zlz() will fail when it is passed any Punycode string
which decodes to a non-ASCII string, even if it is a valid IDNA2008
name.

Rework idn_ace_to_locale() so that invalid IDNA2008 names are properly
and consistently detected for all libidn2 versions and locales.

Update the "idna" system test accordingly.  Add checks for processing a
server response containing Punycode which decodes to an invalid IDNA2008
name.  Fix invalid subtest description.
2018-07-10 14:34:35 +02:00
Michał Kępień
e5ef038134 Remove redundant dns_name_totextfilter_t argument
Since idn_output_filter() no longer uses its 'absolute' argument and no
other callback is used with dns_name_settotextfilter(), remove the
'absolute' argument from the dns_name_totextfilter_t prototype.
2018-07-10 14:34:35 +02:00
Michał Kępień
19c42d46e8 Simplify and rename output_filter()
output_filter() does not need to dot-terminate its input name because
libidn2 properly handles both dot-terminated and non-dot-terminated
names.  libidn2 also does not implicitly dot-terminate names passed to
it, so parts of output_filter() handling dot termination can simply be
removed.

Fix a logical condition to make sure 'src' can fit the terminating NULL
byte.  Replace the MAXDLEN macro with the MXNAME macro used in the rest
of dig source code.  Tweak comments and variable names.

Rename output_filter() to idn_output_filter() so that it can be easily
associated with IDN and other idn_*() functions.
2018-07-10 14:34:35 +02:00
Michał Kępień
5106a18e9e Simplify idn_ace_to_locale()
idn_ace_to_locale() may return a string longer than MAXDLEN because it
is using the current locale's character encoding.  Rather then imposing
an arbitrary limit on the length of the string that function can return,
make it pass the string prepared by libidn2 back to the caller verbatim,
making the latter responsible for freeing that string.  In conjunction
with the fact that libidn2 errors are considered fatal, this makes
returning an isc_result_t from idn_ace_to_locale() unnecessary.

Do not process success cases in conditional branches for improved
consistency with the rest of BIND source code.  Add a comment explaining
the purpose of idn_ace_to_locale().  Rename that function's parameters
to match common BIND naming pattern.
2018-07-10 14:34:35 +02:00
Michał Kępień
bcf4d20603 Simplify idn_locale_to_ace()
idn_locale_to_ace() is a static function which is always used with a
buffer of size MXNAME, i.e. one that can fit any valid domain name.
Since libidn2 detects invalid domain names and libidn2 errors are
considered fatal, remove size checks from idn_locale_to_ace().  This
makes returning an isc_result_t from it unnecessary.

Do not process success cases in conditional branches for improved
consistency with the rest of BIND source code.  Add a comment explaining
the purpose of idn_locale_to_ace().  Rename that function's parameters
to match common BIND naming pattern.
2018-07-10 14:34:35 +02:00
Michał Kępień
59cdaef4f7 Remove IDNA2003 fallback from dig
Certain characters, like symbols, are allowed by IDNA2003, but not by
IDNA2008.  Make dig reject such symbols when IDN input processing is
enabled to ensure BIND only supports IDNA2008.  Update the "idna" system
test so that it uses one of such symbols rather than one which is
disallowed by both IDNA2003 and IDNA2008.
2018-07-10 14:34:35 +02:00
Michał Kępień
9a25368c8c Remove redundant dns_name_settotextfilter() call
There is no need to call dns_name_settotextfilter() in setup_system()
because setup_lookup() determines whether IDN output processing should
be enabled for a specific lookup (taking the global setting into
consideration) and calls dns_name_settotextfilter() anyway if it is.
Remove the dns_name_settotextfilter() call from setup_system().
2018-07-10 14:34:35 +02:00
Michał Kępień
fafc7c7b8a Remove empty idn_initialize() function 2018-07-10 14:34:35 +02:00
Michał Kępień
a0571d3851 Rework libidn2 detection
Clean up the parts of configure.in responsible for handling libidn2
detection and adjust other pieces of the build system to match these
cleanups:

  - use pkg-config when --with-libidn2 is used without an explicit path,

  - look for idn2_to_ascii_lz() rather than idn2_to_ascii_8z() as the
    former is used in BIND while the latter is not,

  - do not look for idn2_to_unicode_8zlz() as it is present in all
    libidn2 versions which have idn2_to_ascii_lz(),

  - check whether the <idn2.h> header is usable,

  - set LDFLAGS in the Makefile for dig so that, if specified, the
    requested libidn2 path is used when linking with libidn2,

  - override CPPFLAGS when looking for libidn2 components so that the
    configure script does not produce warnings when libidn2 is not
    installed system-wide,

  - merge the AS_CASE() call into the AS_IF() call below it to simplify
    code,

  - indicate the default value of --with-libidn2 in "./configure --help"
    output,

  - use $with_libidn2 rather than $use_libidn2 to better match the name
    of the configure script argument,

  - stop differentiating between IDN "in" and "out" support, i.e. make
    dig either support libidn2 or not; remove WITH_* Autoconf macros and
    use a new one, HAVE_LIBIDN2, to determine whether libidn2 support
    should be enabled.
2018-07-10 14:34:35 +02:00
Ondřej Surý
99ba29bc52 Change isc_random() to be just PRNG, and add isc_nonce_buf() that uses CSPRNG
This commit reverts the previous change to use system provided
entropy, as (SYS_)getrandom is very slow on Linux because it is
a syscall.

The change introduced in this commit adds a new call isc_nonce_buf
that uses CSPRNG from cryptographic library provider to generate
secure data that can be and must be used for generating nonces.
Example usage would be DNS cookies.

The isc_random() API has been changed to use fast PRNG that is not
cryptographically secure, but runs entirely in user space.  Two
contestants have been considered xoroshiro family of the functions
by Villa&Blackman and PCG by O'Neill.  After a consideration the
xoshiro128starstar function has been used as uint32_t random number
provider because it is very fast and has good enough properties
for our usage pattern.

The other change introduced in the commit is the more extensive usage
of isc_random_uniform in places where the usage pattern was
isc_random() % n to prevent modulo bias.  For usage patterns where
only 16 or 8 bits are needed (DNS Message ID), the isc_random()
functions has been renamed to isc_random32(), and isc_random16() and
isc_random8() functions have been introduced by &-ing the
isc_random32() output with 0xffff and 0xff.  Please note that the
functions that uses stripped down bit count doesn't pass our
NIST SP 800-22 based random test.
2018-05-29 22:58:21 +02:00
Evan Hunt
9147a31b94 copyrights 2018-05-23 12:39:40 -04:00
Ondřej Surý
7ee8a7e69f address win32 build issues
- Replace external -DOPENSSL/-DPKCS11CRYPTO with properly AC_DEFINEd
  HAVE_OPENSSL/HAVE_PKCS11
- Don't enforce the crypto provider from platform.h, just from dst_api.c
  and configure scripts
2018-05-22 16:32:21 -07:00
Tinderbox User
9536688b37 regenerate doc 2018-05-21 19:59:45 +00:00
Ondřej Surý
3a4f820d62 Replace all random functions with isc_random, isc_random_buf and isc_random_uniform API.
The three functions has been modeled after the arc4random family of
functions, and they will always return random bytes.

The isc_random family of functions internally use these CSPRNG (if available):

1. getrandom() libc call (might be available on Linux and Solaris)
2. SYS_getrandom syscall (might be available on Linux, detected at runtime)
3. arc4random(), arc4random_buf() and arc4random_uniform() (available on BSDs and Mac OS X)
4. crypto library function:
4a. RAND_bytes in case OpenSSL
4b. pkcs_C_GenerateRandom() in case PKCS#11 library
2018-05-16 09:54:35 +02:00
Mark Andrews
92e540df1e Silence clang static analyzer warnings; Consolidate multiple instances of splitting of batchline in dig into a single function. 2018-05-11 10:54:21 +10:00
Mark Andrews
8801c65a4b insist option != NULL and initalise last to NULL 2018-05-03 11:08:59 -04:00
Paul Hoffman
2d957c6b9f add -t type### description to the dig man page 2018-04-27 02:16:51 -04:00
Evan Hunt
0cc7aa250e change "key" to "tsigkey" to silence "short global name" warning 2018-04-20 19:51:00 -04:00
Mukund Sivaraman
89cf503880 Remove bogus comparison 2018-04-20 14:43:06 -07:00
Mark Andrews
58c103e09c dig: add the ability to set RA and TC in queries 2018-04-20 14:17:58 -07:00
Tony Finch
286a7b6b9a Allow TTL values when configuring TTLs and time intervals.
Options updated to use ttlvals: max-cache-ttl, max-ncache-ttl,
max-policy-ttl, fstrm-set-reopen-interval, interface-interval, and
min-update-interval.
2018-04-13 11:46:06 -07:00
Ondřej Surý
5311a3b7b5 We use too old Visual Compiler to use scoped variables 2018-04-12 10:37:33 +02:00
Ondřej Surý
921d05ddcf Replace usage of strsep with POSIX strtok_r() 2018-04-12 10:37:33 +02:00
Michał Kępień
4df4a8e731 Use dns_fixedname_initname() where possible
Replace dns_fixedname_init() calls followed by dns_fixedname_name()
calls with calls to dns_fixedname_initname() where it is possible
without affecting current behavior and/or performance.

This patch was mostly prepared using Coccinelle and the following
semantic patch:

    @@
    expression fixedname, name;
    @@
    -	dns_fixedname_init(&fixedname);
    	...
    -	name = dns_fixedname_name(&fixedname);
    +	name = dns_fixedname_initname(&fixedname);

The resulting set of changes was then manually reviewed to exclude false
positives and apply minor tweaks.

It is likely that more occurrences of this pattern can be refactored in
an identical way.  This commit only takes care of the low-hanging fruit.
2018-04-09 12:14:16 +02:00
Witold Kręcicki
702c022016 libdns refactoring: get rid of multiple versions of dns_xfrin_create, dst_key_generate, dst_lib_init and dst_context_create 2018-04-06 08:04:41 +02:00
Witold Kręcicki
e2a06db7f3 libdns refactoring: get rid of multiple versions of dns_master_loadfile, dns_master_loadfileinc, dns_master_dump, dns_master_dumpinc, dns_master_dumptostream, dns_master_stylecreate 2018-04-06 08:04:41 +02:00
Witold Kręcicki
d76ed0da1c libdns refactoring: get rid of two versions of dns_byaddr_createptrname 2018-04-06 08:04:41 +02:00
Ondřej Surý
08f66d8509 Don't use the IDN traslated name if no conversion took a place 2018-03-21 14:05:00 +00:00
Ondřej Surý
00043bfa18 Remove idnkit-1 support from dig 2018-03-17 13:41:59 +00:00
Ondřej Surý
76c05a71fc Simplify the libidn2 configure checks 2018-03-17 13:13:47 +00:00
Petr Menšík
29b94bbb04 Sanitize IDN initialization
Signed-off-by: Petr Menšík <pemensik@redhat.com>
2018-03-17 13:13:47 +00:00
Petr Menšík
8254cf69d3 Remove support for libidn (IDN 2003)
Signed-off-by: Petr Menšík <pemensik@redhat.com>
2018-03-17 13:13:47 +00:00
Petr Menšík
94757c1545 Remove conversion from locale to utf8 from public API
Emit fatal failures on locale to ACE encoding

Separate idnout support, disable it for libidn2 < 2.0

Add custom path to libidn. Leave default path for multilib support.

Allow turning off IDN input processing by dig option

Improve documentation, fix support in host

Fix configure changes to adjust help text

Use strlcpy with size guard

Improve IDN variants choosing. Fix idn2 function name.

Remove immediate idn_locale_to_ace and idn_ace_to_locale.

Signed-off-by: Petr Menšík <pemensik@redhat.com>
2018-03-17 13:13:47 +00:00
Tomas Hozza
505f673451 Add support for libidn2
Added two new configure options:
--with-libidn2 - to enable IDN using GNU libidn2

idnkit, libidn and libidn2 support can not be used at the same time.

NOTE: libidn2 does not support punycode back to Unicode
characters, so support for this is missing.

Signed-off-by: Tomas Hozza <thozza@redhat.com>

Removed iconv, convert directly from locale to ACE

Fix libidn2 and idnkit origin appending

Make IDN options in help less different

Signed-off-by: Petr Menšík <pemensik@redhat.com>
2018-03-17 13:13:47 +00:00
Tomas Hozza
2320443f63 Add support for GNU libidn
Added new configure option:
--with-libidn - to enable IDN using GNU libidn

Renamed configure option:
--with-idn to --with-idnkit to make the option usage more clear

idnkit and libidn support can not be used at the same time.

Signed-off-by: Tomas Hozza <thozza@redhat.com>
2018-03-17 13:13:47 +00:00
Evan Hunt
7d29f7e94b CHANGES, doc 2018-02-24 11:02:03 -08:00
Evan Hunt
05a91e4e4c list servers that time out in dig +nssearch 2018-02-24 10:56:09 -08:00
Ondřej Surý
843d389661 Update license headers to not include years in copyright in all applicable files 2018-02-23 10:12:02 +01:00
Tinderbox User
72326f7701 update copyright notice / whitespace 2018-02-18 23:47:45 +00:00
Mark Andrews
67eea245f5 reorder test to silence cppcheck 2018-02-16 10:20:39 +11:00
Mark Andrews
b060852a7c signed vs unsigned fixes 2018-02-16 10:19:57 +11:00
Tinderbox User
74651f35ef regen master 2018-02-10 01:12:12 +00:00
Tinderbox User
02ce048c91 update copyright notice / whitespace 2018-02-08 23:46:17 +00:00
Tony Finch
cc82b5aa3c Document dig -u in manpage (#47150) 2018-02-09 00:50:51 +05:30
Mark Andrews
940449fc72 4845. [bug] Dig (non iOS) should exit on malformed names.
[RT #46806]
2017-12-12 13:43:55 +11:00
Ray Bellis
d92d70ac5d fix warning under Xcode for iOS 2017-11-27 10:16:55 +00:00
Ray Bellis
8993ecd06a 4824. [port] Add iOS hooks to dig. [RT #42011] 2017-11-23 16:58:12 +11:00
Mark Andrews
e2f9dcfd86 more DNS_NAME_INITABSOLUTE cases 2017-11-14 00:21:50 +11:00
Mark Andrews
3def40b01b 4816. [bug] Don't use a common array for storing EDNS options
in DiG as it could fill up. [RT #45611]
2017-11-13 16:10:35 +11:00
Tinderbox User
0e29543a3d regen master 2017-11-07 21:42:32 +00:00
Evan Hunt
23b81977fe [master] minor doc fixes 2017-11-07 13:23:41 -08:00
Michał Kępień
14afc8425b [master] Prevent dig INSIST failures and hangs in some failure modes
4756.	[bug]		Interrupting dig could lead to an INSIST failure after
			certain errors were encountered while querying a host
			whose name resolved to more than one address.  Change
			4537 increased the odds of triggering this issue by
			causing dig to hang indefinitely when certain error
			paths were evaluated.  dig now also retries TCP queries
			(once) if the server gracefully closes the connection
			before sending a response. [RT #42832, #45159]
2017-10-05 09:42:31 +02:00
Mark Andrews
055d310e54 add L for wide 2017-10-04 20:44:01 +11:00
Mark Andrews
f9f3f20d2d 4739. [cleanup] Address clang static analysis warnings. [RT #45952] 2017-09-27 10:27:09 +10:00
Mark Andrews
744061a03b 4738. [port] win32: strftime mishandles %Z. [RT #46039] 2017-09-26 23:32:40 +10:00
Mark Andrews
cb629cdeda more str{n}{cat,cpy} corrections rt45981_stage2 2017-09-14 18:11:56 +10:00
Evan Hunt
114f95089c [master] cleanup strcat/strcpy
4722.	[cleanup]	Clean up uses of strcpy() and strcat() in favor of
			strlcpy() and strlcat() for safety. [RT #45981]
2017-09-13 00:14:37 -07:00
Mark Andrews
abda73147d fix first if test in setoption 2017-09-13 11:57:00 +10:00
Mark Andrews
34130ee25a 4719. [bug] Address PVS static analyzer warnings. [RT #45946] 2017-09-13 09:50:51 +10:00
Evan Hunt
b103b0c011 [master] remap getaddrinfo() to irs_getgetaddrinfo()
The libirs version of getaddrinfo() cannot be called from within BIND9.
2017-09-11 15:03:57 -07:00
Evan Hunt
8e014c45ae [master] dig: retain domain when retrying with tcp
4712.	[bug]		"dig +domain" and "dig +search" didn't retain the
			search domain when retrying with TCP. [RT #45547]
2017-09-11 10:10:16 -07:00
Francis Dupont
90f6140832 Finished merge of rt45019 (openssl hash default) 2017-09-09 10:30:16 +02:00
Evan Hunt
bcb7c7fdad [master] fix tag 2017-09-08 18:22:12 -07:00
Evan Hunt
8eb88aafee [master] add libns and remove liblwres
4708.   [cleanup]       Legacy Windows builds (i.e. for XP and earlier)
                        are no longer supported. [RT #45186]

4707.	[func]		The lightweight resolver daemon and library (lwresd
			and liblwres) have been removed. [RT #45186]

4706.	[func]		Code implementing name server query processing has
			been moved from bin/named to a new library "libns".
			Functions remaining in bin/named are now prefixed
			with "named_" rather than "ns_".  This will make it
			easier to write unit tests for name server code, or
			link name server functionality into new tools.
			[RT #45186]
2017-09-08 13:47:34 -07:00
Mark Andrews
164616cb9c don't attempt to link -lcrypto multiple times 2017-09-08 16:15:37 +10:00
Evan Hunt
509ba96497 [rt45019] separate DNS_CRYPTO_LIBS from ISC_OPENSSL_LIBS and use both 2017-09-07 22:05:20 -07:00
Tinderbox User
a5d6b4c4c8 regen master 2017-08-30 01:12:14 +00:00
Michał Kępień
d6814700de [master] Ensure consistent handling of -4/-6 command line options in all tools
4690.	[bug]		Command line options -4/-6 were handled inconsistently
			between tools. [RT #45632]
2017-08-29 10:19:38 +02:00
Mark Andrews
07741d43c8 4688. [protocol] Check and display EDNS KEY TAG options (RFC 8145) in
messages. [RT #44804]
2017-08-25 08:38:19 +10:00
Evan Hunt
b2bf8de2a3 [master] split up main and add callback function pointers to support iOS
4677.	[port]		Split up the main function in dig to better support
			the iOS app version. [RT #45508]
2017-08-10 22:51:24 -07:00
Tinderbox User
20809d0a5a regen master 2017-08-10 01:11:49 +00:00
Evan Hunt
c4cfb0b4dc [master] remove dig +sigchase
4674.   [func]          "dig +sigchase", and related options "+topdown" and
                        "+trusted-keys", have been removed. Use "delv" for
                        queries with DNSSEC validation. [RT #42793]
2017-08-09 11:03:27 -07:00
Evan Hunt
cdacec1dcb [master] silence gcc 7 warnings
4673.	[port]		Silence GCC 7 warnings. [RT #45592]
2017-08-09 00:17:44 -07:00
Mark Andrews
2019cf29e2 4668. [bug] Use localtime_r and gmtime_r for thread safety.
[RT #45664]
2017-08-03 08:42:27 +10:00
Tinderbox User
93ae9a09a9 regen master 2017-07-29 01:10:15 +00:00
Evan Hunt
cee0d603a3 [master] remove unnecessary acronym expansions 2017-07-28 12:22:31 -07:00
Mark Andrews
4bf32aa587 4654. [cleanup] Don't use C++ keywords delete, new and namespace.
[RT #45538]
2017-07-21 11:52:24 +10:00
Tinderbox User
0297ebcc89 update copyright notice / whitespace 2017-07-20 23:45:27 +00:00
Mark Andrews
124712666e 4653. [bug] Reorder includes to move @DST_OPENSSL_INC@ and
@ISC_OPENSSL_INC@ after shipped include directories.
                        [RT #45581]
2017-07-20 11:52:03 +10:00
Ray Bellis
70676a01eb fixed new warning with previous iOS patch 2017-07-04 12:12:11 +01:00
Ray Bellis
03a4e4381e fix warnings from iOS build of dig 2017-07-04 11:51:36 +01:00
Mark Andrews
7ef453bf43 4608. [func] DiG now warns about .local queries which are reserved
for Multicast DNS. [RT #44783]
2017-04-24 11:56:22 +10:00
Tinderbox User
2d863323b6 regen master 2017-04-21 01:05:18 +00:00
Tinderbox User
3b443e87a0 update copyright notice / whitespace 2017-04-20 23:45:39 +00:00
Mark Andrews
033a59090c 4586. [func] dig, host and nslookup now use TCP for ANY queries.
[RT #44687]
2017-04-20 13:20:41 +10:00
Mark Andrews
3742338a7b 4585. [port] win32: Set CompileAS value. [RT #42474] 2017-04-20 12:41:40 +10:00
Tinderbox User
38704ecee9 regen master 2017-03-26 01:05:14 +00:00
Tinderbox User
0d9aa35cac update copyright notice / whitespace 2017-03-25 23:45:38 +00:00
Evan Hunt
39eb1d0353 [master] host -A
4593.	[func]		"host -A" returns most records for a name but
			omits RRSIG, NSEC and NSEC3. (Thanks to Tony Finch.)
			[RT #43032]
2017-03-25 12:49:25 -07:00
Evan Hunt
db93f3d4b3 [master] document that delv should be used instead of sigchase 2017-03-25 12:22:51 -07:00
Mark Andrews
af2b20ee3f 4574. [bug] Dig leaked memory with multiple +subnet options.
[RT #44683]
2017-02-14 15:52:40 +11:00
Tinderbox User
4502e3c5dd regen master 2017-01-21 01:04:48 +00:00
Tinderbox User
96f5064e3c update copyright notice / whitespace 2017-01-20 23:45:34 +00:00
Evan Hunt
4f744a027f [master] fix dig +ednsopt padding error
4556.	[bug]		Sending an EDNS Padding option using "dig
			+ednsopt" could cause a crash in dig. [RT #44462]
2017-01-19 23:52:41 -08:00
Evan Hunt
25a9b90369 [master] symbolic option names for dig +ednsopt
4555.	[func]		dig +ednsopt: EDNS options can now be specified by
			name in addition to numeric value. [RT #44461]
2017-01-19 23:46:37 -08:00
Tinderbox User
2067cfdb46 regen master 2017-01-06 01:05:20 +00:00
Tinderbox User
f557aeef7c update copyright notice / whitespace 2017-01-05 23:45:24 +00:00
Tinderbox User
37ae137942 regen master 2017-01-05 01:05:07 +00:00
Evan Hunt
5804332588 [master] EDNS padding and keepalive support
4549.	[func]		Added support for the EDNS TCP Keepalive option
			(RFC 7828). [RT #42126]

4548.	[func]		Added support for the EDNS Padding option (RFC 7830).
			[RT #42094]
2017-01-04 09:16:30 -08:00
Mark Andrews
52e2aab392 4546. [func] Extend the use of const declarations. [RT #43379] 2016-12-30 15:45:08 +11:00
Mark Andrews
6089c8df71 4537. [bug] Handle timouts better in dig/host/nslookup. [RT #43576] 2016-12-14 15:42:43 +11:00
Tinderbox User
16fde7f0b3 regen master 2016-12-07 01:05:34 +00:00
Mark Andrews
1b8ce3b330 4527. [doc] Support DocBook XSL Stylesheets v1.79.1. [RT #43831] 2016-12-07 10:49:55 +11:00
Curtis Blackburn
eb4ffd6685 4515. [port] FreeBSD: Find readline headers when they are in
edit/readline/ instead of readline/. [RT #43658]
2016-11-18 11:12:42 -08:00
Evan Hunt
6087f87afb [master] make uninstall
4503.	[cleanup]	"make uninstall" now removes file installed by
			BIND. (This currently excludes Python files
			due to lack of support in setup.py.) [RT #42912]
2016-11-01 19:17:07 -07:00
Tinderbox User
c970f162b6 regen master 2016-10-29 01:06:53 +00:00
Mark Andrews
42470b0b87 4496. [func] dig: add +idnout to control whether labels are
display in punycode or not.  Requires idn support
                        to be enabled at compile time. [RT #43398]
2016-10-28 12:05:19 +11:00
Mark Andrews
6fbb2b51d8 4494. [bug] Look for <editline/readline.h>. [RT #43429] 2016-10-27 15:48:51 +11:00
Witold Krecicki
358dfaee18 4487. [test] Make system tests work on Windows. [RT #42931] 2016-10-19 17:18:42 +02:00
Tinderbox User
5e32012dcf regen master 2016-10-10 01:04:44 +00:00
Mark Andrews
3b6aba8dcb 4481. [func] dig: make +class, +crypto, +multiline, +rrcomments,
+onesoa, +qr, +ttlid, +ttlunits and -u per lookup
                        rather than global. [RT #42450]
2016-10-10 11:55:59 +11:00
Tinderbox User
18c84f3b0b regen master 2016-09-14 01:04:44 +00:00
Mark Andrews
df17290113 4468. [bug] Address ECS option handling issues. [RT #43191] 2016-09-14 08:22:15 +10:00
Evan Hunt
a26a62cef2 [master] fix tcp client memory leak
4459.	[bug]		TCP client objects created to handle pipeline queries
			were not cleaned up correctly, causing uncontrolled
			memory growth. [RT #43106]
2016-08-29 11:56:36 -07:00
Mark Andrews
63fe88e8d8 4456. [doc] Add DOCTYPE and lang attribute to <html> tags.
[RT #42587]
2016-08-26 15:14:04 +10:00
Tinderbox User
5883460271 regen master 2016-08-25 01:04:54 +00:00
Evan Hunt
1e50c0d857 [master] add dnssec-keygen and nslookup man page links to ARM 2016-08-24 20:39:03 +00:00
Tinderbox User
b297f5cdd5 regen master 2016-08-19 01:04:52 +00:00
Mark Andrews
8ee6f289d8 4450. [port] Provide more nuanced HSM support which better matches
the specific PKCS11 providers capabilities. [RT #42458]
2016-08-19 08:02:51 +10:00
Mark Andrews
8a98ea9e94 4441. [cleanup] Alphabetize host's help output. [RT #43031] 2016-08-15 11:21:52 +10:00
Evan Hunt
d20f0472df [master] silence clang warnings
4422.	[port]		Silence clang warnings in dig.c and dighost.c.
			[RT #42451]
2016-07-21 15:53:43 -07:00
Mark Andrews
e7e7efe901 4420. [func] nslookup now looks for AAAA as well as A by default.
[RT #40420]
2016-07-22 03:27:49 +10:00
Mark Andrews
30e4fbdfb5 consolidate copyrights 2016-07-21 17:24:07 +10:00
Tinderbox User
6807a2dc3c regen master 2016-07-21 07:11:01 +00:00
Mark Andrews
813e9f7ee2 copyright 2016-07-21 17:00:44 +10:00
Mukund Sivaraman
4116177ac4 Make fixes for GCC 6 (#42721) 2016-07-13 13:55:50 +05:30
Mark Andrews
0c27b3fe77 4401. [misc] Change LICENSE to MPL 2.0. 2016-06-27 14:56:38 +10:00
Tinderbox User
1c6d1ca335 update copyright notice / whitespace 2016-06-01 23:45:30 +00:00
Francis Dupont
3933e5c763 Merged rt42563 (ht.c fixes) 2016-06-01 14:49:01 +02:00
Tinderbox User
260e8e04b0 regen master 2016-05-27 01:05:21 +00:00
Mark Andrews
28784b996b minor host man page cleanups from Tony Finch [RT #42476] 2016-05-26 13:56:42 +10:00
Mark Andrews
7abac4a395 silence warning 2016-05-17 17:26:27 +10:00
Tinderbox User
3241ddcf93 regen master 2016-04-30 01:05:59 +00:00
Tinderbox User
21635968f7 update copyright notice / whitespace 2016-04-29 23:45:42 +00:00
Mark Andrews
48bf87ba83 4351. [bug] 'dig +noignore' didn't work. [RT #42273] 2016-04-29 12:41:02 +10:00
Mark Andrews
cf69e3d8b2 alphabetize host options 2016-04-29 11:21:49 +10:00
Tinderbox User
a0132868d1 update copyright notice / whitespace 2016-03-25 23:45:16 +00:00
Evan Hunt
4a5f5c4ce1 [master] install mdig to bin not sbin 2016-03-25 09:52:00 -07:00
Tinderbox User
e285c11870 regen master 2016-03-24 01:05:08 +00:00
Evan Hunt
7fa4c18451 [master] ECS family 0 handling was still broken 2016-03-23 15:00:30 -07:00
Evan Hunt
05b7b63f17 [master] more ECS handling fixes 2016-03-23 09:59:42 -07:00
Evan Hunt
395e6865d5 [master] fix ECS with family==0
4341.	[bug]		Correct the handling of ECS options with
			address family 0. [RT #41377]
2016-03-23 08:54:46 -07:00
Mark Andrews
455c0848f8 4322. [security] Duplicate EDNS COOKIE options in a response could
trigger an assertion failure. (CVE-2016-2088)
                        [RT #41809]
2016-02-27 11:23:50 +11:00
Tinderbox User
ee2e5fec65 regen master 2016-02-11 01:04:20 +00:00
Mark Andrews
b91d11bfcc copyrights / whitespace 2016-02-11 10:44:21 +11:00
Mukund Sivaraman
79a55d4f4d Add option to tools to print RRs in unknown presentation format (#41595) 2016-02-09 15:39:02 +05:30
Evan Hunt
df9a49ee07 [master] dig/mdig could send misformatted ECS options
4307.	[bug]		"dig +subnet" and "mdig +subnet" could send
			incorrectly-formatted Client Subnet options
			if the prefix length was not divisble by 8.
			Also fixed a memory leak in "mdig". [RT #45178]
2016-01-29 17:41:29 -08:00
Tinderbox User
6825f304c5 regen master 2016-01-29 01:04:18 +00:00
Tinderbox User
b7f3400f3b update copyright notice / whitespace 2016-01-28 23:45:29 +00:00
Evan Hunt
8ede7a974b [master] fix dig=+subnet zero-length prefix
4303.	[bug]		"dig +subnet" was unable to send a prefix length of
			zero, as it was incorrectly changed to 32 for v4
			prefixes or 128 for v6 prefixes. In addition to
			fixing this, "dig +subnet=0" has been added as a
			short form for 0.0.0.0/0. The same changes have
			also been made in "mdig". [RT #41553]
2016-01-27 19:03:54 -08:00
Evan Hunt
30370d905e [master] removed /Gy- from VS project files
4302.	[port]		win32: fixed a build error in VS 2015. [RT #41426]
2016-01-27 15:27:57 -08:00
Tinderbox User
742cb92338 regen master 2016-01-06 01:04:26 +00:00
Tinderbox User
feb1ccdaf1 update copyright notice / whitespace 2016-01-05 23:45:26 +00:00
Tinderbox User
4206bb139c regen master 2016-01-05 01:04:24 +00:00
Evan Hunt
8454718b87 [master] document return values from nslookup 2016-01-04 15:38:06 -08:00
Tinderbox User
0226754d9e regen master 2015-12-19 01:04:14 +00:00
Mark Andrews
49762dffc4 4282. [func] 'dig +[no]mapped' determine whether the use of mapped
IPv4 addresses over IPv6 is permitted or not.  The
                        default is +mapped.  [RT #41307]
2015-12-19 09:47:11 +11:00
Evan Hunt
464c2c673b [master] fix dig +norrcomments
4272.	[bug]		dig: the +norrcomments option didn't work with +multi.
			[RT #41234]
2015-12-04 16:16:59 -08:00
Mark Andrews
5b1c7ef35b 4264. [bug] Check const of strchr/strrchr assignments match
argument's const status. [RT #41150]
2015-11-20 18:38:24 +11:00
Tinderbox User
dec590a3de regen master 2015-11-18 01:04:11 +00:00
Jeremy C. Reed
414678df72 Merge branch 'master' of repo.isc.org:/proj/git/prod/bind9 2015-11-16 12:53:55 -05:00
Francis Dupont
dd784c18ef Merged VS 2015 64 bit warnings (#40373) 2015-11-16 17:47:10 +01:00
Jeremy C. Reed
cca02d061f Merge branch 'master' of repo.isc.org:/proj/git/prod/bind9 2015-11-09 22:07:27 -05:00
Tinderbox User
3865e18d3d update copyright notice / whitespace 2015-11-09 23:45:22 +00:00
Jeremy C. Reed
dde7a7d357 Merge branch 'master' of repo.isc.org:/proj/git/prod/bind9 2015-11-09 11:25:01 -05:00
Evan Hunt
e13d04fda9 [master] fix python script versions
4257.	[cleanup]	Python scripts reported incorrect version. [RT #41080]
2015-11-08 21:34:24 -08:00
Jeremy C. Reed
fe12c35c3e fix some spelling typos and standardize some English spellings
(to be consistent)
2015-10-23 13:04:09 -04:00
Tinderbox User
9d557856c2 regen master 2015-10-22 05:53:09 +00:00
Mark Andrews
30eec077db cleanup trailing white space in SGML like files 2015-10-22 16:09:46 +11:00
Tinderbox User
fd2597f756 regen master 2015-10-07 04:11:09 +00:00
Tinderbox User
010a51c427 regen master 2015-10-07 01:06:58 +00:00
Tinderbox User
19c7b1a029 update copyright notice / whitespace 2015-10-06 23:45:23 +00:00
Tinderbox User
2eeb74d1cf regen master 2015-10-06 05:45:21 +00:00
Evan Hunt
14a656f94b [master] upgrade doc toolchain
4237.	[doc]		Upgraded documentation toolchain to use DocBook 5
			and dblatex. [RT #40766]
2015-10-05 21:59:35 -07:00
Mark Andrews
7867d18ce0 Introduce end-of-line normalization 2015-09-29 08:25:35 +10:00
Mark Andrews
48bbe9c7f2 fix opcode usage 2015-09-16 21:17:49 +10:00
Mark Andrews
295a711b72 4204. [bug] 'dig +trace' failed to lookup the correct type if
the initial root ns query was retried. [RT #40296]
`
2015-09-12 09:04:37 +10:00
Mark Andrews
3b83676e07 *.vcxproj.in should use CRLF as EOL 2015-08-27 21:57:18 +00:00
Evan Hunt
420a43c8d8 [master] timing safe memory comparisons
4183.	[cleanup]	Use timing-safe memory comparisons in cryptographic
			code. Also, the timing-safe comparison functions have
			been renamed to avoid possible confusion with
			memcmp(). [RT #40148]
2015-08-17 18:26:44 -07:00
Mark Andrews
efb028b6c8 4173. [bug] dig +sigchase was not properly matching the trusted
key. [RT #40188]
2015-08-12 19:11:49 +10:00
Mark Andrews
b8a04d50a3 Change 3813 broke dig/host -4/-6. No CHANGES as this is has not been released 2015-08-12 12:50:15 +10:00
Mark Andrews
157bc46d2e add '=' to +opcode description 2015-08-12 07:04:08 +10:00
Mark Andrews
80a51d24ea set badcookie not besteffort 2015-07-21 15:15:40 +10:00
Tinderbox User
c0cbdeedb5 regen master 2015-07-10 01:05:03 +00:00
Mark Andrews
2561b2dd84 add comment about +trace and @server 2015-07-09 12:11:46 +10:00
Mark Andrews
6e7f5e8ad5 4159. [cleanup] Alphabetize dig's help output. [RT #39966] 2015-07-08 09:20:49 +10:00
Mark Andrews
b399f4e568 4159. [cleanup] Alphabetize dig's help output. [RT #39966] 2015-07-08 08:49:24 +10:00
Mark Andrews
3e33f4198d 4154. [bug] A OPT record should be included with the FORMERR
response when there is a malformed EDNS option.
                        [RT #39647]

4153.   [bug]           Dig should zero non significant +subnet bits.  Check
                        that non significant ECS bits are zero on receipt.
                        [RT #39647]
2015-07-06 12:52:37 +10:00
Tinderbox User
1879ff4932 regen master 2015-07-06 01:04:49 +00:00
Mark Andrews
ce67023ae3 4152. [func] Implement DNS COOKIE option. This replaces the
experimental SIT option of BIND 9.10.  The following
                        named.conf directives are avaliable: send-cookie,
                        cookie-secret, cookie-algorithm and nocookie-udp-size.
                        The following dig options are available:
                        +[no]cookie[=value] and +[no]badcookie.  [RT #39928]
2015-07-06 09:44:24 +10:00
Tinderbox User
335c82aebd regen master 2015-06-05 01:05:03 +00:00
Evan Hunt
eb447eca88 [master] dig option cleanups
4132.	[cleanup]	dig: added +rd as a synonym for +recurse,
			added +class as an unabbreviated alternative
			to +cl. [RT #39686]
2015-06-04 08:55:32 -07:00
Evan Hunt
a32b6291aa [master] address regression
4126.	[bug]		Addressed a regression introduced in change #4121.
			[RT #39611]
2015-05-26 19:11:08 -07:00
Tinderbox User
e9ed929fd1 regen master 2015-05-20 01:04:55 +00:00
Mark Andrews
c7463967db 4119. [func] Allow dig to set the message opcode. [RT #39550] 2015-05-19 12:46:06 +10:00
Mark Andrews
b292230ab8 4110. [bug] Address memory leaks / null pointer dereferences
on out of memory. [RT #39310]
2015-04-29 03:16:50 +10:00
Francis Dupont
bcb68be0a8 misc fixes for VS 2015 CTP #39267 2015-04-17 02:57:02 +02:00
Evan Hunt
fc3ed1dbda [master] fix +split and +rrcomments with dig +short
4101.	[bug]		dig: the +split and +rrcomments options didn't
			work with +short. [RT #39291]
2015-04-15 09:50:07 -07:00
Evan Hunt
f28e5058c3 [master] dig can now learn the SIT value when retrying
4093.	[func]		Dig now learns the SIT value from truncated
			responses when it retries over TCP. [RT #39047]
2015-04-06 23:16:54 -07:00
Mark Andrews
29d52c001f 4081. [cleanup] Use dns_rdatalist_init consistently. [RT #38759] 2015-03-03 16:43:42 +11:00
Mukund Sivaraman
db93c0def5 Fix a segfault when running nslookup (#38548) 2015-02-26 14:03:35 +05:30
Tinderbox User
0eea9763d8 regen master 2015-02-26 01:04:45 +00:00
Evan Hunt
53ae008f27 [master] reorganize options in dig man page
4066.	[doc]		Reorganize options in the dig man page. [RT #38516]
2015-02-25 16:38:52 -08:00
Tinderbox User
de283bda6a regen master 2015-02-06 01:04:48 +00:00
Tinderbox User
724df78acd update copyright notice / whitespace 2015-02-04 23:45:21 +00:00
Francis Dupont
1059bc2e42 added mdig tool 2015-02-04 14:22:32 +01:00
Tinderbox User
c110d61b17 update copyright notice / whitespace 2015-01-20 23:45:26 +00:00
Evan Hunt
11463c0ac2 [master] clean up gcc -Wshadow warnings
4039.	[cleanup]	Cleaned up warnings from gcc -Wshadow. [RT #37381]
2015-01-20 13:29:18 -08:00
Mark Andrews
44032d3918 4026. [bug] Fix RFC 3658 reference in dig +sigchase. [RT #38173] 2014-12-22 09:40:26 +11:00
Mukund Sivaraman
c5e9423340 Fix a dig segfault due to bad linked list usage [RT #37591]
The crash (#37591) seems to happen because the query is taken out of
lookup->q(query->link), and put on lookup->connecting(query->clink).
The code checks query->link where it is detached (-1 in next pointer).
However, there's no need to call send_tcp_connect() there as the queries
are already connecting at that point.
2014-12-03 16:09:25 +05:30
Tinderbox User
def82e8de9 regen master 2014-10-31 01:04:53 +00:00
Mark Andrews
f0a54842b1 3994. [func] Dig now supports setting the last unassigned DNS
header flag bit (dig +zflag). [RT #37421]
2014-10-31 10:16:00 +11:00
Mark Andrews
0f5144163c 3993. [func] Dig now supports EDNS negotiation by default.
(dig +[no]ednsnegotiation). [RT #37604]
2014-10-30 23:13:12 +11:00
Tinderbox User
a3ff24aaa5 regen master 2014-10-30 01:05:12 +00:00
Mark Andrews
f274cbeaed 3992. [func] DiG can now send queries without questions
(dig +header-only). [RT #37599]
2014-10-30 11:42:02 +11:00
Tinderbox User
78ec962d98 regen master 2014-10-21 01:04:47 +00:00
Mark Andrews
40b28f5402 3985. [doc] Describe how +ndots and +search interact in dig.
[RT #37529]
2014-10-21 08:05:21 +11:00
Mark Andrews
c12c746e3a 3972. [bug] Fix host's usage statement. [RT #37397] 2014-10-07 01:09:49 +11:00
Tinderbox User
3fd181c98f update copyright notice 2014-10-01 23:45:24 +00:00
Mark Andrews
7d891eaf91 3962. [bug] 'dig +topdown +trace +sigchase' address unhandled error conditions. [RT #34663] 2014-10-01 10:01:54 +10:00
Tinderbox User
be484acb22 update copyright notice 2014-09-30 23:45:22 +00:00
Mark Andrews
c83b91fb63 3960. [bug] 'dig +sigchase' could loop forever. [RT #37220] 2014-10-01 07:06:20 +10:00
Tinderbox User
4fe1df3962 regen master 2014-09-14 01:05:19 +00:00
Mark Andrews
3867312e4c 3951. [func] Add the ability to set yet-to-be-defined EDNS flags
to dig (+ednsflags=#). [RT #37142]
2014-09-13 19:13:59 +10:00
Tinderbox User
5fa6a064b8 regen master 2014-09-05 19:26:47 +00:00
Mark Andrews
905ba39e10 3929. [bug] 'host -a' needed to clear idnoptions. [RT #36963] 2014-08-26 08:27:24 +10:00
Tinderbox User
fea81a5e0e update copyright notice 2014-08-22 23:45:27 +00:00
Evan Hunt
24aaa04401 [master] register pkcs11 error codes in dig
3927.	[bug]		dig: report PKCS#11 error codes correctly when
			compiled with --enable-native-pkcs11. [RT #36956]
2014-08-22 10:40:43 -07:00
Mark Andrews
3d66a979b5 3919. [bug] dig: continue to next line if a address lookup fails
in batch mode. [RT #36755]
2014-08-22 15:40:43 +10:00
Mark Andrews
f5695ad0e1 3917. [bug] dig, nslookup and host now continue on names that are
too long after applying a search list elements.
                        [RT #36892]
2014-08-21 18:05:55 +10:00
Tinderbox User
a24330c480 regen master 2014-08-16 01:06:20 +00:00
Jeremy C. Reed
821350367e fix typos or misspellings 2014-08-15 10:35:31 -05:00
Mark Andrews
bc5db10d72 [rt36611]
3903.   [bug]           Improve the accuracy of DiG's reported round trip
                        time. [RT 36611]
2014-07-31 07:39:59 +10:00
Mark Andrews
70be388974 [rt36039]
3902.   bug]            liblwres wasn't handling link-local addresses in
                        nameserver clauses in resolv.conf. [RT #36039]
2014-07-30 23:26:37 +10:00
Tinderbox User
d9f0b06dc2 regen master 2014-07-16 01:05:40 +00:00
Mark Andrews
2064e46209 3895. [func] Add the ability to set the DSCP code point to dig.
[RT #36546]
2014-07-15 23:27:14 +10:00
Mark Andrews
ccaee7760f add +ednsopt to -h output 2014-07-10 16:19:33 +10:00
Tinderbox User
1cd80e4825 update copyright notice 2014-07-07 23:45:21 +00:00
Mark Andrews
3c13af3759 3892. [bug] Setting '-t aaaa' in .digrc had unintended side
effects. [RT #36452]
2014-07-08 02:00:28 +10:00
Evan Hunt
a4e76a630e [master] update gitignore files; use rev-parse to get srcid 2014-06-17 13:49:30 -07:00
Mark Andrews
bd7996b047 remove redundent nul setting 2014-06-17 10:26:57 +10:00
Evan Hunt
56510cd031 [master] null terminate strings for coverity 2014-06-16 15:30:11 -07:00
Mark Andrews
b836de821a fail if SIT data is too large 2014-06-12 07:57:19 +10:00
Tinderbox User
b90c4f0646 regen master 2014-05-15 05:05:58 +00:00
Tinderbox User
9cc7fd5e1a Merge branch 'master' of ssh://repo.isc.org/proj/git/prod/bind9 2014-05-15 05:02:02 +00:00
Tinderbox User
6bcac4b58d regen master 2014-05-15 04:46:54 +00:00
Mark Andrews
97553eec86 grammar 2014-05-15 14:44:43 +10:00
Mark Andrews
0af902c0df white space 2014-05-15 14:30:31 +10:00
Mark Andrews
2d0bc1e0f3 +domain was out of order 2014-05-15 14:26:57 +10:00
Tinderbox User
8e16b30787 regen master 2014-05-15 03:57:31 +00:00
Mark Andrews
9c36846e41 3849. [doc] Alphabetized dig's +options. [RT #35992] 2014-05-15 13:38:10 +10:00
Mark Andrews
71e9639c1d ignore dig-symtbl.c, host-symtbl.c and nslookup-symtbl.c 2014-05-15 12:12:50 +10:00
Tinderbox User
297342940e regen master 2014-05-14 01:05:10 +00:00
Mark Andrews
05816676bb 3846. [bug] "dig +notcp ixfr=<serial>" should result in a UDP
ixfr query. [RT #35980]
2014-05-14 09:59:02 +10:00
Mark Andrews
23c7871cc7 don't read past end of command line argument 2014-04-30 16:09:16 +10:00
Mark Andrews
b75c645026 have +[no]ttl as a alias for +[no]ttlid 2014-04-30 16:05:18 +10:00
Mark Andrews
3057498bda add missing default action for +[no]ttl* 2014-04-30 15:59:15 +10:00
Tinderbox User
e68c527dff regen master 2014-04-30 01:05:11 +00:00
Evan Hunt
cd750f6e74 [master] dig +ttlunits
3829.	[func]		"dig +ttlunits" causes dig to print TTL values
			with time-unit suffixes: w, d, h, m, s for
			weeks, days, hours, minutes, and seconds. (Thanks
			to Tony Finch.) [RT #35823]
2014-04-29 16:58:36 -07:00
Tinderbox User
953189d30e update copyright notice 2014-04-22 23:45:19 +00:00
Evan Hunt
1a9932dde1 [master] dig +qr now shows query size
3816.	[func]		"dig +qr" now reports query size. (Thanks to
			Tony Finch.) [RT #35822]
2014-04-22 12:38:53 -07:00