MaraDNS changelog

maradns-0.7.13:

After much tinkering with the code, I have managed to make it so that a CNAME record in the cache returns the corresponding A record (note: only one A record!) along with the CNAME record. This should allow hosts like www.yahoo.com to work when this is used as a stub resolver. (2001.06.24)

maradns-0.7.12:

More work done on plugging memory leaks. Working on code that will determine the ip for a given CNAME record, since stub resolvers are not smart enough to do a second A query themselves when they see a CNAME record. Also some minor cleanups that Franky Van Liedekerke suggested. (2001.06.22)

maradns-0.7.11:

Finished work on the custodian. Now, I need to make sure the custodian works. Also fixed CNAME support so it now works, plugged a couple more memory leaks, and revised the offline testbed to have a CNAME record. (2001.06.21)

maradns-0.7.10:

Bigfixes: I have plugged some memory leaks, and added code which will (hopefully) allow recursive queries to cname records to work. I have also done some more work on the "custodian" code. (2001.06.21)

maradns-0.7.09:

Bugfix release: MaraDNS now closes the sockets that she opens when performing recursive queries. This stops the open sockets from piling up. Also, I have begun work on the "custodian" code: Code the reduces the number of elements in the cache when the user-defined cache runs low on space. (2001.06.20)

maradns-0.7.08:

I have made the RNG truly random, and I have added code to the resolution algorithm which allows it to perform recursive queries when the only authoritative records are NS delegation records. Also, updates to the todo list. Changed cc to gcc in all the makefiles to make MaraDNS more Solaris-friendly. (2001.06.20)

maradns-0.7.07:

I have added ACLs which limit who is allowed to make recursive queries. I have also begun work on making the random number seed truly random. (2001.06.19)

maradns-0.7.06:

I have updated the non-recursive code to use code from MaraDNS 0.5.25, which adds a number of features from there (round robin rotation, etc.) I have alos made a list of things which need to be done before I can make this a beta candidate for a 1.0 release. In addition, the code now makes sure that the query ID we receive is the same one we sent out. I have also started work on a CREDITS file, updated the FAQ, and added a couple of interesting (if not MaraDNS-specific) Perl scripts to the archive. (2001.06.17)

maradns-0.7.05:

The DNS server now has a psudo-random number generator which uses the Rijndael algorithm. This PRNG randomizes both the query ID and (I believe) the source port of any and all DNS queries. This PNRG now needs to become secure (by setting up either a random or a user-defined Rijndael key) (2001.06.16)

maradns-0.7.04:

There were some bugs in the RR expire code. I have found those bugs, fixed them, and now cache expirery should work. (2001.06.12)

maradns-0.7.03:

