Commit graph

216 commits

Author SHA1 Message Date
Brian Wellington
ec772e873b 651. [func] The AD bit in responses now has the meaning
specified in <draft-ietf-dnsext-ad-is-secure>.
2001-01-04 00:24:26 +00:00
Brian Wellington
8d6fe3f388 Pointers to regions are silly. Use regions instead. This removes 1 small
allocation per query.
2001-01-03 20:42:10 +00:00
Brian Wellington
78838d3e0c 8 space -> tab conversion 2000-12-11 19:24:30 +00:00
Andreas Gustafsson
8db2b65318 more DNS_OPT_NEWCODES sanitation 2000-12-02 05:28:05 +00:00
Andreas Gustafsson
90ad126bb3 more DNS_OPT_NEWCODES sanitation 2000-12-02 04:44:51 +00:00
Andreas Gustafsson
294ae26fb3 more DNS_OPT_NEWCODES sanitation 2000-12-02 04:30:08 +00:00
Andreas Gustafsson
ab3f2d77bd sanitize away the DNS_OPT_NEWCODES stuff 2000-12-02 04:13:35 +00:00
Andreas Gustafsson
83c45e69f8 Accept any trailing garbage in messages, not just the Microsoft AXFR request
variety, logging a message at debug level 1.  We may or may not add an option to make this
conditional.
2000-11-22 23:09:58 +00:00
Brian Wellington
942d1a339b Decompression contexts now take a type instead of the "strict" boolean
value - the type can be "any", "strict", or "none".  This fixes potential
problems with compression in unknown rr types.
2000-11-14 23:29:55 +00:00
Andreas Gustafsson
febaa09184 551. [func] Implemented the 'sortlist' option. 2000-11-10 03:16:26 +00:00
Brian Wellington
bb71d64085 dns_message_checksig should not require a view in all cases 2000-10-27 21:56:57 +00:00
Mark Andrews
c03bb27f06 532. [func] Implement DNS UPDATE pseudo records using
DNS_RDATA_UPDATE flag.

 531.   [func]          Rdata really should be initalized before being
                        assigned to (dns_rdata_fromwire(), dns_rdata_fromtext(),
                        dns_rdata_clone(), dns_rdata_fromregion()),
                        check that it is.
2000-10-25 04:26:57 +00:00
Michael Sawyer
c9c5b25473 Fix overzealous printing of newlines in message_[pseudo]sectiontotext(). 2000-10-20 20:40:46 +00:00
Mark Andrews
5e589b5356 Uninitalised link fixes, batch 1. 2000-10-20 02:21:58 +00:00
Brian Wellington
0e5d6900bd Various hacks to allow (at some point in the future) interoperability
with Windows 2000's broken implementation of TKEY.
2000-10-12 00:40:52 +00:00
Brian Wellington
703dfde61b An out of memory error could cause an assertion. 2000-10-11 23:57:38 +00:00
Michael Sawyer
dc570b92f6 Add support for proposed ZONE and VIEW opt attributes. These are currently
hidden behind #ifdef's, since no OPT code number has yet to be assigned
by the IANA.  They are also not quite complete in all regards; VIEW
options are understood and ignored.  ZONE options are understood and
acted upon, though some of the error cases aren't quite right.

Remove doubled isc_mem_stats in dighost.c

Update todo list.

Change literal 255's to DNS_NAME_MAXWIRE in name.c
2000-10-11 17:44:18 +00:00
Brian Wellington
d1cbf71409 clean up suspicious looking and incorrect uses of dns_name_fromregion 2000-10-07 00:09:28 +00:00
Brian Wellington
d77d087809 uninitialized variables. oops. 2000-10-06 22:02:02 +00:00
Brian Wellington
6850cdd449 508. [func] dns_message_parse() can now do a best-effort
attempt, which should allow dig to print more invalid
                        messages.
