Commit Graph
254 Commits
Author SHA1 Message Date
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 bd1190c84b no more need for mem_failure in rbt_nodechain_t, since findnode now
returns a dns_result_t.

dns_rbt_created requires deleter_arg NULL if deleter is NULL.

dns_rbt_addnode always returns DNS_R_EXISTS if the node is found, regardless
of if it has data.

dns_rbt_addname will add the data and return SUCCESS if addnode says
EXISTS but there is no data at the node.

make sure memory is freed even when get_ancestor_mem to reallocate fails.

partialmatch returned by findnode must have data associated with it.

fixed up deletename; prematurely exited without freeing chain memory if
the node was not found.  made deletename responsible for identifying whether
a node could be removed rather than zapnode.

turned a few of the print support functions static.
1999-03-12 05:00:32 +00:00
David Lawrence 62f178f499 Preserve the storage location of the down node of a pair of joined nodes
when deleting, where possible.
1999-03-11 22:04:24 +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
David Lawrence 6a0cb547d4 When splitting a node, increment PADBYTES by the amount that is truncated,
instead of just setting PADBYTES to that amount (this affects when a node
is split twice.)
1999-03-11 20:07:49 +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 b7ff8128f0 implement rdataset iteration 1999-03-11 06:02:28 +00:00
Bob Halley bc5c129744 fix typo 1999-03-11 06:02:00 +00:00
Bob Halley 5245f4c5f9 have next method return DNS_R_NOMORE if cursor is already invalid 1999-03-11 06:01: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 285b63e90f Added {} to prevent 'ambigious else' warnings. 1999-03-11 00:29:10 +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 a301df6a92 add dbiterator 1999-03-08 19:01:49 +00:00
Bob Halley bb8263521b unimplemented db iterator support 1999-03-08 19:01:18 +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 8eea0575a0 update 1999-03-06 18:38:24 +00:00
Bob Halley 4c1132f344 update copyright 1999-03-06 04:12:06 +00:00
Bob Halley ff9104607c add deletion 1999-03-06 00:51:12 +00:00
Bob Halley 12c0aff12a printnode support; versioning fixes 1999-03-05 23:26:24 +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 e371b7a70f basic versioning; 64-bit version support; C++ compatibility 1999-03-04 02:45:56 +00:00
Bob Halley 86921103ec lint 1999-03-04 02:44:30 +00:00
Bob Halley ca04d3fbf9 additional assertions, C++ compatibility 1999-03-04 02:43:05 +00:00
Bob Halley 0e3ad06058 additional assertions, C++ compatibility, rbtdb64 support 1999-03-04 02:42:40 +00:00
Bob Halley bb556a9bf3 add rbtdb64 1999-03-04 02:39:41 +00:00
David Lawrence 6735f1e886 arguments for common_labels and common_bits to dns_name_fullcompare
are unsigned ints
1999-03-04 02:35:04 +00:00
David Lawrence 005c7ad70f Use dns_name_fullcompare() and remove internal comparison functions.
Allow root label to be in its own level (and thus have data associated with it.)

Avoid retraversal of level in dns_rbt_addonlevel().
1999-03-03 20:01:49 +00:00
Bob Halley b2f1f3b836 add reminder 1999-03-02 19:57:10 +00:00
Bob Halley ed7f35a9f7 compact() didn't recompute the offsets table even though offsets might have
changed.
As soon as a bitstring that didn't need compaction was encountered, compact()
would stop instead of processing the entire string.
1999-03-02 19:55:17 +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