MaraDNS changelog

maradns-0.8.15:

Made an 'asktest' program which will be used for regression testing. (2001.08.15)

maradns-0.8.14:

Added support for a counter that counts the children in the Zone server. (2001.08.13)

maradns-0.8.13:

Askmara doesn't display debug messages which can mess up terminals to the end user any more.

When an element in the cache is overwritten, the new data is now added to the cache.

New feature: MaraDNS can now blacklist spammer-friendly DNS servers.

(2001.08.12)

maradns-0.8.12:

Fixed bug in udperror which caused it to spit back the wrong query ID.

Added code to use a counter to count the number of threads. If we have more than maxprocs threads going on at the same time, we refuse to launch a thread.

Cached data now will go through round-robin rotates.

MaraDNS now compiles again when the locale is set to Spanish (though I still need more Spanish translations. Maybe when I am in México, I can get help down there) (2001.08.11)

maradns-0.5.29:

Backported some bug fixes with zone file handling back to the "stable" authoritative-only branch of MaraDNS. (2001.08.10)

maradns-0.8.11:

Improved handling of CNAME records in the cache. BSD-dependent routines (which are currently unused in MaraDNS) are not compiled if we are compiling on a Solaris box. (2001.08.08)

maradns-0.8.10:

I have redone the makefile in the rijndael directory, some some makes (notably, the one NetBSD has) did not like the original Makefile. Marked some unreproducable bugs as unreproducable. (2001.08.07)

maradns-0.8.09:

After much work (handling lame delegations better and fixing a bug in substring_issame_case), I have managed to get the host name linuxemu.retrofaction.com to resolve.

Completely unreleated to MaraDNS, I have added a SirCam filter to the tools directory. (2001.08.03)

maradns-0.8.08:

More bug swatting: (2001.07.28)

maradns-0.8.07:

Fixed the zoneserver so it too only answers questions. Fixed two bugs in the getzone client: One where it would handle MX records incorrectly, another where it would hand the root zone incorrectly (this bug was actually in the Queries.c file). (2001.07.27)

maradns-0.8.06:

We now check to make sure we only answer questions. (2001.07.18)

maradns-0.8.05:

Added support for multiple root name servers. Also changed the example mararc file to have the root servers for eight different top level domain registries listed. (2001.07.16)

maradns-0.5.27:

Back porting bug fixes to the authoritative-only branch of MaraDNS. (2001.07.15)

maradns-0.8.04:

MaraDNS now sucessfully compiles on Solaris. Thanks to Franky Van Liedekerke for providing the pointers on how to do this, and to Danny for access to a Solaris machine to compile MaraDNS on. (2001.07.14)

maradns-0.8.03:

Solaris support added, but does not fully work, added disclaimer, improved code which drops group privledges. (2001.07.13)

maradns-0.8.02:

Another bug fix: If a zone did not have a record of a given type at the "top" of the zone, MaraDNS would attempt to perform recursion instead of returning a SOA record in the authority section. Fixed. Also needs to be fixed in the 0.5.xx branch. Thanks to D Richard Felker III for finding the bug. (2001.07.10)

maradns-0.8.01:

Touch up bug fix: MaraDNS failed to close open file descripters when reading zone files. Fixed. Also needs to be fixed in the 0.5.xx series. Thanks to Boris Manojlovic for finding the bug. (2001.07.09)

maradns-0.5.26:

Fixed a couple of long-standing bugs found while debugging the recursive version of MaraDNS: (2001.07.08)

maradns-0.8.00:

This is the first alpha release of the recursive nameserver. I fixed a bug in the compression code, and fixed another bug which was causing problems with glueless name server entries. (2001.07.08)

maradns-0.7.22:

www.monty.de now successfully resolves; fixed bug where the custodian could potentially erase the root name server entry, making MaraDNS non-functional as a root nameserver until restarted. (2001.07.07)

maradns-0.7.21:

Type ANY queries now work for recursive queries. Finally. (2001.07.06)

maradns-0.7.20:

Another late night double feature MaraDNS show. There was a really nasty bug which Jaakko pointed out to me. I found the culprit, and fixed the bug. (2001.07.04)

maradns-0.7.19:

Begun work on some of the infastructure changes needed to make MaraDNS sucessfully resolve recursive ANY queries. Added maradns_gid support. Other pieces of code cleanup, primarily better handling of RR_ANY when acting as an authoritative nameserver (should I fold these changes in to a 0.5.26 release eventually?). (2001.07.04)

maradns-0.7.18:

Re-arranging of the engine that returns an answer from the cache. We check the cache expire of a "host not here" reply. Updated the documentation so that it is the 0.5.25 documentation with the recursive stuff added as needed. (2001.07.01)

maradns-0.7.17:

We now choose a random DNS server to query when we are looking for an answer. (2001.07.01)

maradns-0.7.16:

Updated documentation to include information on how to set up a recursive nameserver. Fixed bug where multiple levels of CNAME indirection were not being properly followed. It is now possible to go to www.imdb.com or groups.yahoo.com (both cases of multiple levels of CNAME indirection). (2001.06.30)

maradns-0.7.15:

I have added support for negative caching: If a given host name does not exist, the program sends a "not here" to the stub resolver. I also fixed a bug which was causing out-of-bailiwock queries to not work. (Having to do with the case-sensitivity issue). Next: Getting www.monty.de to work, caching ANY replies. (2001.06.28)

maradns-0.7.14:

MaraDNS now works as a recursive nameserver again. The root nameserver is now user-configurable. CNAME returns queries in a form that a stub resolver can now understand. (2001.06.25)

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 /usr/local/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