2000-10-06 18:58:30 +00:00
Brian Wellington
5c29047792 minor dst api change 2000-09-12 09:59:28 +00:00
Mark Andrews
5126112bc3 438. [func] New function dns_message_getrawmessage(). 2000-09-11 05:55:27 +00:00
Brian Wellington
230aff0eac Fix the crash caused by a signed message not matching any view [RT #290].
This fixes the crash, but not the real problem, which is that the TSIG needs
to be verified even if there is no matching view.
2000-09-09 10:46:58 +00:00
Brian Wellington
abaec24086 429. [bug] The space reserved for a TSIG record in a response
was 2 bytes too short, leading to message
                        generation failures.
2000-09-07 21:08:52 +00:00
Brian Wellington
08eb1c80d2 dns_message_setsig0key was incorrectly requiring msg->buffer to be non-null. 2000-08-22 01:10:42 +00:00
Brian Wellington
67d3660cd6 The message code was checking to see if an rdata type could appear in the
question section, and returning a formerr if it was invalid.  This isn't
exactly right, since it should be the caller's responsibility to check, not
message_parse.  It definitely caused weirdness when parsing responses, and
the only places where queries were parsed already does the right thing.
2000-08-21 22:41:13 +00:00
Brian Wellington
f2338a0d6a Minor tsig cleanup. 2000-08-14 18:13:11 +00:00
Andreas Gustafsson
7d823f705d deal with nonstandard MS extension 2000-08-07 20:37:34 +00:00
David Lawrence
40f53fa8d9 Trailing whitespace trimmed. Perhaps running "perl util/spacewhack.pl in your
own CVS tree will help minimize CVS conflicts.  Maybe not.
Blame Graff for getting me to trim all trailing whitespace.
2000-08-01 01:33:37 +00:00
David Lawrence
15a4474541 word wrap copyright notice at column 70 2000-07-27 09:55:03 +00:00
Brian Wellington
6dc130c7c9 351. [bug] Constructing a response with rcode SERVFAIL to a TSIG
signed query could crash the server.
2000-07-25 22:51:46 +00:00
Andreas Gustafsson
99eba32b06 Removed the code added in revision 1.57:
"Store CNAMEs and their SIGs (if any) in their own name structure on
  the name list.  I.e. do not mix CNAMEs with non-CNAME data.  Do the
  same thing for DNAMEs."

because it caused DNSSEC validation of responses to ANY queries at
nodes with CNAME records to fail, and no one was able to figure out
why it was added in the first place.  As a beneficial side effect,
findname() now finds names even if they have attribute bits set
differently from the one being searched for.  This supersedes
the fix of revision 1.133.
2000-07-20 00:05:32 +00:00
Michael Graff
d2762d6c37 If the name is a dynamic name, free its memory 2000-07-10 20:46:02 +00:00
Andreas Gustafsson
428b78e56d RT #153: when invoked with type==CNAME and a message
not constructed by dns_message_parse(), dns_message_findname() failed to
find anything due to checking for attribute bits set only by dns_message_parse().
This caused an infinite loop when constructing the response to an ANY query
at a CNAME in a secure zone.
2000-06-29 19:49:43 +00:00
Andreas Gustafsson
824068b85b cut-and-paste-o: dns_message_findname() tested for
dns_rdatatype_cname twice instead of cname+dname
2000-06-29 18:58:32 +00:00
Michael Sawyer
167f530b5b Only test rendering class for != NONE/ANY in non-update messages 2000-06-23 20:47:23 +00:00
Brian Wellington
22057930cd TSIG AXFR verify leaked memory when talking to a BIND 8 server. 2000-06-23 02:07:58 +00:00
David Lawrence
9c3531d72a add RCS id string 2000-06-22 22:00:42 +00:00
Michael Sawyer
9b3a69e6a7 Improved printing of DynDNS packets in *totext. 2000-06-16 18:48:41 +00:00
Michael Sawyer
6dd86183b0 Revert 1.126 -> 1.125 2000-06-16 18:27:49 +00:00
Michael Sawyer
3238566d66 Change counts on message_totext to use update names when un update message
Improve handling of rdatasets without rdata.
2000-06-16 17:48:05 +00:00
Michael Sawyer
58c40ca8bd Modify message_sectiontotext() to use update section names when opcode
is update.
2000-06-09 01:46:59 +00:00
David Lawrence
6d12fdf966 Megacommit of many files.
Mostly, several functions that take pointers as arguments, almost
always char * pointers, had those pointers qualified with "const".
Those that returned pointers to previously const-qualified arguments
had their return values qualified as const.  Some structure members
were qualified as const to retain that attribute from the variables
from which they were assigned.

The macro DE_CONST is used to deal with a handful of very special
places where something is qualified as const but really needs to have
its const qualifier removed.

rdata.c now defines macros for the prototypes of the basic rdata functions,
and all of the lib/dns/rdata/**/*.c files now use them.

Some minor integer-compatibility issues.  (IE, ~0x03 is a signed int,
so assigning it to an unsigned int should use a cast.  The type of an
enum member is int, so there are some conversion issues there, too.)

A pointers-to-function should not be cast to a pointer-to-object.

Variables should not be named for C reserved identifiers.

One or two set-but-not-used variables removed.

Minor other ISC style cleanups.
2000-06-01 18:26:56 +00:00
Brian Wellington
7a97b7630f dns_message_gettsig/getsig0 cleanup 2000-06-01 01:30:55 +00:00
Brian Wellington
fe0e3c7707 Rename message->tsigset/querytsigset to tsig/querytsig. 2000-05-31 23:58:35 +00:00
Brian Wellington
b6e9d91ff0 dns_message_rendersection left the buffer in a corrupted state if there
was reserved space in the message and the section had no names.
2000-05-30 23:47:56 +00:00
Brian Wellington
0f80bfec68 The message code now has functions to manipulate TSIG and SIG(0), and the
callers use these functions.  Also a lot of TSIG cleanup.
2000-05-30 23:14:57 +00:00
Brian Wellington
af60263664 Added dns_tsigkey_attach & _detach, to simplify reference counting.
Added dns_message_get/settsigkey to deuglify tsig key handling in message code.
2000-05-26 00:16:46 +00:00
Brian Wellington
a9bc95f22e dst now stores the key name as a dns_name_t, not a char *. 2000-05-24 23:13:32 +00:00
Michael Sawyer
194de894f0 Slight change to printing of \n's. 2000-05-24 19:28:31 +00:00
Michael Sawyer
c7868e2262 Modify dns_message_totext, dns_message_sectiontotext,
dns_message_pseudosectiontotext to use bitfields instead of flags
2000-05-24 18:17:53 +00:00
David Lawrence
ed019cabc1 fixed lines > 79 columns wide 2000-05-24 05:10:00 +00:00
David Lawrence
2e4ad2f406 removed unreachable break statements that followed return statements 2000-05-24 02:42:03 +00:00
Brian Wellington
41faaa9b35 If an incoming message contains a SIG(0), store the rdataset owner name
in the message structure, even though it should be the root.  Also,
return this name in dns_message_getsig0().
2000-05-23 23:35:54 +00:00
Brian Wellington
81b438273a Commented hard to understand behavior in dns_message_signer 2000-05-23 00:23:42 +00:00
Brian Wellington
c637772ac3 Attempting to delete a SIG set with dynamic update crashed the server. 2000-05-23 00:09:09 +00:00
Brian Wellington
7e8dd00fce More tsig rdatastruct problems fixed 2000-05-22 23:17:22 +00:00
Michael Sawyer
54229947d3 Change strlen to sizeof. 2000-05-22 22:41:24 +00:00
Michael Sawyer
1ed4ba5a1f Add pseudosection printing, and dns_message_pseudosectiontotext(). 2000-05-22 21:22:06 +00:00
Brian Wellington
d1eee46938 fixes to dns_message_sectiontotext for the question section 2000-05-20 02:00:29 +00:00
Michael Sawyer
9dca36b2ab Remove unused no_rdata_or_ttl flag from message_totext and message_sectiontotest routines. 2000-05-20 01:29:58 +00:00
Brian Wellington
c610d78e67 changes to the rdata_tostruct api had broken tsig/tkey 2000-05-19 22:11:20 +00:00
Brian Wellington
c50936eb40 changed dst_key_free() prototype, misc. dst cleanup 2000-05-19 00:20:59 +00:00
Andreas Gustafsson
0fd13c7aca reversed previous change: data that is neither secure not pending
is assumed to be from insecure zones and therefore should have AD set
per server policy
2000-05-18 01:40:56 +00:00
Andreas Gustafsson
b2d0b835c7 for purposes of clearing the AD bit, consider all trust levels below dns_trust_secure to be 'pending' 2000-05-16 22:16:02 +00:00
Michael Sawyer
c95a89b433 Added dns_message_sectiontotext() and dns_message_totext() functions. 2000-05-15 17:49:57 +00:00
David Lawrence
6028d1ce03 Needs string.h for function prototypes. For some reason gcc and other
compilers do not warn about the missing str*/mem* prototypes.
2000-05-08 19:23:32 +00:00
David Lawrence
1a69a1a78c Megacommit of dozens of files.
Cleanup of redundant/useless header file inclusion.

ISC style lint, primarily for function declarations and standalone
comments -- ie, those that appear on a line without any code, which
should be written as follows:
   /*
    * This is a comment.
    */
2000-05-08 14:38:29 +00:00
Andreas Gustafsson
94a08e09db Check for edns1 and strict decompression once and for all in
dns_[de]compress_setmethods instead of separately in every caller
2000-05-04 22:19:34 +00:00
David Lawrence
09f22ac5b0 Redundant header work, mostly removing <dns/result.h> from installed
headers and adding it to source files that need it.
2000-05-02 03:54:17 +00:00
Andreas Gustafsson
97f75286ad corrupted requests with multiple questions could
cause assertion failure (fix from Bob)
2000-04-28 23:48:49 +00:00
Mark Andrews
b8dd48ecf8 119. [cleanup] structure definitions for generic rdata stuctures do
not have _generic_ in their names.
2000-04-28 02:08:37 +00:00
Bob Halley
364a82f7c2 include isc/util.h 2000-04-28 01:12:23 +00:00
David Lawrence
6e49e91bd0 103. [func] libisc buffer API changes for <isc/buffer.h>:
Added:
                                isc_buffer_base(b)          (pointer)
                                isc_buffer_current(b)       (pointer)
                                isc_buffer_active(b)        (pointer)
                                isc_buffer_used(b)          (pointer)
                                isc_buffer_length(b)            (int)
                                isc_buffer_usedlength(b)        (int)
                                isc_buffer_consumedlength(b)    (int)
                                isc_buffer_remaininglength(b)   (int)
                                isc_buffer_activelength(b)      (int)
                                isc_buffer_availablelength(b)   (int)
                        Removed:
                                ISC_BUFFER_USEDCOUNT(b)
                                ISC_BUFFER_AVAILABLECOUNT(b)
                                isc_buffer_type(b)
                        Changed names:
                                isc_buffer_used(b, r) ->
                                        isc_buffer_usedregion(b, r)
                                isc_buffer_available(b, r) ->
                                        isc_buffer_available_region(b, r)
                                isc_buffer_consumed(b, r) ->
                                        isc_buffer_consumedregion(b, r)
                                isc_buffer_active(b, r) ->
                                        isc_buffer_activeregion(b, r)
                                isc_buffer_remaining(b, r) ->
                                        isc_buffer_remainingregion(b, r)

                        Buffer types were removed, so the ISC_BUFFERTYPE_*
                        macros are no more, and the type argument to
                        isc_buffer_init and isc_buffer_allocate were removed.
                        isc_buffer_putstr is now void (instead of isc_result_t)
                        and requires that the caller ensure that there
                        is enough available buffer space for the string.
2000-04-27 00:03:12 +00:00
Brian Wellington
6f17d90364 Partial support for SIG(0) on incoming messages - works when we have the
key and it's marked as secure (that is, when no validator or fetch is needed).
2000-04-20 19:51:39 +00:00
Michael Graff
c0a8689438 use correct type, not int 2000-04-14 23:03:13 +00:00
Michael Graff
5d4660ccb5 maila/mailb are only allowed as questions, too 2000-04-14 22:59:01 +00:00
Michael Graff
7ec579cd5d Add functions to check that a type is only or is not allowed in a question section 2000-04-14 20:13:49 +00:00
Michael Graff
3bb3b7ac46 implement singleton type checking 2000-04-14 18:36:45 +00:00
Brian Wellington
dc3fc5830a A couple minor bugs relating to TCP TSIG verification 2000-04-08 04:40:21 +00:00
Michael Graff
4195904998 s/DNS_R_/ISC_R_/ change for some codes. 2000-04-06 22:03:35 +00:00
Brian Wellington
5caab9f99d TSIG and SIG(0) are no longer message pseudosections. 2000-03-29 01:32:22 +00:00
David Lawrence
ecb6c5782e exorcized local compression 2000-03-23 05:18:46 +00:00
Brian Wellington
9dee95b41c code review - minor formatting changes, remove duplicate assignment,
add a comment to reinspect a loop later
2000-03-18 01:00:57 +00:00
Mark Andrews
acb0311b11 dns_message_renderreset should cause the message to forget the render
buffer.
2000-03-16 06:51:04 +00:00
Brian Wellington
f7fbd68b1c added msg.verify_attempted, renamed msg.verify_sig0 to verify_sig 2000-03-13 19:27:35 +00:00
Brian Wellington
2871292a56 Require that a message hasn't already been signed before signing it.
Hopefully this will never be triggered.
2000-03-03 19:46:15 +00:00
Bob Halley
435abcf2e2 add dns_message_renderreset() 2000-02-24 19:37:28 +00:00
Bob Halley
7d32c065c7 update copyright 2000-02-03 23:50:32 +00:00
Brian Wellington
b6666e61dc More TSIG/TKEY minor fixes (including a few more plugged memory leaks) 2000-01-22 04:45:17 +00:00
Brian Wellington
b984520acc major TSIG/TKEY cleanup 2000-01-21 20:18:41 +00:00
Michael Graff
3ddd814a97 dns_result_t is no more. s/dns_result_t/isc_result_t/ -- more later, when I need a break. 1999-12-23 00:09:04 +00:00
Michael Graff
733b16eb0b priority rendering 1999-12-22 03:22:59 +00:00
Michael Graff
59602a4485 set DNS_RDATASETATTR_TTLADJUSTED when the ttl's for rdata don't match 1999-12-17 00:21:38 +00:00
Mark Andrews
271154eafd dns_message_reply(): copy the question section of notify messages. 1999-12-15 07:28:51 +00:00
Mark Andrews
8b791b4ee8 'covers' was not being set when extracting questions from a incoming message,
set covers to zero.
1999-12-15 02:25:35 +00:00
Bob Halley
5eb8688b78 fix memory leak; dns_message_renderrelease() is now void 1999-11-25 01:58:16 +00:00
Bob Halley
7ab5937e0b turn off AD if we have rendered pending data 1999-11-23 20:53:34 +00:00
Michael Graff
fb12d257ef plug some memory leaks found durring interop testing 1999-11-09 05:39:45 +00:00
Michael Graff
499371d17c call dns_rdataset_init() on temprdatasets returned from
dns_message_gettemprdataset().  This is the only way to
allow us to insist that they are not associated when
returned via puttemprdataset().
1999-11-04 06:59:59 +00:00