Commit Graph
139 Commits
Author SHA1 Message Date
Bob Halley ced5499494 add dns_db_find 1999-04-01 04:03:22 +00:00
Bob Halley d176cbca5b checkpoint 1999-04-01 04:02:33 +00:00
Bob Halley 5bfea18ff8 add dns_rdataslab_merge 1999-04-01 04:00:39 +00:00
Bob Halley e7b724c23e result types for database searches 1999-04-01 03:59:49 +00:00
David Lawrence 5f50687f61 Changes from Bob, best described in his own barely-edited words:
I added support for the full search algorithm to the RBT database
  code.  The database has some special needs in searching, in particular
  certain nodes need to be examined before the DOWN pointer is followed.

  I solved this problem by adding a 'callback' bit to the node structure.
  When findnode is called, the caller can supply a callback.  Before we go
  DOWN at a node, we call the callback if the callback bit is set at the
  node.  If the callback returns DNS_R_CONTINUE, we proceed.  Otherwise, we
  will stop right there and return what the caller said to return.  I
  added an 'empty_data_ok' flag to findnode as well, so that nodes with
  empty data can be made candidates for partial match status.

  I also wanted to make dns_rbtnodechain_t public, so that a chain could
  be allocated on the stack by the caller.  I added two routines,
  dns_rbtnodechain_init() and dns_rbtnodechain_reset() to work with them.
  The latter routine frees any dynamically allocated memory associated with
  the chain.  The chain structure now contains the memory context.  I also
  moved get_ancestor_mem() and put_ancestor_mem() up in the file, so that
  inlining could be more effective.

  In the nits department, you wrote

                  *node = result == DNS_R_SUCCESS ? current : NULL;

  In the future, please write this instead (the patch has this change in it):

                  if (result == DNS_R_SUCCESS)
                          *node = current;
                  else
                          *node = NULL;
1999-04-01 03:15:54 +00:00
Michael Graff f9df3b7b03 typo 1999-03-30 03:45:46 +00:00
Michael Graff 952c9d12d0 add DNS_R_MOREDATA for msg library 1999-03-30 03:45:11 +00:00
Michael Graff b1ddf33030 add msg.h, will change as needed, but Brian needed this now 1999-03-30 03:43:00 +00:00
David Lawrence 194dda8c56 new possible return code for dns_rbt_addnode, DNS_R_NOSPACE. It means
that adding the name would create too many logical levels in the
tree of trees.
1999-03-30 01:57:12 +00:00
Mark Andrews 5f78628b28 Add DNS_R_BADTTL. 1999-03-22 06:18:34 +00:00
David Lawrence a685d9c3b6 Preliminary implementation of db mounting. 1999-03-18 19:37:30 +00:00
David Lawrence 194f54f4da New parameter to dns_rbt_find{name,node} will return the full dns_name_t
of the node that is found.

Avoids doing any memory allocation when building ancestor chain in 99%
of the cases.
1999-03-16 16:10:36 +00:00
David Lawrence cdd824cc88 documentation updates.
removed some print support function declarations; made static to rbt.c.
1999-03-12 05:01:42 +00:00
David Lawrence 7f9a18ab45 Move the data pointer further down in the struct, near the second set of
bitfields that are used by RBT DB.
1999-03-11 21:15:12 +00:00
Bob Halley 0cc67b5a2a add DNS_R_UNCHANGED 1999-03-11 20:06:56 +00:00
David Lawrence f036af2c71 rbtnode struct adapted with more bitfields to represent color,
name attributes, name length, offset length, and number of bytes
of "padding" that are left over when a node is split.

