Commit graph

352 commits

Author SHA1 Message Date
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
Brian Wellington
5c688a008a A bit of SIG(0) cleanup 1999-11-02 22:58:29 +00:00
Michael Graff
f2762b0d99 check for more things with INSIST() 1999-11-02 21:29:13 +00:00
Brian Wellington
0b764d91c9 - updates to dns_message_signer to handle SIG(0) as well as TSIG
- SIG(0)'s can be rendered, and information is stored to allow them to be
verified after parsing.  This needs some cleanup work done.
1999-11-02 19:59:04 +00:00
Brian Wellington
06f9d6486e dns_message_signer update 1999-10-28 14:18:52 +00:00
Brian Wellington
e5c7544550 dns_message_signer 1999-10-27 22:25:55 +00:00
Michael Graff
0583bf2d0a set names on mempools 1999-10-27 19:33:49 +00:00
Brian Wellington
1672aaee14 tkey processing 1999-10-25 21:07:01 +00:00
Bob Halley
004da17157 Make the public version of findname() set attributes appropriately. 1999-10-20 23:28:10 +00:00
David Lawrence
c866769e66 more INSISTs for proper range before passing integers to isc_buffer_putuint16 1999-10-17 22:31:03 +00:00
Bob Halley
2f6040ed67 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.
1999-10-17 19:20:20 +00:00
Brian Wellington
949d406b57 reference counting on TSIG keys. Necessary for TKEY delete 1999-10-08 20:14:47 +00:00
Brian Wellington
3f6dc1703f tsig structure/function name change 1999-10-08 18:37:24 +00:00
Brian Wellington
069104dd6a the message->cleanup list was being improperly cleaned 1999-10-08 14:59:02 +00:00
Michael Graff
7153a32ae9 memory leak fix 1999-09-14 23:48:27 +00:00
Michael Graff
d8f304288d Use a memory pool for rdatasets as well 1999-09-11 01:35:55 +00:00
Brian Wellington
24694ab18a new fields needed for TCP-TSIG 1999-09-10 14:54:10 +00:00
Michael Graff
af6e7e5cd2 Changes to message.c/h to use memory pools for names. Coming soon:
same thing for rdata, rdatalist, and rdatasets.

Also implement dns_message_takebuffer().

