Commits


* reflect the year 2014 in the copyright


* update my copyright to include the year 2013


* Mac OS X support from Mecca on Efnet. I tweaked this a little so that it compiles against MacPorts Berkeley DB 4.8. Also I reflected the change in the README. compiles on Mac OS X does not run but could be due to sandboxing/ACL's? I could really need someone good with Mac OS X to look over this and fix it and send patches to me. -pjp


* bump copyright to include 2012


Change to berkeley db 4.6+, this allows us to use shared sysv memory needed to have multiple server instances that do recursing. The database is now on disk with this change, with a 260KB (default) SYSV shared memory cache. The cache size can be tweaked with the newly added -c flag. The OS has upper limits for SYSV shared memory though and the -c value must account for 25% more for internal purposes. Revert db.h struct domain to static arrays instead of pointers, this is necessary because we want to use shared memory between the database. This reverts revision 1.13 of db.h which was commited on Sun Mar 28 20:18:26 2010 UTC. So far wildcarddnsd has been extremely stable with the pointers, I'm hoping we'll get this much stability back. Added passive AXFR code. The axfr server does NOT bind to port 53 but rather another port, luckily that is configurable with other nameservers like BIND9. BIND nameservers wanting to make use of a wildcarddnsd master should turn IXFR queries off. Fix a small error that would bring wildcarddnsd to a SIGSEGV due to doing an FD_ISSET() on a non-descriptor. This only happens when one doesn't have the logging system turned on so it took a while for me to find it. Added the -n flag which allows multiple forked copies of wdnsd to be started. This is similar to how apache 1.3 web server does it.


* add logging support, a syslog like service that allows one daemon to contact another wildcarddnsd daemon and send it its log, I like this because it aggregates all logs to a dns system. I had this running in production for a day now and it seems to be stable. Here is a sample log entry: logging "these hosts" { logbind yes; loghost ::1; logport 19999; logpasswd peter; } This particular one binds and is a listener, to be a logger leave the logbind out. * Also cleaned up mainloop() somewhat, using recvfrom() with a struct sockaddr caused some corruption in the buf array and recvmsg() would complain and nothing worked anymore. That is ironed out and I have also added a struct cfg to be passing to mainloop() since arguments to mainloop are growing with new ideas and functionality, this keeps the argument rather compacted. Also cfg is calloc'ed and resides on the heap. * adjust Makefiles, but not tested on any other than OpenBSD and FreeBSD 7.3


* when a slave dies it will signal to the master that it died which then will bring all the other slaves down. It polls every second for this via shared memory (anonymous mmap).


* bump copyright date to include 2011


* make FreeBSD compile Any RR's are now tested with FreeBSD on example1.conf


* make linux compile with the new IPv6 code compiles on OpenSuse 10.3


* IPv6 recurse code, broken at the moment compiles on OpenBSD Wildcarddnsd has surpassed 10,000 lines of C code with this commit.


* write reply_raw() and reply_raw2(), it is now possible to query an IPv4 DNS A lookup that recurses. This is a milestone, but far from finished.


* change struct domain to use pointers instead of having character arrays for every address. This saves memory and may speed things up a tad. Tested on OpenBSD, Ubuntu 64, FreeBSD 64


* remove openssl/md5.h include, this software still doesn't use any cryptographic functions.


* now that we do TCP, ignore the PIPE signal as if I recall correctly the sockets peer can hang up before we send return data.


* part 1 of merging TTLPATCH branch to HEAD


* in main.c - remove recvfrom() in favour of recvmsg(), this allows us to turn on reading the time to live of the request. It could be useful for future changes in features. * in parse.c - when stat()'ing files in /dev don't return with failure but log and keep going, this worked on my vps which had something mangled internally


* do some digging in parse.c to get the device name that our configfile sits on. * LOG_CONS removed, this was a mistake


* copyright 2009


* tags, rcscmd's, more README stuff, licensing updates


* port to Linux * compiles and runs on: - NetBSD 4.0 - FreeBSD 7.0 - DragonFlyBSD - OpenBSD 4.2 - Linux Redhat WS 5


* initial import