adjusted node splitting algorithm to preserve the original location
of the lower portion of the split node (eg, when a node has "a.b" as
its name and is split into "a" and "b", "a" retains the same address
space as "a.b".)
1999-03-11 18:54:31 +00:00
Bob Halley efe6d8f066 add dns_db_allrdatasets 1999-03-11 06:00:22 +00:00
Bob Halley b70e90d44f make current return void 1999-03-11 05:59:40 +00:00
Bob Halley 184aadebb8 rdataset.h is not required 1999-03-11 05:58:56 +00:00
Bob Halley 4054230359 remove old rdataiterator; add rdatasetiter 1999-03-11 05:58:32 +00:00
Bob Halley 84c3294183 improved concatenation 1999-03-11 00:44:17 +00:00
Bob Halley d7eef25fbe rdataset iterator support 1999-03-11 00:43:43 +00:00
Bob Halley 7a9ded7b5f minor cleanups 1999-03-11 00:43:04 +00:00
Mark Andrews de10b83a23 * local label offset 255 is reserved.
* don't add domainnames with local compression pointers as
	  valid global compression targets unless edns is high enough.
1999-03-11 00:26:21 +00:00
Bob Halley 4a8b521fd7 remove typedef; add dns_fixedname_name() 1999-03-08 19:31:48 +00:00
Bob Halley 84d3cd8fed add dns_fixedname_t 1999-03-08 19:31:30 +00:00
Bob Halley 8c65ae482a db iterator support 1999-03-08 19:00:55 +00:00
Bob Halley dbef4f7fb7 add 1999-03-08 19:00:11 +00:00
Bob Halley 544021d7e1 add dbiterator.h and fixedname.h 1999-03-08 18:59:27 +00:00
Bob Halley ce3761f64d add dedicated buffer support; cleanups to dns_name_concatenate() 1999-03-08 18:55:28 +00:00
Bob Halley 4c154a9f38 add 1999-03-08 18:53:44 +00:00
Bob Halley ddbbc5a1c9 add dns_dbiterator_t 1999-03-08 18:51:51 +00:00
Bob Halley 0b7c2a096d add DNS_R_NEWORIGIN 1999-03-08 18:51:14 +00:00
Bob Halley 4c1132f344 update copyright 1999-03-06 04:12:06 +00:00
Bob Halley 097c31fdea add dns_db_printnode 1999-03-05 23:25:44 +00:00
David Lawrence 587fc7b519 Revised dns_rbt_findname and dns_rbt_findnode to find the closest match
when an exact match cannot be found.  This changed the calling interface,
which necessitated changes to rbtdb.c and compress.c.
1999-03-04 21:03:29 +00:00
David Lawrence f85b8869df new result type, DNS_R_PARTIALMATCH, for dns_rbt_find* 1999-03-04 20:55:57 +00:00
Bob Halley 904a573437 C++ compatibility 1999-03-04 02:48:47 +00:00
Bob Halley ca04d3fbf9 additional assertions, C++ compatibility 1999-03-04 02:43:05 +00:00
Mark Andrews 518be7faab dns_name_cat() -> dns_name_concatenate()
Changed behaviour so that it is intuitive w.r.t. absolute names.
	If 'prefix' is absolute then 'suffix' must be NULL.
	If 'prefix' or 'suffix' is absolute then the result is absolute.
1999-02-26 00:25:12 +00:00
Mark Andrews d0221bfa6a Added Contract Comments 1999-02-25 01:37:03 +00:00
Mark Andrews 1ef8965366 Add decompression. 1999-02-24 06:31:35 +00:00
Mark Andrews f257e9369c dns_name_cat only returns a absolute name if one of it's inputs
is absolute
1999-02-23 02:25:41 +00:00
Mark Andrews 52637f592f Add wire compression. 1999-02-22 07:24:05 +00:00
Mark Andrews 2429685db2 Removed trailing comma. 1999-02-22 01:06:26 +00:00
Mark Andrews ad883ba085 Protect from multiple calls by #ifndef/#define/#endif. 1999-02-22 00:53:19 +00:00
Bob Halley 86cbdf5783 update .h file installation lists 1999-02-18 01:26:24 +00:00
Bob Halley e8b2131478 contents moved to isc/region.h 1999-02-16 20:08:24 +00:00
Bob Halley 02083e881d Improve dns_name_fullcompare() comment. 1999-02-16 08:28:58 +00:00
Bob Halley 2aa970ccec add dns_name_fullcompare(); update comments 1999-02-16 08:18:56 +00:00