See comments in message.h for news.
1999-09-10 02:48:32 +00:00
Michael Graff
186817c92c make dns_message_findtype() public 1999-09-09 01:10:53 +00:00
Michael Graff
4556681e19 snapshot socket.[ch] code and commit dynbuf_t -> buffer_t changes 1999-09-02 02:10:44 +00:00
Bob Halley
ac77fece9a EDNS0 1999-09-02 01:52:31 +00:00
Bob Halley
bf555703f2 OPT support 1999-09-01 20:50:34 +00:00
Bob Halley
732e0731de SIG support 1999-08-31 22:14:06 +00:00
Brian Wellington
6d4886fa74 Added support for TSIG records in message and resolver subsystems, added
tsig to_struct/from_struct
1999-08-20 18:56:24 +00:00
Andreas Gustafsson
d347e7af94 dns_message_parse now takes new argument 'preserve_order'; support RR data >512 bytes 1999-08-20 06:08:39 +00:00
Bob Halley
0e919917cc class to rdclass 1999-08-02 22:19:30 +00:00
Andreas Gustafsson
57cf89b149 set msg->rdclass even if question section is empty 1999-07-30 13:33:14 +00:00
Bob Halley
a6ebd71eed tweaks to dns_message_reply() 1999-07-29 01:26:53 +00:00
Andreas Gustafsson
8c55a67a6d null pointer dereference 1999-07-28 05:23:16 +00:00
Bob Halley
996028142c update message reply support 1999-07-28 02:19:46 +00:00
Brian Wellington
991322a2ab A TSIG record's class should be ANY, not that of the question 1999-07-26 17:00:34 +00:00
Bob Halley
d8705ff90a Break msginit() into msginitheader() and msginitprivate().
Put MAGIC macros into the DNS_ namespace.
Take name cleanup code from msgreset() and put it into msgresetnames().
In dns_message_create(), the intent is now specified before the returned
message pointer.
dns_message_reset() now allows an intent to be specified.
msg->header_ok is set if parsing the header succeeded, and msg->question_ok
is set if parsing the question section succeeded.
Added dns_message_reply().
1999-07-24 01:09:04 +00:00
Michael Graff
5039f2cad3 don't modify the buffer passed in for peekheader() 1999-07-12 23:46:37 +00:00
Bob Halley
1db717f2f3 preliminary question rdataset support (rendering only); DNS/ISC_R_SUCCESS fix 1999-07-03 20:57:06 +00:00
Michael Graff
4c208bd46f add dns_message_peekheader() 1999-06-25 01:05:27 +00:00
Bob Halley
42a5f9c8f5 lint from alpha build 1999-06-24 17:55:41 +00:00
Andreas Gustafsson
3b40e78974 handle dynamic update meta-classes and empty rdatas 1999-06-20 08:05:56 +00:00
Andreas Gustafsson
75ec9bc9c7 DNS_MESSAGE_OPCODE_MASK was incorrect 1999-06-09 12:06:21 +00:00
Michael Graff
08d94b539a allow finding types and names but not returning them. This is basically an
existance check
1999-06-03 19:03:48 +00:00
Andreas Gustafsson
454bea884d dns_message_create did not initialize m->rdatasets 1999-05-25 16:55:57 +00:00
Michael Graff
4db368e084 ooops, fix a memory leak 1999-05-21 08:05:49 +00:00
Michael Graff
d49555e76c use the new rendered bit 1999-05-21 00:48:59 +00:00
Michael Graff
bd3ccd1c38 use dns_name_equal 1999-05-19 00:14:26 +00:00
Michael Graff
70fd62761d use linked lists for items returned from loanout 1999-05-14 23:19:12 +00:00
Michael Graff
438d7099d1 Implement name, rdata, rdatalist, rdataset loanout from message resources 1999-05-14 22:22:49 +00:00
Michael Graff
97e7d389d5 Clean up after code review 1999-05-14 17:52:11 +00:00
Michael Graff
8f3ba5e9b2 init a var 1999-05-13 00:15:42 +00:00
Michael Graff
2726950412 parse dynamic updates, and tsig's right 1999-05-12 19:32:13 +00:00
Michael Graff
b02262cbcd Fix up the condition where buffers are expended 1999-05-01 17:18:47 +00:00
Michael Graff
41cc03374d remove debugging crud 1999-04-30 23:37:23 +00:00
Michael Graff
bfbf3f2d77 don't use a temp buffer, it broke compression 1999-04-30 23:04:29 +00:00
Michael Graff
823e45c127 checkpoint 1999-04-30 22:35:49 +00:00
Michael Graff
ddd035637d snapshot 1999-04-30 21:52:40 +00:00
Michael Graff
8d6024e7cf Move the flags on dns_rdataset_totext() to be together, and make a
matching change to dns_rdataset_towire()
1999-04-30 21:15:02 +00:00
Michael Graff
5330fc09ac tpyo 1999-04-30 21:10:07 +00:00
Michael Graff
d070219e01 clean up and start testing rendering 1999-04-30 21:09:19 +00:00
Michael Graff
1d7987f422 checkpoint 1999-04-30 07:53:07 +00:00
Michael Graff
a920f559c3 fix up return codes in searching, and start on rendering. 1999-04-30 06:37:35 +00:00
Michael Graff
ded7456a4d Implement searching for a name in a section. 1999-04-30 06:13:07 +00:00
Michael Graff
be3458c3da Add checks for render/parse direction 1999-04-30 05:57:39 +00:00
Michael Graff
e690d225ad Make named compile, and start on using message code. This isn't done yet. 1999-04-30 05:42:06 +00:00
Michael Graff
fccf7905e8 snapshot working message parsing 1999-04-30 00:17:15 +00:00
Michael Graff
1d11db66fa make this build, ooops 1999-04-29 19:58:51 +00:00
Michael Graff
e223094b22 checkpoint 1999-04-29 08:18:57 +00:00
Michael Graff
d688386936 checkpoint 1999-04-28 03:19:58 +00:00
Michael Graff
f9df80f434 snapshot work 1999-04-27 02:24:11 +00:00
Michael Graff
9178881e1b start on message.c 1999-04-26 21:59:36 +00:00