This release has implemented the ability to expire records from the cache. All Name server records have a fixed expire of 1 day (this can be changed by changing one #define in recursive.c), but all other records have an expire time based on the TTL of the record. I have not yet tested DNS RR expire. (2001.06.11)

maradns-0.7.02:

Milestone: This is the first release of MaraDNS that works as a recursive nameserver with the real root nameservers. Fix: Changing only the case of the first nameserver, add negative caching, then start adding security (good RNG for the query ID and source port, recursive ACL), then start making the root servers customizable (including being able to have different TLDs have different root servers). (2001.06.11)

maradns-0.7.01:

Beginning work on making MaraDNS both case-insensitive and able to preserve case. (2001.06.06)

maradns-0.7.00:

Albert Prats kindly provided Spanish translations for various text files. To get MaraDNS to compile in Spanish instead of English, type in ./locale.es before compiling MaraDNS.

MaraDNS now can handle gluelessness. I am bumping up the minor version number to reflect that MaraDNS now has recursive nameserving capabilities, albeit without some security features. Next: Work on cache flushing and security. (2001.06.03)

maradns-0.6.21:

Now, if one of the IP nameservers is bad, we will try the next nameserver in the chain. Next: Add the code to handle out-of-bailiwick nameservers (2001.06.01)

maradns-0.6.20:

Two big improvments: 1) The recursive resolver can now handle multiple A records (MaraDNS deliberately ignores NS and AR records. Note that it is a good idea to give out the corresponding A record for a CNAME record [To do]) 2) There is now code which makes a local copy of the chain of NS records in an authoritative-only section, which will allow me to make thread-safe code which will query other nameservers, should a given nameserver not function (e.g. Someone changed a computer's IP. In the three weeks it can take Network Solutions to update the records on the root nameservers, we still want to be able to reach the domain in question by using the other listed nameserver for the domain)

maradns-0.6.19:

Not only did I get to spend some time with my family this memorial day weekend, I also was able to get Linux up and going on my new laptop. Took two installs, but everything except SSL in Konqueror now works. I also, now that the new laptop is (mostly) up and going, have gotten a chance to work on MaraDNS. This new laptop, since it has a working battery, should speed up MaraDNS development--I can now work on MaraDNS on the train. The latest version is able to go to a remote server and give us an incomplete answer (only one RR) based on what the remote server tells us. (2001.05.29)

maradns-0.6.18:

Some minor bugfixes and tweaks: The nameserver will now query name servers until it is able to find an answer, then it will go in a loop. (2001.05.24)

maradns-0.6.17:

A fairly significant milestone: This version of MaraDNS is able to read data from an authoritative nameserver, and, based on that data, determine the IP of a nameserver closer to the answer we are looking for. (2001.05.21)

maradns-0.5.24:

Two minor bug fixes: The erre-con-erre-cigarro.maradns.org query will work, even if authoritative nameservers for the root are set up; MaraDNS now will run on systems which do not support the setrlimit system call, such as the GNU Hurd. (2001.05.21)

maradns-0.5.23:

Three bug fixes: MaraDNS now works with RRs for the root namserver (MaraDNS, in fact, can now be a nameserver for the root), the askmara tool now has a timeout (and can ask questions about the root nameserver), and the output that MaraDNS generates is unbuffered. (2001.05.19)

maradns-0.6.16:

I have added a lot more debugging stuff as I hunt down why it is RRs are not being added to the dns RR cache. I think I am pretty close to pinning it down, and hope tomorrow's release can add RRs to the big cache. (2001.05.18)

maradns-0.6.15:

I added a simple interactive debugger which lets me see the state of the DNS cache hash table. Looks like the data from the server is not being added to the cache. Next: FInd out why not. (2001.05.17)

maradns-0.6.14:

An unexpected event forcing me to go home late yesterday caused there not to be a release of MaraDNS yesterday.

Fixed bug where it was not correctly appending the class to the server that it was querying. Temporarily disabled the actual threading while development work on the recurseor continues. Next: Make sure that the cache is properly seeded from data from authoritative nameservers. (2001.05.17)

maradns-0.6.13:

Fixed bug where it was choosing the wrong IP to query. Automated the process of setting up a testbed (which is completely self-contained), so I can debug this on a variety of machines. Next: Fix the timeout bug. (2001.05.15)

maradns-0.6.12:

MaraDNS compiles again. Now, I need to go through all the code and iron out all of the bugs. Testbed of MaraDNS configuration files added. (2001.05.14)

maradns-0.6.11:

More work on the recursive stuff done. (2001.05.13)

maradns-0.6.10:

More work on the recursive stuff done. (2001.05.12)

maradns-0.5.22:

Bugfix release: non-0 opcodes now correctly return a "NOT IMPLEMENTED" error message. Also, some minor cleanup in the documentation: star records (*.example.com, etc.) are now documented. (2001.05.10)

maradns-0.6.09:

add_closer_jsddip, add_closer_js, and add_closer_jsip now have a third argument: Whether to overwrite or append to already existing data in the cache. Since the autoconf stuff doesn't work with the development branch, I got rid of it for now. Once this code gets stable, one of the Debian packagers can feel free to add the autoconf stuff again. (2001.05.10)

maradns-0.6.08:

Added in_bailiwick and cmp_dnames functions to recursive.c (2001.05.09)

maradns-0.5.21:

Feature enhancment: Added round-robin rotation of records and limits to the number of records that can be displayed for a given answer to MaraDNS. This will be the last feature enhancment for the 0.5.xx tree. All changes in the 0.5.xx tree will now be bug fixes. Now, back to work on the 0.6.xx series, starting off with integrating the 0.5.xx changes. (2001.05.07)

maradns-0.5.20:

Feature enhancment: We now make sure that the same AR record does not show up twice in the AR section. Thanks to Phil Homewood for pointing out this problem. (2001.05.06)

maradns-0.5.19:

Bugfix release: We now follow chains of records in the AR section. The authoritative bit for an "RR_ALL" request is now determined by the authoritative bit in the first RR found. Thanks to Phil Homewood for finding these bugs. (2001.05.06)

maradns-0.6.07:

The askmara tool now uses select() to time out after three seconds. Added a lot of code to the recursive lookup. I now send a query to the remote server, and receive the reponse. Next: Code to process the response and add the data to the local cache. (2001.05.06)

maradns-0.6.06:

The recursive code now sucessfully seeds a root nameserver in to the cache. Next: Code to query and get the response form that nameserver. (2001.05.05)

maradns-0.6.05:

Heavy debugging of the recursive stuff going on. It is not fixed, but I wanted to post something, however miniscule, before going to bed. (2001.05.04)

maradns-0.5.18:

Addded new feature: default_rrany_set, which is used to change the RRs returned when a RR_ANY query is sent to the MaraDNS server. Thanks to Phil Homewood who pointed out that this is sometimes needed. (2001.05.03)

maradns-0.6.04:

recursive text documented updated to reflect changes I made on the train. Some other cleanup. (2001.05.02)

maradns-0.6.03:

Wrote up document detailing the recursive algorithm that MaraDNS' recursive resolver will use. Integrated the 0.5.17 bugfixes in to the development tree. (2001.05.01)

maradns-0.5.17:

Fixed bug in MaraDNS' handling of zone transfers where the response is a single big RR instead of multiple small RRs. Some other small bugfixes. (2001.04.30)

maradns-0.6.02:

I have the general structure of how I want to do the recursive name serving in place. The devil, however, is in the details. (2001.04.28)

maradns-0.6.01:

Fixes in MaraDNS-0.5.16 incorporated in to development branch. Slowly making progress on the recursive code. (2001.04.26)

maradns-0.5.16:

Fixed bug in the zoneserver's handling of replies longer than 255 octets in length. Fixed problem in manpage and updated man page. Special thanks to Phil Homewood for finding problems the zone server was having. (2001.04.26)

maradns-0.6.00:

Work on making MaraDNS recursive begins. (2001.04.26)

maradns-0.5.15:

Fatal error messages caused by failed system calls now show the user the error message that the system gave, in addition to MaraDNS' error message. (2001.04.26)

maradns-0.5.14:

Added "no_fingerprint" feature which minimizes the MaraDNS-specific features, making it more difficult to determine which DNS server one is running. (2001.04.23)

maradns-0.5.13:

Manpage for maradns added. (2001.04.22)

maradns-0.5.12:

Added better support for CNAME records: If the CNAME record points to an A record, and we have the A record "on file", MaraDNS will add the CNAME record to the ar section of the reply. Also added support for getting the version number for maradns via a 'erre-con-erre-cigarro.maradns.org.' TXT query. Set things up so we can both a autoconf-based and a non-autoconf-based build process, and we can switch between the two. Next: Branch off to development again, because I need to get the zone server multithreaded. (2001.04.22)

maradns-0.5.11:

Tollef Fog Heen generously ran autoconf for MaraDNS. The build process now consists of './configure;make'". (2001.04.21)

maradns-0.5.10:

Code cleanup: I added -Wall as an option in the libs, dns, and server directories. Cleanup of all the warnings that -Wall generated. Added /etc/mararc and /var/maradns/db.example.com to RPM file. (2001.04.20)

maradns-0.5.09:

The server crashes were causes by pointers that were not correctly initialized to zero. The pointers causing the crash have been initialized, and hopefully this one will be crashproof. Next: Look for other incorrectly initialized variables. (2001.04.20)

maradns-0.5.08:

Begin a "stable" brach for the only-authoritative non-threaded nameserver. Changed compiler option from -g to -O2. Made RPM of MaraDNS-0.5.08. (2001.04.19)

maradns-0.5.07:

Plugged some memory leaks in the zoneserver which, while not currently a problem, could have been a problem if I had started coding threads before plugging the memory leaks. Some of the leaks were is the js_string library, so that code base is a lot cleaner now. Made the functions in ParseCsv1.c thread-safe. My friend Fatma generously supplied a German translation of the error strings in MaraDNS_en.h--we now have a MaraDNS_de.h which, while not perfect, will be appreciated by the Germans. (2001.04.18)

maradns-0.5.06:

The zone server for MaraDNS can now be run from inetd. Due to the security implications of this (MaraDNS' IP-based ACLs stop working when run from inetd), this will be an undocumented feature. (2001.04.18)

maradns-0.5.05:

Phil Homewood generously supplied a patch that makes this compile on FreeBSD. In addition, he fixed a bug in the Makefile in dns/Makefile which made it so bobbit.c compiles instead of using the Linux-specific object file (Which I didn't catch, since make clean didn't remove it and make didn't recreate it). I also fixed a bug in getzone.c which was introduced when I put the string literals in a language-specific file. (2001.04.17)

maradns-0.5.04:

Added more support for dotted decimal IPs in NS, CNAME, and MX records. Added handles for code which will warn the user of the presence of these dotted-decimal IP records. Fixed bug where js_copy was not returning an appropriate value on success (2001.04.17)

maradns-0.5.03:

If a "give me all records for a given hostname" query appears, MaraDNS will now look for a CNAME with the same hostname, returning only that if found (and she will only look for a CNAME if an A and MX were not found), and if A, MX, and CNAME records are not found, MaraDNS will see if the person entered a dotted decimal ip and respond appropriately. (2001.04.16)

maradns-0.5.02:

Most of the text messages that MaraDNS' various utilities generate have been moved to separate files, which will make localization easier. (2001.04.16)

See previous change log entries