├── .gitignore ├── 00README.FIRST ├── 0QuickStart ├── CHANGELOG.TXT ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── COPYING ├── Docker-stuff ├── Dockerfile ├── README.md ├── alpine │ ├── Dockerfile │ ├── README.md │ └── build.alpine.image.sh ├── build.ubuntu.image.sh ├── killall ├── maramake-2022-11-01.tar.gz ├── rg32hash.tar.gz ├── run.MaraDNS.tests └── run.tests.sh ├── Makefile.windows-g ├── MaraDns.h ├── README.md ├── REFERENCE.md ├── SECURITY.md ├── TESTING.PROCEDURE ├── build ├── Makefile.freebsd ├── Makefile.linux ├── Makefile.mingw32 ├── Makefile.noflock ├── Makefile.unsupported ├── Makefile.w ├── README ├── README.RedHat ├── copy.devs.c ├── deadwood.startup ├── fix.bang.path ├── install.locations ├── install.sh ├── mara.startup ├── patches │ └── maradns-1.1.59-rpm.patch ├── systemd │ ├── colunacydns.service │ ├── deadwood.service │ └── maradns.service ├── uninstall.sh ├── win32 │ ├── make.zipfile.sh │ ├── mararc │ ├── pthreads.txt │ ├── readme.txt │ └── run_maradns.bat └── zoneserver.startup ├── coLunacyDNS ├── .gitignore ├── HalfSipHash13.c ├── Makefile ├── Makefile.cygwin ├── Makefile.default ├── Makefile.editline ├── Makefile.mingw32 ├── README.md ├── RELEASES ├── clean.sh ├── coLunacyDNS.c ├── coLunacyDNS.lua ├── compile.win32.service.sh ├── doc │ ├── Makefile │ ├── coLunacyDNS.1 │ ├── coLunacyDNS.ej │ └── coLunacyDNS.txt ├── exampleIPs.txt ├── lauxlib.h ├── lua.h ├── luaconf.h ├── lualib.h ├── lunacy │ ├── .gitignore │ ├── COPYING │ ├── Makefile │ ├── Makefile.default │ ├── Makefile.leaner │ ├── Makefile.mingw32 │ ├── README.SipHash.md │ ├── README.bitlib │ ├── bit_limits.h │ ├── doc │ │ ├── SamDiscussesLunacy.pdf │ │ ├── lunacy-manual.html │ │ ├── lunacy-manual.pdf │ │ ├── lunacy.css │ │ └── manual.css │ ├── lapi.c │ ├── lapi.h │ ├── lauxlib.c │ ├── lauxlib.h │ ├── lbaselib.c │ ├── lbitlib.c │ ├── lcode.c │ ├── lcode.h │ ├── ldblib.c │ ├── ldebug.c │ ├── ldebug.h │ ├── ldo.c │ ├── ldo.h │ ├── ldump.c │ ├── lfs.h │ ├── lfunc.c │ ├── lfunc.h │ ├── lgc.c │ ├── lgc.h │ ├── linit.c │ ├── liolib.c │ ├── llex.c │ ├── llex.h │ ├── llimits.h │ ├── lmathlib.c │ ├── lmem.c │ ├── lmem.h │ ├── loadlib.c │ ├── lobject.c │ ├── lobject.h │ ├── lopcodes.c │ ├── lopcodes.h │ ├── loslib.c │ ├── lparser.c │ ├── lparser.h │ ├── lstate.c │ ├── lstate.h │ ├── lstring.c │ ├── lstring.h │ ├── lstrlib.c │ ├── ltable.c │ ├── ltable.h │ ├── ltablib.c │ ├── ltm.c │ ├── ltm.h │ ├── lua.c │ ├── lua.h │ ├── luac.c │ ├── luaconf.h │ ├── lualib.h │ ├── lundump.c │ ├── lundump.h │ ├── lvm.c │ ├── lvm.h │ ├── lzio.c │ ├── lzio.h │ └── print.c ├── rg32.lua ├── sqa │ ├── README.md │ ├── do.tests │ ├── sqa_amazon │ │ ├── do.test │ │ └── output.success │ ├── sqa_any │ │ ├── do.test │ │ └── output.success │ ├── sqa_args │ │ ├── do.test │ │ ├── output.success1 │ │ ├── output.success2 │ │ ├── output.success3 │ │ ├── output.success4 │ │ ├── output.success5 │ │ ├── output.success6 │ │ └── output.success7 │ ├── sqa_badBindIP │ │ ├── do.test │ │ └── output.success │ ├── sqa_badQueryID │ │ ├── do.test │ │ └── output.success │ ├── sqa_badQueryName │ │ ├── do.test │ │ └── output.success │ ├── sqa_badanswer │ │ ├── do.test │ │ └── output.success │ ├── sqa_badquestion │ │ ├── do.test │ │ ├── output.success1 │ │ └── output.success2 │ ├── sqa_badsolve │ │ ├── do.test │ │ └── output.success │ ├── sqa_binderror │ │ ├── do.test │ │ ├── output.success │ │ └── test.lua │ ├── sqa_blocklist │ │ ├── do.test │ │ └── output.success │ ├── sqa_co1AA │ │ ├── do.test │ │ └── output.success │ ├── sqa_co1RA │ │ ├── do.test │ │ └── output.success │ ├── sqa_co1TTL │ │ ├── do.test │ │ └── output.success │ ├── sqa_complex │ │ ├── do.test │ │ └── output.success │ ├── sqa_comppointer │ │ ├── do.test │ │ └── output.success │ ├── sqa_execve │ │ ├── do.test │ │ ├── execve1.c │ │ ├── execve2.c │ │ ├── execve3.c │ │ └── output.success │ ├── sqa_file │ │ ├── do.test │ │ ├── output.success1 │ │ └── output.success2 │ ├── sqa_flipcase │ │ ├── do.test │ │ └── output.success │ ├── sqa_gCovNoOpenDNS │ │ ├── do.test │ │ ├── output.success1 │ │ └── output.success2 │ ├── sqa_gCovSendsFail │ │ ├── do.test │ │ └── output.success │ ├── sqa_getupstream │ │ ├── do.test │ │ └── output.success │ ├── sqa_halfsip13 │ │ ├── do.test │ │ └── output.success │ ├── sqa_ignoreme │ │ ├── do.test │ │ ├── output.success1 │ │ └── output.success2 │ ├── sqa_ip6 │ │ ├── do.test │ │ └── output.success │ ├── sqa_ip6Parse │ │ ├── Input │ │ ├── do.test │ │ └── output.success │ ├── sqa_ip6bad │ │ ├── do.test │ │ └── output.success │ ├── sqa_nobindIP │ │ ├── do.test │ │ └── output.success │ ├── sqa_oneanswer │ │ ├── do.test │ │ ├── output.success1 │ │ └── output.success2 │ ├── sqa_postanswer │ │ ├── do.test │ │ ├── output.success1 │ │ └── output.success2 │ ├── sqa_rawpacket │ │ ├── do.test │ │ └── output.success │ ├── sqa_refused │ │ ├── do.test │ │ ├── output.success1 │ │ └── output.success2 │ ├── sqa_rg32 │ │ ├── Input │ │ ├── do.test │ │ ├── output.8859-1 │ │ └── output.success │ ├── sqa_roy_arends │ │ ├── do.test │ │ ├── output.success1 │ │ ├── output.success2 │ │ └── sendpacket-arends.c │ ├── sqa_servfail │ │ ├── do.test │ │ └── output.success │ ├── sqa_timeout │ │ ├── do.test │ │ ├── output.success1 │ │ ├── output.success18 │ │ └── output.success19 │ ├── sqa_twoanswers │ │ ├── do.test │ │ └── output.success │ ├── sqa_twoupstreams │ │ ├── do.test │ │ └── output.success │ └── testVars └── testVectors ├── compile.sh ├── configure ├── deadwood-github ├── Copying.txt ├── INSTALL.txt ├── README.root_servers ├── bug.reporting.policy ├── doc │ ├── CHANGELOG │ ├── Changelog.summary │ ├── Deadwood-HOWTO │ ├── Deadwood.1 │ ├── Deadwood.ej │ ├── Deadwood.html │ ├── Deadwood.md │ ├── Deadwood.txt │ ├── FAQ.ej │ ├── FAQ.html │ ├── FAQ.txt │ ├── Makefile │ ├── MulConstant.txt │ ├── Recursive_algorithm.ej │ ├── Recursive_algorithm.txt │ ├── Update-guide.txt │ ├── blockHashMake.1 │ ├── blockHashMake.ej │ ├── blockHashMake.html │ ├── blockHashMake.md │ ├── blockHashMake.txt │ ├── blockHashRead.1 │ ├── blockHashRead.ej │ ├── blockHashRead.html │ ├── blockHashRead.md │ ├── blockHashRead.txt │ ├── compile.options │ ├── dwood3rc │ ├── dwood3rc-all │ ├── execfile-HOWTO.html │ └── internals │ │ ├── CACHE.DESIGN │ │ ├── CACHE.FILE │ │ ├── CODING.STYLE │ │ ├── DNS.HEADER │ │ ├── Glueless.NS │ │ ├── HASH.DESIGN │ │ ├── MARARC.parser │ │ ├── ROADMAP │ │ ├── RR.Allocation │ │ ├── SOCKET.CODING.STYLE │ │ ├── TODO │ │ └── recurse.chase.cname ├── sqa │ ├── README │ ├── alexa.awk │ ├── basic_ipv6_test │ │ ├── do.test │ │ └── output.success │ ├── basic_tcp_test │ │ ├── README │ │ ├── db.example.com │ │ ├── do.test │ │ └── output.success │ ├── basic_test │ │ ├── do.test │ │ └── output.success │ ├── do.just.inflights.test │ ├── do.tests │ ├── do.tests.CentOS-5.3 │ ├── dwood2rc_d_upstream_servers │ │ ├── db.example.net │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_dns_port │ │ ├── do.test │ │ ├── output.success │ │ └── regex.parse.lunacy │ ├── dwood2rc_n_filter_rfc1918 │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_handle_noreply │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_handle_noreply_tcp │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_handle_overload │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_hash_magic_number │ │ ├── README │ │ ├── do.test │ │ ├── dwood2rc │ │ └── output.success │ ├── dwood2rc_n_maradns_gid │ │ ├── do.test │ │ ├── lrx.lunacy │ │ └── output.success │ ├── dwood2rc_n_maradns_uid │ │ ├── do.test │ │ ├── lrx.lunacy │ │ └── output.success │ ├── dwood2rc_n_max_ar_chain │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_max_inflights │ │ ├── do.test │ │ ├── lrx.lunacy │ │ ├── microdns_delay.c │ │ ├── output.success │ │ └── output.success.5.3 │ ├── dwood2rc_n_maximum_cache_elements │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_maxprocs │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_num_retries │ │ ├── do.test │ │ ├── output.success │ │ └── simple.dns.c │ ├── dwood2rc_n_recurse_min_bind_port │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_recurse_number_ports │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_resurrections │ │ ├── dead.server.c │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_timeout_seconds │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_ttl_age │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_upstream_port │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_n_verbose_level │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_s_bind_address │ │ ├── do.test │ │ ├── lrx.lunacy │ │ └── output.success │ ├── dwood2rc_s_cache_file │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_s_chroot_dir │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_s_ip_blacklist │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_s_ip_blocklist │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_s_ipv4_bind_addresses │ │ ├── do.test │ │ ├── lrx.lunacy │ │ └── output.success │ ├── dwood2rc_s_random_seed_file │ │ ├── do.test │ │ └── output.success │ ├── dwood2rc_s_recursive_acl │ │ ├── do.test │ │ └── output.success │ ├── recurse_2link_cname │ │ ├── clean.up.files │ │ ├── do.test │ │ ├── dwood3rc │ │ ├── lrx.lunacy │ │ ├── output.success │ │ └── setup.maradns │ ├── recurse_es-us.noticias.yahoo.com │ │ ├── clean.up.files │ │ ├── do.test │ │ ├── dwood3rc │ │ ├── output.success │ │ ├── regex.parse.lunacy │ │ └── setup.maradns │ ├── run.alexa.top.500 │ ├── sqa_badid_question │ │ ├── badid.dns.c │ │ ├── badquestion.dns.c │ │ ├── do.test │ │ └── output.success │ ├── sqa_bigpacket │ │ ├── Makefile │ │ ├── db.example.com │ │ ├── dns.query.example.com │ │ ├── dns.query.txt.example.com │ │ ├── dns.reply.example.com │ │ ├── dns.reply.txt.example.com │ │ ├── do.test │ │ ├── named.conf │ │ ├── output.success │ │ ├── send_packet_stdin.c │ │ ├── show_packet_stdout.c │ │ └── truncated.c │ ├── sqa_cname_bad_bailiwick │ │ ├── README │ │ ├── do.test │ │ ├── output.success │ │ └── regex.parse.lunacy │ ├── sqa_cname_chain │ │ ├── do.test │ │ ├── lrx.lunacy │ │ └── output.success │ ├── sqa_easydns_bad_truncation │ │ ├── do.test │ │ ├── lrx.lunacy │ │ ├── output.success │ │ └── simulate_easydns.c │ ├── sqa_halfsip │ │ ├── do.test │ │ └── output.success │ ├── sqa_incomplete_last_line │ │ ├── README │ │ └── incomplete.last.line.c │ ├── sqa_ip4 │ │ ├── do.test │ │ ├── dwoodrc │ │ ├── nanodns.c │ │ └── output.success │ ├── sqa_one_upstream_down │ │ ├── do.test │ │ ├── lrx.lunacy │ │ └── output.success │ ├── sqa_rg32 │ │ ├── Input │ │ ├── README │ │ ├── do.test │ │ ├── one.test │ │ ├── output.good │ │ ├── output.success │ │ └── rg32hash.c │ ├── sqa_rg64 │ │ ├── Input │ │ ├── README │ │ ├── do.test │ │ ├── one.test │ │ ├── output.good │ │ ├── output.success │ │ └── rg32hash.c │ ├── sqa_root_upstream │ │ ├── do.test │ │ ├── microdns_rd_must_be_clear.c │ │ ├── microdns_rd_must_be_set.c │ │ └── output.success │ ├── sqa_roy_arends │ │ ├── README │ │ ├── do.test │ │ ├── output.success │ │ └── sendpacket-arends.c │ ├── sqa_server_fail │ │ ├── do.test │ │ ├── microdns.c │ │ ├── microdns_server_fail.c │ │ └── output.success │ ├── sqa_tcp │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── sqa_tcp_buffering │ │ ├── Makefile │ │ ├── db.example.com │ │ ├── dns.query.example.com │ │ ├── dns.query.txt.example.com │ │ ├── dns.reply.example.com │ │ ├── dns.reply.txt.example.com │ │ ├── do.test │ │ ├── output.success │ │ ├── send_packet_stdin.c │ │ ├── show_packet_stdout.c │ │ └── truncated.c │ ├── sqa_tcp_buffering_2 │ │ ├── Makefile │ │ ├── db.example.com │ │ ├── dns.query.example.com │ │ ├── dns.query.txt.example.com │ │ ├── dns.reply.example.com │ │ ├── dns.reply.txt.example.com │ │ ├── do.test │ │ ├── output.success │ │ ├── send_packet_stdin.c │ │ ├── show_packet_stdout.c │ │ └── truncated.c │ ├── sqa_ttl_expire │ │ ├── clean.up │ │ ├── do.test │ │ ├── microdns-timestamp.c │ │ └── output.success │ └── sqa_valgrind │ │ ├── do.test │ │ ├── lrx.lunacy │ │ ├── output.success │ │ └── randomIP.lunacy ├── src │ ├── DwBlockHash.c │ ├── DwBlockHash.h │ ├── DwCompress.c │ ├── DwCompress.h │ ├── DwDict.c │ ├── DwDict.h │ ├── DwDnsStr.c │ ├── DwDnsStr.h │ ├── DwHalfSipHash.c │ ├── DwHalfSipHash.h │ ├── DwHash.c │ ├── DwHash.h │ ├── DwMain.c │ ├── DwMararc.c │ ├── DwMararc.h │ ├── DwRadioGatun.c │ ├── DwRadioGatun.h │ ├── DwRadioGatun64.h │ ├── DwRandPrime.h │ ├── DwRecurse.c │ ├── DwRecurse.h │ ├── DwSocket.c │ ├── DwSocket.h │ ├── DwStr.c │ ├── DwStr.h │ ├── DwStr_functions.h │ ├── DwSys.c │ ├── DwSys.h │ ├── DwTcpSocket.c │ ├── DwTcpSocket.h │ ├── DwUdpSocket.c │ ├── DwWinSvc.c │ ├── Makefile │ ├── Makefile.dcomp │ ├── Makefile.fallback │ ├── Makefile.hsck │ ├── Makefile.mingw342 │ ├── Makefile.noip6 │ ├── Makefile.randomprime │ ├── Makefile.sl6 │ ├── Makefile.ubuntu2204 │ ├── Makefile.xcygwin │ ├── RandomPrime.c │ ├── Test.c │ ├── make.version.h │ └── tcc-compile.bat ├── tools │ ├── Makefile │ ├── blockhash │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── blockHashMake.c │ │ └── blockHashRead.c │ ├── make.blocklist.sh │ └── mkSecretTxt.c └── update │ ├── 2.9.02 │ ├── 2.9.01-to-2.9.02 │ ├── deadwood-2.9.01-DwMain.patch │ ├── deadwood-2.9.01-MAXIPS.patch │ ├── deadwood-2.9.01-bug_reporting.patch │ ├── deadwood-2.9.01-child_id.patch │ ├── deadwood-2.9.01-doc_update.patch │ ├── deadwood-2.9.01-edgecastcdn.net.patch │ ├── deadwood-2.9.01-show_not_there.patch │ ├── deadwood-2.9.01-show_not_there_2.patch │ ├── deadwood-2.9.01-spurious_message.patch │ └── deadwood-2.9.01-verbose_dwx_dissect_packet.patch │ ├── 2.9.03 │ ├── 2.9.02-to-2.9.03 │ ├── deadwood-2.9.02-173_comment_fix.patch │ ├── deadwood-2.9.02-CentOS_bug_4465_workaround.patch │ ├── deadwood-2.9.02-RFC2671.patch │ ├── deadwood-2.9.02-changelog.patch │ ├── deadwood-2.9.02-handle_dname.patch │ ├── deadwood-2.9.02-hash_debug.patch │ ├── deadwood-2.9.02-log_retry.patch │ ├── deadwood-2.9.02-no_ip_netmask.patch │ ├── deadwood-2.9.02-timeout_tweak.patch │ ├── deadwood-2.9.02-trim_fat.patch │ └── deadwood-2.9.02-truncated_packet_recursive.patch │ ├── 2.9.04 │ ├── 2.9.03-to-2.9.04 │ ├── deadwood-2.9.03-changelog.patch │ ├── deadwood-2.9.03-handle_edns.patch │ ├── deadwood-2.9.03-lower_case.patch │ └── deadwood-2.9.03-tune_params.patch │ ├── 2.9.05 │ ├── 2.9.04-to-2.9.05 │ ├── deadwood-2.9.04-any_cname.patch │ ├── deadwood-2.9.04-any_cname_part2.patch │ ├── deadwood-2.9.04-bookride.com.patch │ ├── deadwood-2.9.04-check_ip_acl.patch │ ├── deadwood-2.9.04-compile.options.patch │ ├── deadwood-2.9.04-doc.internals.patch │ └── deadwood-2.9.04-using_mingw342.patch │ ├── 2.9.06 │ ├── 2.9.05-to-2.9.06 │ ├── deadwood-2.9.05-FAQ.patch │ ├── deadwood-2.9.05-changelog.patch │ ├── deadwood-2.9.05-deadwood_manpage.patch │ ├── deadwood-2.9.05-deliver_all.patch │ ├── deadwood-2.9.05-mt_packet.patch │ ├── deadwood-2.9.05-other_stuff.patch │ └── deadwood-2.9.05-serv_fail.patch │ ├── 2.9.07 │ ├── 2.9.06-to-2.9.07 │ ├── deadwood-2.9.06-accurate_log.patch │ ├── deadwood-2.9.06-add_constant.patch │ ├── deadwood-2.9.06-dw_issame_case.patch │ ├── deadwood-2.9.06-gibson_bug.patch │ ├── deadwood-2.9.06-ns_lower_case.patch │ ├── deadwood-2.9.06-reject_mx.patch │ ├── deadwood-2.9.06-rotate_offsets.patch │ ├── deadwood-2.9.06-speedup1.patch │ └── deadwood-2.9.06-verify_ignore_case.patch │ ├── 3.0.01 │ ├── 2.9.07-to-3.0.01 │ ├── deadwood-2.9.07-Windows7_doc.patch │ ├── deadwood-2.9.07-changelog.patch │ ├── deadwood-2.9.07-copying_2010.patch │ ├── deadwood-2.9.07-deadwood_manpage.patch │ ├── deadwood-2.9.07-dict_element_append.patch │ ├── deadwood-2.9.07-ej_ubuntu_10.patch │ ├── deadwood-2.9.07-faq.patch │ ├── deadwood-2.9.07-readme_txt.patch │ ├── deadwood-2.9.07-win_dwood3rc.patch │ └── deadwood-2.9.07-win_reference.patch │ ├── 3.0.02 │ ├── 3.0.01-to-3.0.02 │ ├── deadwood-3.0.01-dnswall.patch │ ├── deadwood-3.0.01-doc.patch │ ├── deadwood-3.0.01-duende-pid.patch │ ├── deadwood-3.0.01-memleak.patch │ ├── deadwood-3.0.01-urbandictionary.patch │ └── deadwood-3.0.01-valgrind_sometimes_lies.patch │ ├── 3.0.03 │ ├── 3.0.02-to-3.0.03 │ ├── deadwood-3.0.02-SL6-install.patch │ ├── deadwood-3.0.02-SL6_sqa_update.patch │ ├── deadwood-3.0.02-answers.yahoo.com-patch │ ├── deadwood-3.0.02-archive.org-problem.patch │ ├── deadwood-3.0.02-changelog.patch │ ├── deadwood-3.0.02-correct_synth_not_there_len.patch │ ├── deadwood-3.0.02-example.com_moved.patch │ ├── deadwood-3.0.02-example_phish_protection.patch │ └── deadwood-3.0.02-secure.newegg.com-problem.patch │ ├── 3.0.04 │ ├── 3.0.03-to-3.0.04 │ ├── deadwood-3.0.03-changelog.patch │ ├── deadwood-3.0.03-dwood3rc.patch │ ├── deadwood-3.0.03-explain_whitespace_error.patch │ ├── deadwood-3.0.03-harlan.patch │ ├── deadwood-3.0.03-init_dict_once.patch │ ├── deadwood-3.0.03-no_dups.patch │ ├── deadwood-3.0.03-no_leading_whitespace.patch │ ├── deadwood-3.0.03-reject_ptr.patch │ ├── deadwood-3.0.03-sqa_update.patch │ ├── deadwood-3.0.03-upstream_root.patch │ └── deadwood-3.0.03-warn_on_dup_entry.patch │ ├── 3.0.05 │ ├── 3.0.04-to-3.0.05 │ ├── deadwood-3.0.04-changelog.patch │ ├── deadwood-3.0.04-ra_must_be_set.patch │ └── deadwood-3.0.04-reject_ptr.patch │ ├── 3.1.01 │ ├── 3.0.05-to-3.1.01 │ ├── deadwood-3.0.05-changelog.patch │ ├── deadwood-3.0.05-check_for_cname.patch │ ├── deadwood-3.0.05-easydns-tarpit.patch │ ├── deadwood-3.0.05-reset_rem.patch │ ├── deadwood-3.0.05-tiny_binary.patch │ └── deadwood-3.0.05-truncation_hack_fix.patch │ ├── 3.1.02 │ ├── 3.1.01-to-3.1.02 │ └── deadwood-3.1.01-crash_hotfix.patch │ ├── 3.1.03 │ ├── 3.1.02-to-3.1.03 │ ├── deadwood-3.1.02-fine_time_stamp.patch │ ├── deadwood-3.1.02-hash_bucket.patch │ └── deadwood-3.1.02-use_upstream_cname_ttl.patch │ ├── 3.2.01 │ ├── 3.1.03-to-3.2.01 │ ├── deadwood-3.1.03-bad_timestamp.patch │ ├── deadwood-3.1.03-cache_store_tweak.patch │ ├── deadwood-3.1.03-changelog.patch │ ├── deadwood-3.1.03-expire_tweak.patch │ ├── deadwood-3.1.03-faq_maradns_2_out.patch │ ├── deadwood-3.1.03-faq_toc.patch │ ├── deadwood-3.1.03-html_doc.patch │ ├── deadwood-3.1.03-more_tcp_time.patch │ ├── deadwood-3.1.03-num_retries.patch │ ├── deadwood-3.1.03-tebowseyeblack.com.patch │ ├── deadwood-3.1.03-truncation_doc.patch │ ├── deadwood-3.1.03-ttl_expire.patch │ └── deadwood-3.1.03-unknown_string_parameter_FAQ.patch │ ├── 3.2.02 │ ├── 3.2.01-to-3.2.02 │ ├── deadwood-3.2.01-2012.patch │ ├── deadwood-3.2.01-Recursive-algorithm-doc.patch │ ├── deadwood-3.2.01-adjust-cache-size.patch │ ├── deadwood-3.2.01-changelog.patch │ ├── deadwood-3.2.01-fixed_bug.patch │ ├── deadwood-3.2.01-harden.patch │ ├── deadwood-3.2.01-install_txt.patch │ ├── deadwood-3.2.01-mararc-2012.patch │ ├── deadwood-3.2.01-max_ttl.patch │ └── deadwood-3.2.01-update-guide.patch │ ├── 3.2.03 │ ├── 3.2.02-to-3.2.03 │ ├── deadwood-3.2.02-doc_string_vs_numeric.patch │ ├── deadwood-3.2.02-dw_malloc.patch │ ├── deadwood-3.2.02-easydns_bad_truncation.patch │ ├── deadwood-3.2.02-easydns_bad_truncation_test.patch │ ├── deadwood-3.2.02-es-us.noticias.yahoo.com.patch │ ├── deadwood-3.2.02-force_newer_cache.patch │ ├── deadwood-3.2.02-install_doc.patch │ ├── deadwood-3.2.02-ipv6_compile.patch │ ├── deadwood-3.2.02-missing_chdir_message.patch │ ├── deadwood-3.2.02-more_compress_validation.patch │ ├── deadwood-3.2.02-more_dw_malloc.patch │ ├── deadwood-3.2.02-netstat_changed.patch │ ├── deadwood-3.2.02-no_links.patch │ ├── deadwood-3.2.02-showpacket.patch │ ├── deadwood-3.2.02-smaller_rg32.patch │ └── deadwood-3.2.02-sqa_86400.patch │ ├── 3.2.04 │ ├── 3.2.03-to-3.2.04 │ ├── deadwood-3.2.03-2013.patch │ ├── deadwood-3.2.03-CHANGELOG.patch │ ├── deadwood-3.2.03-DwDnsStr-init0.patch │ ├── deadwood-3.2.03-case_insensitive_compress.patch │ ├── deadwood-3.2.03-clang_warnings.patch │ ├── deadwood-3.2.03-dwx_dname_issame-cleanup.patch │ ├── deadwood-3.2.03-faq_dict_variable.patch │ ├── deadwood-3.2.03-faq_rfc1918.patch │ ├── deadwood-3.2.03-max_upstream_20000.patch │ ├── deadwood-3.2.03-oncetv-ipn.net.patch │ ├── deadwood-3.2.03-recursive_acl_example.patch │ ├── deadwood-3.2.03-rg64.patch │ ├── deadwood-3.2.03-root_server_ipchange.patch │ ├── deadwood-3.2.03-sqa_updates.patch │ ├── deadwood-3.2.03-stat_metadata.patch │ ├── deadwood-3.2.03-whatever.scalzi.com-fix.patch │ └── deadwood-3.2.03-www.getcafecup.com.patch │ ├── 3.2.05 │ ├── 3.2.04-to-3.2.05 │ ├── deadwood-3.2.04-CHANGELOG.patch │ ├── deadwood-3.2.04-cppcheck.patch │ ├── deadwood-3.2.04-dash-start.patch │ ├── deadwood-3.2.04-dw_substr.patch │ ├── deadwood-3.2.04-make.version.h.patch │ ├── deadwood-3.2.04-more_validation.patch │ └── deadwood-3.2.04-secret.txt.patch │ ├── 3.2.06 │ ├── 3.2.05-to-3.2.06 │ ├── deadwood-3.2.05-CHANGELOG.patch │ ├── deadwood-3.2.05-GCC482.patch │ ├── deadwood-3.2.05-ID-mismatch.patch │ ├── deadwood-3.2.05-Log_blocked_IP.patch │ ├── deadwood-3.2.05-RFC2535.patch │ ├── deadwood-3.2.05-Server-fail.patch │ ├── deadwood-3.2.05-ns_tarpit.patch │ ├── deadwood-3.2.05-sqa.patch │ └── deadwood-3.2.05-versionh.patch │ ├── 3.2.07 │ ├── 3.2.06-to-3.2.07 │ └── deadwood-3.2.06-hotfix.patch │ ├── 3.2.08 │ ├── 3.2.07-to-3.2.08 │ ├── deadwood-3.2.07-2015-07.patch │ ├── deadwood-3.2.07-big_maxprocs.patch │ ├── deadwood-3.2.07-cygwin_compile.patch │ ├── deadwood-3.2.07-examplecom.patch │ ├── deadwood-3.2.07-github_support.patch │ └── deadwood-3.2.07-mixing_cnames_doc.patch │ ├── 3.2.09 │ ├── 3.2.08-to-3.2.09 │ ├── deadwood-3.2.08-CHANGELOG.patch │ ├── deadwood-3.2.08-SQA.patch │ ├── deadwood-3.2.08-no-centos5-Makefile.patch │ └── deadwood-3.2.08-num_locals.patch │ ├── 3.2.10 │ ├── 3.2.09-to-3.2.10 │ ├── deadwood-3.2.09-2017.patch │ ├── deadwood-3.2.09-docUpdate.patch │ ├── deadwood-3.2.09-mixedCase.patch │ ├── deadwood-3.2.09-rootServers.patch │ ├── deadwood-3.2.09-sqa_tcp.patch │ └── deadwood-3.2.09-underscore.patch │ ├── 3.2.11 │ ├── 3.2.10-to-3.2.11 │ ├── deadwood-3.2.10-B-renumbering.patch │ └── deadwood-3.2.10-changelog.patch │ ├── 3.2.12 │ ├── 3.2.11-to-3.2.12 │ ├── deadwood-3.2.11-changelog.patch │ ├── deadwood-3.2.11-clang.patch │ ├── deadwood-3.2.11-rg32-clang-warning.patch │ └── deadwood-3.2.11-sqa_rg32.patch │ ├── 3.2.13 │ ├── 3.2.12-to-3.2.13 │ ├── deadwood-3.2.12-changelog.patch │ └── deadwood-3.2.12-sqa.patch │ ├── 3.2.14 │ ├── 3.2.13-to-3.2.14 │ ├── deadwood-3.2.13-WindowsOpen.patch │ └── deadwood-3.2.13-doc.patch │ ├── 3.3.01 │ ├── 3.2.14-to-3.3.01 │ └── deadwood-3.2.14-implement-ip4.patch │ ├── 3.3.02 │ ├── 3.3.01-to-3.3.02 │ └── deadwood-3.3.01-implement-ip6.patch │ ├── 3.3.03 │ ├── 3.3.02-to-3.3.03 │ ├── deadwood-3.3.02-RadioGatun64.patch │ ├── deadwood-3.3.02-changelog.patch │ ├── deadwood-3.3.02-number_to_view.patch │ ├── deadwood-3.3.02-quad9.patch │ └── deadwood-3.3.02-sqa_ip4.patch │ ├── 3.4.01 │ ├── 3.3.03-to-3.4.01 │ └── deadwood-3.3.03-doc.patch │ ├── 3.4.02 │ ├── 3.4.01-to-3.4.02 │ ├── deadwood-3.4.01-changelog.patch │ ├── deadwood-3.4.01-docWindows.patch │ └── deadwood-3.4.01-versionh.patch │ ├── 3.4.03 │ ├── 3.4.02-to-3.4.03 │ ├── deadwood-3.4.02-changelog.patch │ ├── deadwood-3.4.02-cname-TTL.patch │ └── deadwood-3.4.02-manylabel-TTL.patch │ ├── 3.4.04 │ ├── 3.4.03-to-3.4.04 │ ├── deadwood-3.4.03-DwDnsStr.patch │ ├── deadwood-3.4.03-changelog.patch │ ├── deadwood-3.4.03-min_ttl.patch │ └── deadwood-3.4.03-sqa.patch │ ├── 3.4.05 │ ├── 3.4.04-to-3.4.05 │ ├── deadwood-3.4.04-changelog.patch │ ├── deadwood-3.4.04-sqa.patch │ └── deadwood-sqa-2022-10-18.tar.xz │ ├── 3.4.06 │ ├── 3.4.05-to-3.4.06 │ ├── deadwood-3.4.05-changelog.patch │ └── deadwood-3.4.05-sync_recurse_depth.patch │ ├── 3.4.07 │ ├── 3.4.06-to-3.4.07 │ ├── deadwood-3.4.06-changelog.patch │ └── deadwood-3.4.06-docMakefile.patch │ ├── 3.4.08 │ ├── 3.4.07-to-3.4.08 │ ├── deadwood-3.4.07-Y2038.patch │ └── deadwood-3.4.07-changelog.patch │ ├── 3.4.09 │ ├── 3.4.08-to-3.4.09 │ ├── deadwood-3.4.08-RFC8482.patch │ └── deadwood-3.4.08-changelog.patch │ └── README.md ├── dns ├── Compress.c ├── Compress_rrdescs.h ├── Compress_rrs.h ├── Decompress.c ├── Makefile ├── Makefile.authonly ├── Queries.c ├── bobbit.c └── functions_dns.h ├── doc ├── README └── en │ ├── DNS.security.comparison.md │ ├── Makefile │ ├── QuickStart │ ├── README │ ├── credits.txt │ ├── examples │ ├── Makefile │ ├── example_authoritative_mararc.txt │ ├── example_csv1 │ ├── example_csv1.txt │ ├── example_csv2 │ ├── example_full_mararc │ ├── example_mararc │ └── example_recursive_mararc.txt │ ├── faq.html │ ├── faq.txt │ ├── files.txt │ ├── html │ ├── Makefile │ ├── authoritative.html │ ├── coding_style.html │ ├── compile.html │ ├── convert.html │ ├── dangling.html │ ├── default_zonefile.html │ ├── dnsintro.html │ ├── dnsmaster.html │ ├── dnsslave.html │ ├── dnstcp.html │ ├── glossary.html │ ├── man.askmara.html │ ├── man.csv1.html │ ├── man.csv2.html │ ├── man.csv2_txt.html │ ├── man.duende.html │ ├── man.fetchzone.html │ ├── man.maradns.html │ ├── man.mararc.html │ ├── man.zoneserver.html │ ├── quick_start.html │ ├── recordtypes.html │ ├── recursive.html │ ├── troubleshoot.html │ ├── tutorial.html │ ├── update.html │ └── win_service.html │ ├── man │ ├── Deadwood.1 │ ├── Makefile │ ├── askmara.1 │ ├── blockHashMake.1 │ ├── blockHashRead.1 │ ├── coLunacyDNS.1 │ ├── csv1.5 │ ├── csv2.5 │ ├── csv2_txt.5 │ ├── duende.8 │ ├── fetchzone.1 │ ├── getzone.1 │ ├── maradns.8 │ ├── mararc.5 │ ├── mqhash.1 │ ├── read.manpage │ └── zoneserver.8 │ ├── markdown │ ├── Deadwood.md │ ├── Makefile │ ├── askmara.md │ ├── blockHashMake.md │ ├── blockHashRead.md │ ├── coLunacyDNS.md │ ├── csv1.md │ ├── csv2.md │ ├── csv2_txt.md │ ├── duende.md │ ├── fetchzone.md │ ├── getzone.md │ ├── make.reference.sh │ ├── maradns.md │ ├── mararc.md │ ├── mqhash.md │ ├── reference.md │ └── zoneserver.md │ ├── md │ ├── Deadwood.md │ ├── Makefile │ ├── askmara.md │ ├── blockHashMake.md │ ├── blockHashRead.md │ ├── coLunacyDNS.md │ ├── csv1.md │ ├── csv2.md │ ├── csv2_txt.md │ ├── duende.md │ ├── fetchzone.md │ ├── getzone.md │ ├── maradns.md │ ├── mararc.md │ ├── mqhash.md │ └── zoneserver.md │ ├── misc │ ├── 0README │ ├── README.malloc │ ├── csv2.regexmatch.functionlist │ ├── dns-record-types.txt │ ├── js-manpages │ │ ├── README │ │ ├── js_alloc.3 │ │ ├── js_append.3 │ │ ├── js_atoi.3 │ │ ├── js_buf_eof.3 │ │ ├── js_buf_getline.3 │ │ ├── js_buf_read.3 │ │ ├── js_close.3 │ │ ├── js_copy.3 │ │ ├── js_create.3 │ │ ├── js_dealloc.3 │ │ ├── js_destroy.3 │ │ ├── js_destroy_force.3 │ │ ├── js_fgrep.3 │ │ ├── js_fgrep_offset.3 │ │ ├── js_get_encode.3 │ │ ├── js_getline_stdin.3 │ │ ├── js_has_sanity.3 │ │ ├── js_insert.3 │ │ ├── js_issame.3 │ │ ├── js_js2str.3 │ │ ├── js_length.3 │ │ ├── js_lock.3 │ │ ├── js_match.3 │ │ ├── js_match_offset.3 │ │ ├── js_newline_chars.3 │ │ ├── js_nonmatch.3 │ │ ├── js_nonmatch_offset.3 │ │ ├── js_octets.3 │ │ ├── js_open.3 │ │ ├── js_open_append.3 │ │ ├── js_open_read.3 │ │ ├── js_open_write.3 │ │ ├── js_qstr2js.3 │ │ ├── js_read.3 │ │ ├── js_set_chsize.3 │ │ ├── js_set_encode.3 │ │ ├── js_show_stdout.3 │ │ ├── js_space_chars.3 │ │ ├── js_str2js.3 │ │ ├── js_substr.3 │ │ ├── js_tolower.3 │ │ ├── js_unlock.3 │ │ ├── js_val.3 │ │ └── js_write.3 │ ├── multiple.qdcount │ ├── propagation.txt │ ├── recursive.algorithm │ ├── setup.bind.djbdns.axfr.test │ ├── vim.cheatsheet │ └── year_2038_statement.txt │ ├── source │ ├── Deadwood.ej │ ├── SOURCE.FILES │ ├── askmara.ej │ ├── authoritative.ej │ ├── blockHashMake.ej │ ├── blockHashRead.ej │ ├── changelog.ej │ ├── changelog.embed │ ├── coLunacyDNS.ej │ ├── coding_style.ej │ ├── compile.ej │ ├── convert.ej │ ├── copy │ ├── credits.ej │ ├── credits.embed │ ├── csv1.ej │ ├── csv2.ej │ ├── csv2_txt.ej │ ├── dangling.ej │ ├── data_structures.ej │ ├── default_zonefile.ej │ ├── dns_intro.ej │ ├── dnsintro.ej │ ├── dnsmaster.ej │ ├── dnsslave.ej │ ├── dnstcp.ej │ ├── download.ej │ ├── duende.ej │ ├── ej.doc.format │ ├── ej.template │ ├── example_auth_mararc │ ├── example_csv2 │ ├── example_full_mararc │ ├── example_mararc │ ├── example_mararc.ej │ ├── example_recursive_mararc │ ├── example_simple_csv1 │ ├── faq.ej │ ├── faq.embed │ ├── fetchzone.ej │ ├── files.ej │ ├── getzone.ej │ ├── glossary.ej │ ├── maraconf.ej │ ├── maradns.ej │ ├── mararc.ej │ ├── mqhash.ej │ ├── old.changelog │ ├── quick_start.ej │ ├── recordtypes.ej │ ├── recursive.ej │ ├── security_design.embed │ ├── troubleshoot.ej │ ├── tutorial.ej │ ├── update.ej │ ├── win_service.ej │ └── zoneserver.ej │ ├── text │ ├── Makefile │ ├── authoritative.txt │ ├── coding_style.txt │ ├── compile.txt │ ├── convert.txt │ ├── dangling.txt │ ├── default_zonefile.txt │ ├── dnsintro.txt │ ├── dnsmaster.txt │ ├── dnsslave.txt │ ├── dnstcp.txt │ ├── glossary.txt │ ├── man.askmara.txt │ ├── man.csv1.txt │ ├── man.csv2.txt │ ├── man.csv2_txt.txt │ ├── man.duende.txt │ ├── man.fetchzone.txt │ ├── man.maradns.txt │ ├── man.mararc.txt │ ├── man.zoneserver.txt │ ├── quick_start.txt │ ├── recordtypes.txt │ ├── recursive.txt │ ├── troubleshoot.txt │ ├── tutorial.txt │ ├── update.txt │ └── win_service.txt │ └── tutorial │ ├── Makefile │ ├── authoritative.html │ ├── bind2csv2.html │ ├── coding_style.html │ ├── compile.html │ ├── convert.html │ ├── dangling.html │ ├── default_zonefile.html │ ├── dnsintro.html │ ├── dnsmaster.html │ ├── dnsslave.html │ ├── dnstcp.html │ ├── glossary.html │ ├── make.index │ ├── man.askmara.html │ ├── man.csv2.html │ ├── man.csv2_txt.html │ ├── man.duende.html │ ├── man.fetchzone.html │ ├── man.maradns.html │ ├── man.mararc.html │ ├── man.zoneserver.html │ ├── quick_start.html │ ├── recordtypes.html │ ├── recursive.html │ ├── troubleshoot.html │ ├── tutorial.html │ ├── update.html │ └── win_service.html ├── git-cheatsheet ├── libs ├── JsStr.c ├── JsStr.h ├── JsStrCP.c ├── JsStrOS.c ├── Makefile ├── MaraHash.c ├── MaraHash.h ├── functions_MaraHash.h ├── mtest.c ├── testdata └── tests.c ├── locale.de ├── locale.en ├── locale.es ├── locale.pt_br ├── locale.ru ├── maradns-win32 ├── Askmara.html ├── Copying.txt ├── Cygwin.txt ├── Deadwood-HOWTO.txt ├── Deadwood.exe ├── README.txt ├── Reference.txt ├── Update-guide.txt ├── Vista.txt ├── Windows10.txt ├── askmara.exe ├── blockHashMake.exe ├── blockHashMake.txt ├── blockHashRead.exe ├── blockHashRead.txt ├── coLunacyDNS.exe ├── coLunacyDNS.lua ├── coLunacyDNS.txt ├── dwood3rc.txt ├── install.bat ├── maradns.exe └── uninstall.bat ├── maradns.gpg.key ├── maradns.gpg.key.HOWTO ├── maradns.gpg.key.old ├── parse ├── Csv2_database.c ├── Csv2_database.h ├── Csv2_esc_txt.c ├── Csv2_functions.h ├── Csv2_main.c ├── Csv2_parse.c ├── Csv2_read.c ├── Csv2_read.h ├── Csv2_rr_a.c ├── Csv2_rr_aaaa.c ├── Csv2_rr_soa.c ├── Csv2_rr_txt.c ├── Csv2_rr_wks.c ├── Makefile ├── ParseCsv1.c ├── ParseCsv1_en.h ├── ParseIpAcl.c ├── ParseMaraRc.c ├── ParseMaraRc_en.h ├── Parse_ipv6.c ├── Parse_ipv6_functions.h ├── example_mararc ├── functions_parse.h ├── parsetest.c └── parsetest2.c ├── qual ├── Makefile ├── Makefile.nothreads ├── qual_timestamp.c └── qual_timestamp.h ├── rfc1035.txt ├── rng ├── Makefile ├── Makefile.crossCompile ├── README.maradns ├── make_32bit_tables.c ├── readme ├── rng32bittables.h ├── rngalgfst.c ├── rngalgfst.h ├── rngapifst.c └── rngapifst.h ├── server ├── Makefile.authonly ├── Makefile.ipv6 ├── Makefile.mingw32 ├── MaraAnyChain.c ├── MaraBigHash.c ├── MaraBigHash_de.h ├── MaraBigHash_en.h ├── MaraBigHash_es.h ├── MaraBigHash_locale.h ├── MaraBigHash_pt_br.h ├── MaraBigHash_ru.h ├── MaraDNS.c ├── MaraDNS_de.h ├── MaraDNS_en.h ├── MaraDNS_locale.h ├── MaraDNS_pt_br.h ├── MaraDNS_ru.h ├── functions_server.h ├── read_kvars.c ├── read_kvars.h ├── simple.c ├── timestamp.c ├── timestamp.h └── udpsuccess.c ├── sqa ├── Makefile ├── aaaatest.c ├── asktest.c ├── asktest.exit.codes ├── dead_host_simulate.c ├── franky.hosts.test ├── franky.hosts.test.openbsd ├── qr.test.c ├── regressions │ ├── NOTES │ ├── README.md │ ├── README.posix │ ├── any_case │ │ ├── README │ │ ├── do.test │ │ ├── output.fail │ │ └── output.success │ ├── askmara.bug │ │ ├── README │ │ ├── bad.packet.c │ │ ├── do.test │ │ └── output.success │ ├── bad_query │ │ ├── README │ │ ├── check_bad_query.c │ │ ├── do.test │ │ ├── output.fail │ │ └── output.success │ ├── blank_zone │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── borked_zone │ │ ├── README │ │ └── do.test │ ├── def_zone_nx │ │ ├── README │ │ ├── do.test │ │ ├── output.fail │ │ └── output.success │ ├── delegation_glue │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── do.tests │ ├── do.tests.authonly │ ├── future │ │ ├── README │ │ ├── do.test │ │ ├── output.success │ │ └── output.test │ ├── improper_rotation │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── loc │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── long.chunk │ │ ├── README │ │ ├── db.example.com │ │ ├── do.test │ │ └── output.success │ ├── mararc_d_csv1 │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_d_csv2 │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_d_ipv4_alias │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_d_root_servers │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_d_upstream_servers │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_admin_acl │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_bind_address │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_bind_star_handling │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_chroot_dir │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_csv2_default_zonefile │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_csv2_synthip_list │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_csv2_tilde_handling │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_debug_msg_level │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_default_rrany_set │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_dns_port │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_dos_protection_level │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_handle_noreply │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_hide_disclaimer │ │ ├── README │ │ ├── db.example.com │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_ipv4_bind_addresses │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_ipv6_bind_address │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_long_packet_ipv4 │ │ ├── README │ │ ├── db.example.com │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_maradns_gid │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_maradns_uid │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_max_ar_chain │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_max_chain │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_max_glueless_level │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_max_queries_total │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_max_total │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_min_ttl │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_min_ttl_cname │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_min_visible_ttl │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_recurse_delegation │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_recursive_acl │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_remote_admin │ │ ├── README │ │ ├── db.example.com │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_spammers │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_synth_soa_origin │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_synth_soa_serial │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_tcp_convert_server │ │ ├── README │ │ ├── db.example.com │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_timestamp_type │ │ ├── README │ │ ├── db.example.com │ │ ├── do.test │ │ ├── example.good.output │ │ ├── output.success │ │ └── perform.test │ ├── mararc_n_upstream_port │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_verbose_level │ │ ├── README │ │ ├── do.test │ │ ├── example.good.output │ │ ├── output.success │ │ └── perform.test │ ├── mararc_n_verbose_query │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── mararc_n_zone_transfer_acl │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── noat_parse_bug │ │ ├── README │ │ ├── do.test │ │ ├── output.fail │ │ └── output.success │ ├── noise │ │ ├── README │ │ ├── clean.up │ │ ├── do.compile │ │ ├── do.test │ │ ├── output.success │ │ └── sendnoise.c │ ├── percent_parse_bug │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── predator1 │ │ ├── README │ │ ├── clean.up │ │ ├── do.compile │ │ ├── do.test │ │ ├── output.success │ │ └── sendp1.c │ ├── predator2 │ │ ├── README │ │ ├── clean.up │ │ ├── do.compile │ │ ├── do.test │ │ ├── output.success │ │ └── sendp2.c │ ├── private_ips │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── ptr_leak │ │ ├── README │ │ ├── clean.up │ │ ├── do.test │ │ └── output.success │ ├── rd_val │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── recurse_delegation │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── star_handling_1 │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── star_handling_2 │ │ ├── README │ │ ├── do.test │ │ └── output.success │ ├── star_handling_leak │ │ ├── README │ │ ├── clean.up │ │ ├── do.test │ │ └── output.success │ ├── truncation │ │ ├── README │ │ ├── db.example.com │ │ ├── do.test │ │ ├── output.fail │ │ ├── output.fail2 │ │ ├── output.fail3 │ │ └── output.success │ └── zoneserver_doc │ │ ├── README │ │ ├── do.test │ │ └── output.success ├── sendnoise.c ├── sendpacket.c ├── sendtcp.c └── sendudp.c ├── tcp ├── Makefile ├── Makefile.authonly ├── Makefile.ipv6 ├── fetchzone.c ├── functions_tcp.h ├── getzone.c ├── getzone_de.h ├── getzone_en.h ├── getzone_es.h ├── getzone_locale.h ├── getzone_pt_br.h ├── getzone_ru.h ├── libtcp.c ├── zoneserver.c ├── zoneserver_en.h └── zoneserver_pt_br.h ├── tests_pass.txt ├── tools ├── Makefile.authonly ├── Makefile.ipv6 ├── Makefile.mingw32 ├── OneSourceOfTruth │ ├── do.maradns.release │ ├── do.osot.tests │ └── do.windows.build ├── README.Duende ├── askmara.c ├── askmara_labels_en.h ├── askmaratcp.c ├── benchmark.c ├── duende-ng.c ├── duende.c ├── ej │ ├── README.md │ ├── ej2html │ ├── ej2man │ ├── ej2md │ ├── ej2txt │ └── example.ej ├── example.bind.zonefile ├── letsencrypt │ ├── README.md │ ├── certbot.all.sh │ ├── db.example.com │ ├── db.letsencrypt-verify │ ├── hook.sh │ ├── run.certbot.sh │ ├── t-add │ ├── t-count │ └── t-zap ├── maradns.where.c ├── misc │ ├── Makefile │ ├── README.marahash │ ├── do.gpg.sigs │ ├── example.xtract │ ├── example.zonetester │ ├── make.download.embed │ ├── make.maradns.spec │ ├── microdns.c │ ├── microdns.txt │ ├── mqhash.c │ ├── remake.patch │ ├── rg32hash.c │ └── rnghash.c ├── mkSecretTxt.c ├── strip.control.c └── time-test.c ├── update ├── 1.2.01 │ ├── 1.2.00-to-1.2.01 │ ├── maradns-1.2.00-changelog.patch │ ├── maradns-1.2.00-compile_flags.patch │ ├── maradns-1.2.00-dangling_bug.patch │ ├── maradns-1.2.00-dangling_doc.patch │ ├── maradns-1.2.00-freebsd.patch │ └── maradns-1.2.00-gpg.key.patch ├── 1.2.02 │ ├── 1.2.01-to-1.2.02 │ ├── maradns-1.2.01-bind_star_handling.patch │ ├── maradns-1.2.01-changelog.patch │ ├── maradns-1.2.01-configure.patch │ ├── maradns-1.2.01-copying_file.patch │ ├── maradns-1.2.01-cygwin.patch │ ├── maradns-1.2.01-doc.patch │ └── maradns-1.2.01-no_warnings.patch ├── 1.2.03.1 │ ├── 1.2.02-to-1.2.03.1 │ ├── maradns-1.2.02-anybug.patch │ ├── maradns-1.2.02-authonly.patch │ ├── maradns-1.2.02-changelog.patch │ ├── maradns-1.2.02-configure-1.patch │ ├── maradns-1.2.02-configure-2.patch │ ├── maradns-1.2.02-freebsd.patch │ ├── maradns-1.2.02-mara_byte.patch │ ├── maradns-1.2.02-mingw32-nowarn.patch │ ├── maradns-1.2.02-mingw32.patch │ ├── maradns-1.2.02-non_data_rtype.patch │ ├── maradns-1.2.02-qual.patch │ └── maradns-1.2.02-star.patch ├── 1.2.03.2 │ ├── 1.2.03.1-to-1.2.03.2 │ ├── maradns-1.2.03.1-changelog.patch │ ├── maradns-1.2.03.1-linux.patch │ └── maradns-1.2.03.1-mingw32_strip.patch ├── 1.2.04 │ ├── 1.2.03.2-to-1.2.04 │ ├── maradns-1.2.03.2-changelog.patch │ ├── maradns-1.2.03.2-cygwin.patch │ ├── maradns-1.2.03.2-faq.patch │ ├── maradns-1.2.03.2-maxprocs.patch │ ├── maradns-1.2.03.2-min_visible_ttl.patch │ ├── maradns-1.2.03.2-recursive_disable_30_minttl.patch │ ├── maradns-1.2.03.2-recursive_high_load.patch │ ├── maradns-1.2.03.2-recursive_min_ttl.patch │ ├── maradns-1.2.03.2-recursive_timeout_typo.patch │ ├── maradns-1.2.03.2-recursive_timeout_typo_2.patch │ ├── maradns-1.2.03.2-rpm.mararc.patch │ ├── maradns-1.2.03.2-rpm_spec.patch │ └── maradns-1.2.03.2-rpm_spec_2.patch ├── 1.2.05 │ ├── 1.2.04-to-1.2.05 │ ├── maradns-1.2.04-admin_acl.patch │ ├── maradns-1.2.04-authonly_ns_ar.patch │ ├── maradns-1.2.04-changelog.patch │ ├── maradns-1.2.04-cname_doc.patch │ ├── maradns-1.2.04-default_doc.patch │ ├── maradns-1.2.04-doc_verbose_query.patch │ ├── maradns-1.2.04-fqdn4.patch │ ├── maradns-1.2.04-fqdn4_no_default.patch │ ├── maradns-1.2.04-improper_termination.patch │ ├── maradns-1.2.04-mararc_cleanup.patch │ ├── maradns-1.2.04-remote_admin.patch │ ├── maradns-1.2.04-rpm_spec.patch │ ├── maradns-1.2.04-upstream_faq.patch │ └── maradns-1.2.04-upstream_faq_2.patch ├── 1.2.06 │ ├── 1.2.05-to-1.2.06 │ ├── maradns-1.2.05-admin_queries.patch │ ├── maradns-1.2.05-changelog.patch │ ├── maradns-1.2.05-handle_noreply.patch │ ├── maradns-1.2.05-log_write.patch │ ├── maradns-1.2.05-netstat_faq_entry.patch │ ├── maradns-1.2.05-opennic_list.patch │ ├── maradns-1.2.05-ptr_faq_entry.patch │ ├── maradns-1.2.05-python_2_2_3.patch │ ├── maradns-1.2.05-record_search_order_doc.patch │ ├── maradns-1.2.05-recursive_custom_doc.patch │ ├── maradns-1.2.05-rpm_spec.patch │ ├── maradns-1.2.05-spellfix.patch │ ├── maradns-1.2.05-udperror.patch │ └── maradns-1.2.05-webpage_update.patch ├── 1.2.07.1 │ ├── 1.2.06-to-1.2.07.1 │ ├── maradns-1.2.06-changelog.patch │ ├── maradns-1.2.06-doc.patch │ ├── maradns-1.2.06-duende.patch │ ├── maradns-1.2.06-force_dvar_init.patch │ ├── maradns-1.2.06-icann_msg.patch │ ├── maradns-1.2.06-lower_case_zonenames.patch │ ├── maradns-1.2.06-rpm_spec.patch │ ├── maradns-1.2.06-sqa_compile.patch │ └── maradns-1.2.06-upstream_doc.patch ├── 1.2.07.2 │ ├── 1.2.07.1-to-1.2.07.2 │ ├── maradns-1.2.07.1-changelog.patch │ ├── maradns-1.2.07.1-handle_noreply.patch │ ├── maradns-1.2.07.1-rpm_spec.patch │ ├── maradns-1.2.07.1-servfail.patch │ └── maradns-1.2.07.1-zoneserver_startup.patch ├── 1.2.07.3 │ ├── 1.2.07.2-to-1.2.07.3 │ ├── maradns-1.2.07.2-changelog.patch │ ├── maradns-1.2.07.2-mqhash.patch │ ├── maradns-1.2.07.2-mqhash_2.patch │ ├── maradns-1.2.07.2-multi_doc.patch │ ├── maradns-1.2.07.2-openbsd.patch │ ├── maradns-1.2.07.2-rpm_spec.patch │ └── maradns-1.2.07.2-webpage.patch ├── 1.2.07.4 │ ├── 1.2.07.3-to-1.2.07.4 │ ├── maradns-1.2.07.3-changelog.patch │ ├── maradns-1.2.07.3-csv2_default.clarify.patch │ ├── maradns-1.2.07.3-download.deadlink.patch │ ├── maradns-1.2.07.3-faq.deadlink.patch │ ├── maradns-1.2.07.3-mararc_parser.patch │ ├── maradns-1.2.07.3-ns_delegation.fix.patch │ ├── maradns-1.2.07.3-opera5.patch │ ├── maradns-1.2.07.3-rpm_spec.patch │ ├── maradns-1.2.07.3-slackware.patch │ ├── maradns-1.2.07.3-validate.patch │ └── maradns-1.2.07.3-validate_2.patch ├── 1.2.07.5 │ ├── 1.2.07.4-to-1.2.07.5 │ ├── maradns-1.2.07.4-changelog.patch │ ├── maradns-1.2.07.4-download.patch │ ├── maradns-1.2.07.4-rpm_spec.patch │ ├── maradns-1.2.07.4-starwhitis.patch │ └── maradns-1.2.07.4-starwhitis_part2.patch ├── 1.2.08 │ ├── 1.2.07.5-to-1.2.08 │ ├── maradns-1.2.07.5-askmara_rcode.patch │ ├── maradns-1.2.07.5-changelog.patch │ ├── maradns-1.2.07.5-ej2man.patch │ ├── maradns-1.2.07.5-retry_cycle.patch │ ├── maradns-1.2.07.5-rpm_spec.patch │ └── maradns-1.2.07.5-spf_record.patch ├── 1.2.09 │ ├── 1.2.08-to-1.2.09 │ ├── maradns-1.2.08-changelog.patch │ ├── maradns-1.2.08-download.patch │ ├── maradns-1.2.08-faq_ptag.patch │ ├── maradns-1.2.08-microsoft.com_fix.patch │ └── maradns-1.2.08-rpm_spec.patch ├── 1.2.10 │ ├── 1.2.09-to-1.2.10 │ ├── maradns-1.2.09-changelog.patch │ ├── maradns-1.2.09-dangling_faq.patch │ ├── maradns-1.2.09-download.patch │ ├── maradns-1.2.09-perl_broken.patch │ ├── maradns-1.2.09-rpm_spec.patch │ ├── maradns-1.2.09-startup_exit0.patch │ └── maradns-1.2.09-timestamp.patch ├── 1.2.11 │ ├── 1.2.10-to-1.2.11 │ ├── maradns-1.2.10-allrrnums.patch │ ├── maradns-1.2.10-changelog.patch │ ├── maradns-1.2.10-download.patch │ ├── maradns-1.2.10-email_2rfc1035.patch │ ├── maradns-1.2.10-explicit_rrs.patch │ ├── maradns-1.2.10-gpos.patch │ ├── maradns-1.2.10-hinfo.patch │ ├── maradns-1.2.10-loc.patch │ ├── maradns-1.2.10-mail_rtypes.patch │ ├── maradns-1.2.10-no-1.0-howdoi_questions.patch │ ├── maradns-1.2.10-nsap.patch │ ├── maradns-1.2.10-px.patch │ ├── maradns-1.2.10-rfc1183.patch │ ├── maradns-1.2.10-rpm_spec.patch │ └── maradns-1.2.10-wks.patch ├── 1.2.12.01 │ ├── 1.2.11-to-1.2.12.01 │ ├── maradns-1.2.11-always_authoritative.patch │ ├── maradns-1.2.11-changelog.patch │ ├── maradns-1.2.11-chkconfig.patch │ ├── maradns-1.2.11-csv2_close.patch │ ├── maradns-1.2.11-default_ttl.patch │ ├── maradns-1.2.11-download.patch │ ├── maradns-1.2.11-fancy_truncation.patch │ ├── maradns-1.2.11-maillist_help.patch │ ├── maradns-1.2.11-opush.patch │ ├── maradns-1.2.11-origin.patch │ ├── maradns-1.2.11-origin_vs_zone.patch │ ├── maradns-1.2.11-ptrq_memleak.patch │ ├── maradns-1.2.11-rpm_spec.patch │ ├── maradns-1.2.11-slash_read.patch │ ├── maradns-1.2.11-slash_serial.patch │ ├── maradns-1.2.11-tidy_parse.patch │ └── maradns-1.2.11-win_service.patch ├── 1.2.12.02 │ ├── 1.2.12.01-to-1.2.12.02 │ ├── maradns-1.2.12.01-changelog.patch │ ├── maradns-1.2.12.01-compress_style.patch │ ├── maradns-1.2.12.01-csv2_main_year.patch │ ├── maradns-1.2.12.01-csv2_read_tidy.patch │ ├── maradns-1.2.12.01-delegate_faq.patch │ ├── maradns-1.2.12.01-doc_update.patch │ ├── maradns-1.2.12.01-download.patch │ ├── maradns-1.2.12.01-faq_contact.patch │ ├── maradns-1.2.12.01-letter_size_pdffile.patch │ ├── maradns-1.2.12.01-limit_dangling_shown.patch │ ├── maradns-1.2.12.01-mingw32_no_gmtime.patch │ ├── maradns-1.2.12.01-mqhash_doc.patch │ ├── maradns-1.2.12.01-no_get_immutable.patch │ ├── maradns-1.2.12.01-non_root_ipv4.patch │ ├── maradns-1.2.12.01-old_testbed.patch │ ├── maradns-1.2.12.01-ptrret_noreply.patch │ ├── maradns-1.2.12.01-rpm_spec.patch │ ├── maradns-1.2.12.01-security_doc.patch │ ├── maradns-1.2.12.01-truncation_bugs.patch │ ├── maradns-1.2.12.01-update_franky_test.patch │ ├── maradns-1.2.12.01-valgrind_csv2_fixes.patch │ ├── maradns-1.2.12.01-valgrind_fixes.patch │ └── maradns-1.2.12.01-win32_readme.patch ├── 1.2.12.03 │ ├── 1.2.12.02-to-1.2.12.03 │ ├── maradns-1.2.12.02-advocacy.patch │ ├── maradns-1.2.12.02-bad_query.patch │ ├── maradns-1.2.12.02-changelog.patch │ ├── maradns-1.2.12.02-download.patch │ ├── maradns-1.2.12.02-loc_comments_fix.patch │ ├── maradns-1.2.12.02-maraconf.patch │ ├── maradns-1.2.12.02-more_bad_query_info.patch │ ├── maradns-1.2.12.02-no_bogus_notfound.patch │ ├── maradns-1.2.12.02-rpm_spec.patch │ ├── maradns-1.2.12.02-tutorial_fixes.patch │ └── maradns-1.2.12.02-webpage.update.patch ├── 1.2.12.04 │ ├── 1.2.12.03-to-1.2.12.04 │ ├── maradns-1.2.12.03-JsStrOS.patch │ ├── maradns-1.2.12.03-any_case_issue.patch │ ├── maradns-1.2.12.03-changelog.patch │ ├── maradns-1.2.12.03-csv2_tilde_handling.patch │ ├── maradns-1.2.12.03-download.patch │ ├── maradns-1.2.12.03-ej2txt.patch │ ├── maradns-1.2.12.03-fold_case_placement.patch │ ├── maradns-1.2.12.03-make_debug_doc.patch │ ├── maradns-1.2.12.03-makefile.linux.patch │ ├── maradns-1.2.12.03-perl_unicode_mess.patch │ ├── maradns-1.2.12.03-private_clarify.patch │ ├── maradns-1.2.12.03-rpm_spec.patch │ ├── maradns-1.2.12.03-synth-ip-faq.patch │ └── maradns-1.2.12.03-upstream_port.patch ├── 1.3.01 │ ├── 1.2.12.04-to-1.3.01 │ ├── maradns-1.2.12.04-changelog.patch │ ├── maradns-1.2.12.04-download.patch │ ├── maradns-1.2.12.04-paypal_donate.patch │ ├── maradns-1.2.12.04-roadmap.patch │ ├── maradns-1.2.12.04-rpm_spec.patch │ ├── maradns-1.2.12.04-settable_ports.patch │ ├── maradns-1.2.12.04-tilde.patch │ ├── maradns-1.2.12.04-vacation.patch │ ├── maradns-1.2.12.04-webpage.patch │ ├── maradns-1.2.12.04-zoneserver_killchildren.diff │ └── maradns-1.2.12.04-zoneserver_logip.patch ├── 1.3.02 │ ├── 1.3.01-to-1.3.02 │ ├── maradns-1.3.01-2007.patch │ ├── maradns-1.3.01-changelog.patch │ ├── maradns-1.3.01-download.patch │ ├── maradns-1.3.01-mingw.patch │ ├── maradns-1.3.01-noauth.star.records.patch │ ├── maradns-1.3.01-paypal.text.patch │ ├── maradns-1.3.01-root_servers.patch │ ├── maradns-1.3.01-rpm_spec.patch │ ├── maradns-1.3.01-skip_auth.patch │ ├── maradns-1.3.01-tilde.patch │ └── maradns-1.3.01-troubleshoot.patch ├── 1.3.03 │ ├── 1.3.02-to-1.3.03 │ ├── maradns-1.3.02-blog.patch │ ├── maradns-1.3.02-changelog.patch │ ├── maradns-1.3.02-csv2_doc.patch │ ├── maradns-1.3.02-download.patch │ ├── maradns-1.3.02-ect.d-leakfix.patch │ ├── maradns-1.3.02-ect.d-memleak-regression.patch │ ├── maradns-1.3.02-gcc296_compile.patch │ ├── maradns-1.3.02-locfix.patch │ ├── maradns-1.3.02-mararc.patch │ ├── maradns-1.3.02-noise.patch │ ├── maradns-1.3.02-pipe.patch │ ├── maradns-1.3.02-recurse_delegation.patch │ ├── maradns-1.3.02-recurse_doc.patch │ ├── maradns-1.3.02-restrict_hash_pipe.patch │ ├── maradns-1.3.02-root_hostname.patch │ ├── maradns-1.3.02-rpm_spec.patch │ ├── maradns-1.3.02-tilde_wks_loc.patch │ ├── maradns-1.3.02-txt_multichunk.patch │ ├── maradns-1.3.02-update.patch │ ├── maradns-1.3.02-vacation.patch │ ├── maradns-1.3.02-version_maradns.patch │ └── maradns-1.3.02-win32-update.patch ├── 1.3.04 │ ├── 1.3.03-to-1.3.04 │ ├── maradns-1.3.03-changelog.patch │ ├── maradns-1.3.03-connect_udp.patch │ ├── maradns-1.3.03-default_bind_star_handling.patch │ ├── maradns-1.3.03-download.patch │ ├── maradns-1.3.03-faq.patch │ ├── maradns-1.3.03-immutable_debug.patch │ ├── maradns-1.3.03-no_get_immutable.patch │ ├── maradns-1.3.03-nxdomain_star_bug.patch │ ├── maradns-1.3.03-old_testbed.patch │ ├── maradns-1.3.03-recurse_ports_choosable.patch │ ├── maradns-1.3.03-roadmap.patch │ └── maradns-1.3.03-rpm_spec.patch ├── 1.3.05 │ ├── 1.3.04-to-1.3.05 │ ├── maradns-1.3.04-advocacy.patch │ ├── maradns-1.3.04-changelog.patch │ ├── maradns-1.3.04-contact.patch │ ├── maradns-1.3.04-def_zone_nxdomain.patch │ ├── maradns-1.3.04-docfix1.patch │ ├── maradns-1.3.04-download.patch │ ├── maradns-1.3.04-faq.patch │ ├── maradns-1.3.04-max_mem.patch │ ├── maradns-1.3.04-memleak.patch │ ├── maradns-1.3.04-rpm_spec.patch │ ├── maradns-1.3.04-security_webpage.patch │ ├── maradns-1.3.04-soa_parse_bug.patch │ ├── maradns-1.3.04-soa_parse_cleanup.patch │ ├── maradns-1.3.04-sqa_test.patch │ ├── maradns-1.3.04-star_collision.patch │ └── maradns-1.3.04-starlabel_bug.patch ├── 1.3.06 │ ├── 1.3.05-to-1.3.06 │ ├── maradns-1.3.05-changelog.patch │ ├── maradns-1.3.05-doublefree.patch │ ├── maradns-1.3.05-download.patch │ ├── maradns-1.3.05-rpm_spec.patch │ ├── maradns-1.3.05-star_collision_memleak.patch │ ├── maradns-1.3.05-star_handling.patch │ ├── maradns-1.3.05-thread_overhead.patch │ └── maradns-1.3.05-zap_olddoc.patch ├── 1.3.07.01 │ ├── 1.3.06-to-1.3.07.01 │ ├── maradns-1.3.06-bind2csv2doc.patch │ ├── maradns-1.3.06-changelog.patch │ ├── maradns-1.3.06-download.patch │ └── maradns-1.3.06-rpm_spec.patch ├── 1.3.07.02 │ ├── 1.3.07.01-to-1.3.07.02 │ ├── maradns-1.3.07.01-askmara.bug.patch │ ├── maradns-1.3.07.01-changelog.patch │ ├── maradns-1.3.07.01-download.patch │ ├── maradns-1.3.07.01-long_txt_chunk.patch │ ├── maradns-1.3.07.01-rpm_spec.patch │ └── maradns-1.3.07.01-update-readme.patch ├── 1.3.07.03 │ ├── 1.3.07.02-to-1.3.07.03 │ ├── maradns-1.3.07.02-bind2csv2_doc.patch │ ├── maradns-1.3.07.02-changelog.patch │ ├── maradns-1.3.07.02-download.patch │ ├── maradns-1.3.07.02-only_def_zonefile.patch │ ├── maradns-1.3.07.02-recurse_delegation.patch │ ├── maradns-1.3.07.02-rpm_spec.patch │ ├── maradns-1.3.07.02-todo.patch │ ├── maradns-1.3.07.02-truncation_test.patch │ └── maradns-1.3.07.02-udpsuccess.patch ├── 1.3.07.04 │ ├── 1.3.07.03-to-1.3.07.04 │ ├── maradns-1.3.07.03-changelog.patch │ ├── maradns-1.3.07.03-doc_update.patch │ ├── maradns-1.3.07.03-download.patch │ ├── maradns-1.3.07.03-improper_rotation.patch │ ├── maradns-1.3.07.03-install_sh.patch │ ├── maradns-1.3.07.03-mingw_warnings.patch │ ├── maradns-1.3.07.03-regressions_readme.patch │ ├── maradns-1.3.07.03-rpm_spec.patch │ ├── maradns-1.3.07.03-tests.patch │ ├── maradns-1.3.07.03-todo.patch │ └── maradns-1.3.07.03-zoneserver.patch ├── 1.3.08 │ ├── 1.3.07.04-to-1.3.07.05 │ ├── 1.3.07.04-to-1.3.08 │ ├── maradns-1.3.07.04-advocacy.patch │ ├── maradns-1.3.07.04-auth-tutorial.patch │ ├── maradns-1.3.07.04-authonly.compile.patch │ ├── maradns-1.3.07.04-bind2csv2-manpage.patch │ ├── maradns-1.3.07.04-changelog.patch │ ├── maradns-1.3.07.04-devel_rpmspec.patch │ ├── maradns-1.3.07.04-download.patch │ ├── maradns-1.3.07.04-ej2txt.patch │ ├── maradns-1.3.07.04-faq.patch │ ├── maradns-1.3.07.04-fqdn6.patch │ ├── maradns-1.3.07.04-future.patch │ ├── maradns-1.3.07.04-lastupdate.patch │ ├── maradns-1.3.07.04-maraconf.update.patch │ ├── maradns-1.3.07.04-maxmem_up.patch │ ├── maradns-1.3.07.04-naptr.patch │ ├── maradns-1.3.07.04-naptr_rfc.patch │ ├── maradns-1.3.07.04-newtests.patch │ ├── maradns-1.3.07.04-rpm_spec.patch │ ├── maradns-1.3.07.04-security.patch │ ├── maradns-1.3.07.04-sloppy.patch │ ├── maradns-1.3.07.04-testdoc.patch │ ├── maradns-1.3.07.04-todo.patch │ └── maradns-1.3.07.04-tools_ipv6.patch ├── 1.3.09 │ ├── 1.3.07.05-to-1.3.07.06 │ ├── 1.3.08-to-1.3.09 │ ├── maradns-1.3.07.05-aix.patch │ ├── maradns-1.3.07.05-authonly_compile.patch │ ├── maradns-1.3.07.05-authonly_warning.patch │ ├── maradns-1.3.07.05-changelog.patch │ ├── maradns-1.3.07.05-coding_style.patch │ ├── maradns-1.3.07.05-copying_year.patch │ ├── maradns-1.3.07.05-cygwin.patch │ ├── maradns-1.3.07.05-debian_argh.patch │ ├── maradns-1.3.07.05-debug_msg_level.patch │ ├── maradns-1.3.07.05-dns_port.patch │ ├── maradns-1.3.07.05-download.patch │ ├── maradns-1.3.07.05-duende_doc.patch │ ├── maradns-1.3.07.05-escape_hash.patch │ ├── maradns-1.3.07.05-make.download.embed.patch │ ├── maradns-1.3.07.05-mararc.patch │ ├── maradns-1.3.07.05-newtests.patch │ ├── maradns-1.3.07.05-roadmap.patch │ ├── maradns-1.3.07.05-rpm_spec.patch │ ├── maradns-1.3.07.05-security.patch │ ├── maradns-1.3.07.05-testquiet.patch │ ├── maradns-1.3.07.05-timestamp.patch │ ├── maradns-1.3.07.05-todo.patch │ ├── maradns-1.3.07.05-verbstr_zap.patch │ ├── maradns-1.3.07.05-webpage.parse.patch │ ├── maradns-1.3.07.05-zoneserver-check.patch │ ├── maradns-1.3.08-askmara.patch │ ├── maradns-1.3.08-askmara_tcp.patch │ ├── maradns-1.3.08-askmara_tcp_ipv6.patch │ ├── maradns-1.3.08-changelog.patch │ ├── maradns-1.3.08-debug_msg_level.patch │ ├── maradns-1.3.08-dns_port.patch │ ├── maradns-1.3.08-download.patch │ ├── maradns-1.3.08-escape_hash.patch │ └── maradns-1.3.08-rpm_spec.patch ├── 1.3.10 │ ├── 1.3.07.06-to-1.3.07.07 │ ├── 1.3.09-to-1.3.10 │ ├── maradns-1.3.07.06-blank_zone.patch │ ├── maradns-1.3.07.06-changelog.patch │ ├── maradns-1.3.07.06-download.patch │ ├── maradns-1.3.07.06-ra_value.patch │ ├── maradns-1.3.07.06-rd_val.patch │ └── maradns-1.3.07.06-root_server_update.patch ├── 1.3.11 │ ├── 1.3.10-to-1.3.11 │ ├── maradns-1.3.07.07-askmara.bug.patch │ ├── maradns-1.3.07.07-ip_not_ipconfig.patch │ ├── maradns-1.3.07.07-max_mem.patch │ ├── maradns-1.3.07.07-private_ip_test.patch │ ├── maradns-1.3.07.07-ra_bit_echos_rd_bit.patch │ ├── maradns-1.3.07.07-regressions_linux_root_only.patch │ ├── maradns-1.3.08-changelog.patch │ ├── maradns-1.3.08-download.patch │ ├── maradns-1.3.10-askmara.patch │ ├── maradns-1.3.10-build_process.patch │ ├── maradns-1.3.10-changelog.patch │ ├── maradns-1.3.10-copyright_2008.patch │ ├── maradns-1.3.10-darwin_compile.patch │ ├── maradns-1.3.10-doc_typos.patch │ ├── maradns-1.3.10-download.patch │ ├── maradns-1.3.10-jj-01.patch │ ├── maradns-1.3.10-jj-20080207.patch │ ├── maradns-1.3.10-make.download.embed.patch │ ├── maradns-1.3.10-maradns_man.patch │ ├── maradns-1.3.10-recursive1.patch │ ├── maradns-1.3.10-tcp_setsockopt.patch │ ├── maradns-1.3.10-unprintable_character.patch │ └── maradns-1.3.10-webpages.patch ├── 1.3.12 │ ├── 1.3.11-to-1.3.12 │ ├── maradns-1.3.07.08-compile_warnings.patch │ ├── maradns-1.3.07.08-udpnotfound-rd_val.patch │ ├── maradns-1.3.07.08-verbose_query_regression.patch │ ├── maradns-1.3.11-bsd.patch │ ├── maradns-1.3.11-changelog.patch │ ├── maradns-1.3.11-download.patch │ └── maradns-1.3.11-duende_freebsd.patch ├── 1.3.13 │ ├── 1.3.12-to-1.3.13 │ ├── maradns-1.3.12-XenoBank.patch │ ├── maradns-1.3.12-c2009.patch │ ├── maradns-1.3.12-changelog.patch │ ├── maradns-1.3.12-download.patch │ ├── maradns-1.3.12-make.download.embed.patch │ ├── maradns-1.3.12-mqhash-add-rg32.patch │ ├── maradns-1.3.12-private_ips_test.patch │ ├── maradns-1.3.12-rg32hash.patch │ └── maradns-1.3.12-webpage_update.patch ├── 1.3.14 │ ├── 1.3.13-to-1.3.14 │ ├── maradns-1.3.13-afnic.patch │ ├── maradns-1.3.13-changelog.patch │ ├── maradns-1.3.13-download.patch │ ├── maradns-1.3.13-make.download.embed.patch │ ├── maradns-1.3.13-nowarn.patch │ ├── maradns-1.3.13-openbsd.patch │ ├── maradns-1.3.13-stdint.patch │ ├── maradns-1.3.13-webpage_update.patch │ └── maradns-1.3.13-zoneserver.patch ├── 1.4.01 │ ├── 1.3.14-to-1.4.01 │ ├── maradns-1.3.14-geist.patch │ ├── maradns-1.3.14-naptr.patch │ ├── maradns-1.3.14-nostar.patch │ ├── maradns-1.3.14-products.patch │ ├── maradns-1.3.14-tutorial.patch │ └── maradns-1.3.14-webpage_update.patch ├── 1.4.02 │ ├── 1.4.01-to-1.4.02 │ ├── maradns-1.4.01-2010.patch │ ├── maradns-1.4.01-bind2csv2.patch │ ├── maradns-1.4.01-changelog.patch │ ├── maradns-1.4.01-coding_style_doc.patch │ ├── maradns-1.4.01-compile_doc.patch │ ├── maradns-1.4.01-csv2_doc.patch │ ├── maradns-1.4.01-debiandoc_update.patch │ ├── maradns-1.4.01-default_zonefile_fix.patch │ ├── maradns-1.4.01-dnstcp.patch │ ├── maradns-1.4.01-faq.patch │ ├── maradns-1.4.01-filelist.patch │ ├── maradns-1.4.01-maradns_manpage.patch │ ├── maradns-1.4.01-mararc_manpage.patch │ ├── maradns-1.4.01-redhat.patch │ ├── maradns-1.4.01-regressions-update.patch │ ├── maradns-1.4.01-regressions_readme.patch │ ├── maradns-1.4.01-troubleshoot_doc.patch │ ├── maradns-1.4.01-webpage_update.patch │ ├── maradns-1.4.01-win_service.patch │ └── maradns-1.4.01-wonky-tests.patch ├── 1.4.03 │ ├── 1.4.02-to-1.4.03 │ ├── maradns-1.4.02-advocacy.patch │ ├── maradns-1.4.02-changelog.patch │ ├── maradns-1.4.02-download.patch │ ├── maradns-1.4.02-license.patch │ ├── maradns-1.4.02-parse_segfault.patch │ ├── maradns-1.4.02-reject_doc.patch │ └── maradns-1.4.02-security.patch ├── 1.4.04 │ ├── 1.4.03-to-1.4.04 │ ├── maradns-1.4.03-IPv6_RFC4193.patch │ ├── maradns-1.4.03-any_ns_referral_fix.patch │ ├── maradns-1.4.03-changelog.patch │ ├── maradns-1.4.03-download.patch │ ├── maradns-1.4.03-faq.patch │ ├── maradns-1.4.03-last_release.patch │ ├── maradns-1.4.03-naptr_doc.patch │ ├── maradns-1.4.03-naptr_parsebug.patch │ └── maradns-1.4.03-sqa_regressions.patch ├── 1.4.05 │ ├── 1.4.04-to-1.4.05 │ ├── maradns-1.4.04-changelog.patch │ ├── maradns-1.4.04-download.patch │ ├── maradns-1.4.04-faq.patch │ └── maradns-1.4.04-microdns_EDNS.patch ├── 1.4.06 │ ├── 1.4.05-to-1.4.06 │ ├── maradns-1.4.05-CVE-2011-0520.patch │ ├── maradns-1.4.05-changelog.patch │ └── maradns-1.4.05-download.patch ├── 1.4.07 │ ├── 1.4.06-to-1.4.07 │ ├── maradns-2.0.01-fetchzone.patch │ ├── maradns-2.0.02-axfr_over_udp.patch │ ├── maradns-2.0.02-debian_bug_607739_fix.patch │ ├── maradns-2.0.02-rfc2317.patch │ ├── maradns-2.0.03-angeld.patch │ └── maradns-2.0.03-karim_bug.patch ├── 1.4.08 │ ├── 1.4.07-to-1.4.08 │ ├── maradns-1.4.07-2011.patch │ └── maradns-1.4.07-secret_hash.patch ├── 1.4.09 │ ├── 1.4.08-to-1.4.09 │ └── maradns-1.4.08-better_hash.patch ├── 1.4.10 │ ├── 1.4.09-to-1.4.10 │ └── maradns-1.3-even_better_hash.patch ├── 1.4.12 │ └── maradns-1.4.11-ghostdomain.patch ├── 1.4.15 │ └── maradns-1.4.14-max_glueless_level.patch ├── 2.0.02 │ ├── 2.0.01-to-2.0.02 │ ├── maradns-1.4.05-CVE-2011-0520.patch │ ├── maradns-2.0.01-2011.patch │ ├── maradns-2.0.01-docs.patch │ ├── maradns-2.0.01-dot_before_at.patch │ ├── maradns-2.0.01-fetchzone.patch │ ├── maradns-2.0.01-install_locations.patch │ └── maradns-2.0.01-were_at_two.patch ├── 2.0.03 │ ├── 2.0.02-to-2.0.03 │ ├── maradns-2.0.02-RTFM.patch │ ├── maradns-2.0.02-authonly_messages.patch │ ├── maradns-2.0.02-axfr_over_udp.patch │ ├── maradns-2.0.02-big_any.patch │ ├── maradns-2.0.02-changelog.patch │ ├── maradns-2.0.02-debian_bug_607739_fix.patch │ ├── maradns-2.0.02-download.patch │ ├── maradns-2.0.02-duende_bamber_bugfix.patch │ ├── maradns-2.0.02-duende_pid.patch │ ├── maradns-2.0.02-ej2man.patch │ ├── maradns-2.0.02-full_Deadwood_install.patch │ ├── maradns-2.0.02-ipv6_fix.patch │ ├── maradns-2.0.02-maradns_man_page.patch │ ├── maradns-2.0.02-rfc2317.patch │ ├── maradns-2.0.02-sqa_regressions_update.patch │ └── maradns-2.0.02-webpage.patch ├── 2.0.04 │ ├── 2.0.03-to-2.0.04 │ ├── maradns-2.0.03-angeld.patch │ ├── maradns-2.0.03-changelog.patch │ ├── maradns-2.0.03-download.patch │ └── maradns-2.0.03-karim_bug.patch ├── 2.0.05 │ ├── 2.0.04-to-2.0.05 │ ├── maradns-2.0.04-2012.patch │ ├── maradns-2.0.04-changelog.patch │ └── maradns-2.0.04-random_hash.patch ├── 2.0.07 │ ├── 2.0.06-to-2.0.07 │ ├── maradns-2.0.06-2013.patch │ ├── maradns-2.0.06-RHEL6.patch │ ├── maradns-2.0.06-changelog.patch │ ├── maradns-2.0.06-mqhash.patch │ └── maradns-2.0.06-newkey.patch ├── 2.0.08 │ ├── 2.0.07-to-2.0.08 │ ├── maradns-2.0.07-2014.patch │ ├── maradns-2.0.07-changelog.patch │ ├── maradns-2.0.07-compress.patch │ ├── maradns-2.0.07-cppcheck.patch │ ├── maradns-2.0.07-ipv6_compile_warning.patch │ ├── maradns-2.0.07-ipv6_glue.patch │ ├── maradns-2.0.07-mqhash.patch │ ├── maradns-2.0.07-regressions.patch │ ├── maradns-2.0.07-thread-39.patch │ └── maradns-2.0.07-version.patch ├── 2.0.09 │ ├── 2.0.08-to-2.0.09 │ ├── maradns-2.0.08-CHANGELOG.patch │ └── maradns-2.0.08-chkconfig.patch ├── 2.0.10 │ ├── 2.0.09-to-2.0.10 │ ├── maradns-2.0.09-CHANGELOG.patch │ └── maradns-2.0.09-cygwin.patch ├── 2.0.12 │ ├── 2.0.11-to-2.0.12 │ ├── maradns-2.0.11-2015-07-doc.patch │ ├── maradns-2.0.11-2015.patch │ ├── maradns-2.0.11-FAQ.patch │ ├── maradns-2.0.11-HOTFIX.patch │ ├── maradns-2.0.11-RFC5936.patch │ ├── maradns-2.0.11-csv2_manpage.patch │ └── maradns-2.0.11-github_support.patch ├── 2.0.13 │ ├── 2.0.12-to-2.0.13 │ ├── maradns-2.0.12-CHANGELOG.patch │ └── maradns-2.0.12-ParseMaraRc.patch ├── 2.0.14 │ ├── 2.0.13-to-2.0.14 │ └── maradns-2.0.13-2017.patch ├── 2.0.15 │ ├── 2.0.14-to-2.0.15 │ ├── maradns-2.0.14-2018.patch │ └── maradns-2.0.14-changelog.patch ├── 2.0.16 │ ├── 2.0.15-to-2.0.16 │ └── maradns-2.0.15-null.patch ├── 2.0.17 │ ├── 2.0.16-to-2.0.17 │ └── maradns-2.0.16-max_mem.patch ├── 3.3.03 │ ├── 2.0.17-to-3.3.03 │ └── maradns-2.0.17-documentStarRecords.patch ├── 3.4.01 │ └── 3.3.03-to-3.4.01 ├── 3.4.02 │ ├── 3.4.01-to-3.4.02 │ ├── maradns-3.4.01-asktest.patch │ └── maradns-3.4.01-sqa.patch ├── 3.4.03 │ ├── 3.4.02-to-3.4.03 │ └── maradns-3.4.02-changelog.patch ├── 3.4.04 │ ├── 3.4.03-to-3.4.04 │ └── maradns-3.4.03-changelog.patch ├── 3.4.05 │ ├── 3.4.04-to-3.4.05 │ ├── MaraDNS-regressions-2022-10-18.tar.xz │ └── maradns-3.4.04-changelog.patch ├── 3.4.06 │ ├── 3.4.05-to-3.4.06 │ └── maradns-3.4.05-changelog.patch ├── 3.4.07 │ ├── 3.4.06-to-3.4.07 │ ├── maradns-3.4.06-changelog.patch │ ├── maradns-3.4.06-maramake.patch │ └── maradns-3.4.06-zap-bind2csv2.patch ├── 3.4.08 │ ├── 3.4.07-to-3.4.08 │ ├── maradns-3.4.07-Y2038.patch │ └── maradns-3.4.07-changelog.patch ├── 3.4.09 │ ├── 3.4.08-to-3.4.09 │ ├── maradns-3.4.08-changelog.patch │ └── maradns-3.4.08-rfc8482.patch └── README.md └── utf8 ├── 8859-1data ├── Makefile ├── README ├── Utf8.c ├── l1toutf8.c ├── lcol.c ├── utf8test.c └── utf8tol1.c /00README.FIRST: -------------------------------------------------------------------------------- 1 | These files are licensed under the BSD and/or MIT license. 2 | 3 | Please see COPYING for details. 4 | -------------------------------------------------------------------------------- /Docker-stuff/alpine/README.md: -------------------------------------------------------------------------------- 1 | To get a better sense of whether MaraDNS’s test framework works on 2 | a POSIX system, we have a tiny alpine Linux version of the test 3 | image. 4 | 5 | All of the tests have been updated to pass in Alpine 3.14 as well as 6 | Ubuntu 22.04 7 | -------------------------------------------------------------------------------- /Docker-stuff/alpine/build.alpine.image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Build an alpine image which can test MaraDNS 4 | 5 | cp ../rg32hash.tar.gz . 6 | cp ../maramake-2022-11-01.tar.gz . 7 | cp ../run.tests.sh . 8 | docker build -t alpine-$( date +%Y-%m-%d ) . 9 | rm -f rg32hash.tar.gz run.tests.sh maramake-2022-11-01.tar.gz 10 | 11 | # Work in progress: We still need to add the testing scripts, etc. 12 | -------------------------------------------------------------------------------- /Docker-stuff/build.ubuntu.image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This makes a Docker/Podman image where we run the tests. This 4 | # image does not have to be frequently updated; it has stable 5 | # versions of all the programs the MaraDNS automated tests use 6 | # during testing, but MaraDNS itself is pulled from GitHub in 7 | # the image to run the actual tests. 8 | 9 | docker build -t maradns-$( date +%Y-%m-%d ) . 10 | -------------------------------------------------------------------------------- /Docker-stuff/killall: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Since CentOS 8 killall is broken, rewrite it as a shell script 4 | # Note: Ubuntu 22.04 and Alpine Linux come with a working killall 5 | # The Ubuntu psmisc includes a binary killall 6 | # However, I am keeping this because the working Dockerfile uses it 7 | LIST=$( ps auxw | awk '{print $2 " " $11}' | grep "$1" | awk '{print $1}' ) 8 | for a in $LIST ; do 9 | kill $a 10 | done 11 | -------------------------------------------------------------------------------- /Docker-stuff/maramake-2022-11-01.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/Docker-stuff/maramake-2022-11-01.tar.gz -------------------------------------------------------------------------------- /Docker-stuff/rg32hash.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/Docker-stuff/rg32hash.tar.gz -------------------------------------------------------------------------------- /Docker-stuff/run.tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This script is run inside of the Docker image to run the tests 3 | # The script "do.osot.tests" called here is in the directory 4 | # tools/OneSourceOfTruth (off of the top-level directory in the 5 | # MaraDNS Git repo) 6 | cd /tmp 7 | ./do.osot.tests 8 | -------------------------------------------------------------------------------- /TESTING.PROCEDURE: -------------------------------------------------------------------------------- 1 | Testing requirements: 2 | 3 | Docker or Podman 4 | 5 | To test: 6 | 7 | cd Docker-stuff 8 | ./make.docker.image.sh # Takes a long time 9 | docker images | grep maradns # Image is hex humber like a10203b4c5d6 10 | # Replace "a10203b4c5d6" with actual image ID 11 | docker run -it a10203b4c5d6 /run.tests.sh # Takes about an hour 12 | 13 | -------------------------------------------------------------------------------- /build/Makefile.unsupported: -------------------------------------------------------------------------------- 1 | all: 2 | ./configure 3 | 4 | clean: 5 | cp build/Makefile.w Makefile 6 | -------------------------------------------------------------------------------- /build/Makefile.w: -------------------------------------------------------------------------------- 1 | # This is a wrapper that runs "./configure ; make" 2 | all: 3 | ./configure ; make 4 | 5 | debug: 6 | ./configure ; make debug 7 | 8 | clean: 9 | ./configure ; make clean 10 | 11 | uninstall: 12 | ./configure ; make uninstall 13 | 14 | install: 15 | echo Please compile MaraDNS first 16 | -------------------------------------------------------------------------------- /build/README: -------------------------------------------------------------------------------- 1 | These are files which are used in the compiling and installing of MaraDNS 2 | on various systems 3 | -------------------------------------------------------------------------------- /build/systemd/colunacydns.service: -------------------------------------------------------------------------------- 1 | # Place this file here: 2 | # /etc/systemd/system/colunacydns.service 3 | # Then 4 | # systemctl enable colunacydns 5 | # systemctl start colunacydns 6 | # To view log 7 | # journalctl -u colunacydns 8 | [Unit] 9 | After=network-online.target 10 | ConditionPathExists=/usr/local/bin/coLunacyDNS 11 | Description=coLunacyDNS 12 | Wants=network-online.target 13 | 14 | [Service] 15 | ExecStart=/usr/local/bin/coLunacyDNS -d /etc/coLunacyDNS.lua 16 | StandardOutput=journal 17 | TimeoutSec=0 18 | Type=exec 19 | 20 | [Install] 21 | WantedBy=multi-user.target 22 | -------------------------------------------------------------------------------- /build/systemd/deadwood.service: -------------------------------------------------------------------------------- 1 | # Place this file here: 2 | # /etc/systemd/system/deadwood.service 3 | # Then 4 | # systemctl enable deadwood 5 | # systemctl start deadwood 6 | # To view log 7 | # journalctl -u deadwood 8 | [Unit] 9 | After=network-online.target 10 | ConditionPathExists=/usr/local/bin/Deadwood 11 | Description=Deadwood 12 | Wants=network-online.target 13 | 14 | [Service] 15 | ExecStart=/usr/local/bin/Deadwood 16 | StandardOutput=journal 17 | TimeoutSec=0 18 | Type=exec 19 | 20 | [Install] 21 | WantedBy=multi-user.target 22 | -------------------------------------------------------------------------------- /build/systemd/maradns.service: -------------------------------------------------------------------------------- 1 | # Place this file here: 2 | # /etc/systemd/system/maradns.service 3 | # Then 4 | # systemctl enable maradns 5 | # systemctl start maradns 6 | # To view log 7 | # journalctl -u maradns 8 | [Unit] 9 | After=network-online.target 10 | ConditionPathExists=/usr/local/bin/maradns 11 | Description=MaraDNS 12 | Wants=network-online.target 13 | 14 | [Service] 15 | ExecStart=/usr/local/bin/maradns 16 | StandardOutput=journal 17 | TimeoutSec=0 18 | Type=exec 19 | 20 | [Install] 21 | WantedBy=multi-user.target 22 | -------------------------------------------------------------------------------- /build/win32/make.zipfile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | VERSION=$( pwd ) 4 | VERSION=${VERSION%%/build/win32} 5 | VERSION=${VERSION##*/} 6 | VERSION=$( echo $VERSION | sed 's/\./\-/g' ) 7 | echo $VERSION 8 | mkdir $VERSION 9 | cp mararc readme.txt run_maradns.bat pthreads.txt $VERSION 10 | cp ../../server/maradns.exe $VERSION 11 | cp ../../tools/askmara.exe $VERSION 12 | cp ../../doc/en/tutorial/man.askmara.html $VERSION/Askmara.html 13 | cp ../../doc/en/tutorial/win_service.html $VERSION/Service.html 14 | cp ../../../pthreadGC2.dll $VERSION 15 | zip -r $VERSION\-win32.zip $VERSION 16 | -------------------------------------------------------------------------------- /build/win32/mararc: -------------------------------------------------------------------------------- 1 | # Win32-specific MaraRC file; this makes a basic recursive DNS 2 | # server. 3 | 4 | ipv4_bind_addresses = "127.0.0.1" 5 | recursive_acl = "127.0.0.1/8" 6 | timestamp_type = 2 7 | 8 | # This is insecure 9 | random_seed_file = "maradns.exe" 10 | -------------------------------------------------------------------------------- /build/win32/run_maradns.bat: -------------------------------------------------------------------------------- 1 | start maradns -f mararc 2 | exit 3 | -------------------------------------------------------------------------------- /coLunacyDNS/.gitignore: -------------------------------------------------------------------------------- 1 | *.gcda 2 | *.gcno 3 | *.gcov 4 | HalfSipHash13 5 | liblua.a 6 | -------------------------------------------------------------------------------- /coLunacyDNS/Makefile.mingw32: -------------------------------------------------------------------------------- 1 | # To use another CC, invoke as "make CC=clang" or some such 2 | CC = gcc 3 | # To use other flags, invoke as "make CFLAGS=-g" or some such 4 | CFLAGS = -Os -DMINGW 5 | 6 | all: 7 | sh ./compile.win32.service.sh 8 | 9 | clean: 10 | rm -f *.o *.exe coLunacyDNS sipHash HalfSipHash1-3 \ 11 | HalfSipHash13 *.gcda *.gcno *.gcov ; \ 12 | cd ../../lunacy ; make clean 13 | 14 | -------------------------------------------------------------------------------- /coLunacyDNS/clean.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Clean up 4 | rm -f *.o *.exe coLunacyDNS sipHash HalfSipHash1-3 5 | 6 | # Win32 build env has no symlinks 7 | rm -f lauxlib.h lua.h luaconf.h lualib.h 8 | for a in lauxlib.h lua.h luaconf.h lualib.h ; do 9 | ln -s ../../lunacy/$a $a 10 | done 11 | 12 | -------------------------------------------------------------------------------- /coLunacyDNS/compile.win32.service.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ ! -e /mingw ] ; then 4 | echo Only run this in Mingw 5 | exit 1 6 | fi 7 | 8 | # No symlinks 9 | rm -f lauxlib.h lua.h luaconf.h lualib.h 10 | 11 | for a in lauxlib.h lua.h luaconf.h lualib.h ; do 12 | cp lunacy/$a . 13 | done 14 | 15 | cd lunacy/ 16 | export CC="gcc" 17 | make -f Makefile 18 | cd .. 19 | echo $CC -Wall -O3 -DMINGW -c -o coLunacyDNS.o coLunacyDNS.c 20 | $CC -Wall -O3 -DMINGW -c -o coLunacyDNS.o coLunacyDNS.c 21 | $CC -O3 -o coLunacyDNS.exe coLunacyDNS.o lunacy/liblua.a -lm -lwsock32 22 | -------------------------------------------------------------------------------- /coLunacyDNS/doc/Makefile: -------------------------------------------------------------------------------- 1 | all: coLunacyDNS.1 coLunacyDNS.txt 2 | 3 | clean: 4 | rm -f coLunacyDNS.1 coLunacyDNS.txt 5 | 6 | coLunacyDNS.1: coLunacyDNS.ej 7 | ../../tools/ej/ej2man coLunacyDNS.ej > coLunacyDNS.1 8 | 9 | coLunacyDNS.txt: coLunacyDNS.ej 10 | ../../tools/ej/ej2txt coLunacyDNS.ej > coLunacyDNS.txt 11 | 12 | -------------------------------------------------------------------------------- /coLunacyDNS/exampleIPs.txt: -------------------------------------------------------------------------------- 1 | # This is an example file with possible IPs to send to clients 2 | 10.1.2.3 3 | 10.1.2.4 4 | 10.1.2.5 5 | -------------------------------------------------------------------------------- /coLunacyDNS/lauxlib.h: -------------------------------------------------------------------------------- 1 | lunacy/lauxlib.h -------------------------------------------------------------------------------- /coLunacyDNS/lua.h: -------------------------------------------------------------------------------- 1 | lunacy/lua.h -------------------------------------------------------------------------------- /coLunacyDNS/luaconf.h: -------------------------------------------------------------------------------- 1 | lunacy/luaconf.h -------------------------------------------------------------------------------- /coLunacyDNS/lualib.h: -------------------------------------------------------------------------------- 1 | lunacy/lualib.h -------------------------------------------------------------------------------- /coLunacyDNS/lunacy/.gitignore: -------------------------------------------------------------------------------- 1 | liblua.a 2 | luac 3 | luac.exe 4 | lunacy 5 | lunacy.exe 6 | -------------------------------------------------------------------------------- /coLunacyDNS/lunacy/bit_limits.h: -------------------------------------------------------------------------------- 1 | #define BITLIB_FLOAT_BITS 53 2 | #define BITLIB_FLOAT_MAX 0xfffffffffffffL 3 | #define BITLIB_FLOAT_MIN (-0x10000000000000L) 4 | #define BITLIB_FLOAT_UMAX 0x1fffffffffffffUL 5 | -------------------------------------------------------------------------------- /coLunacyDNS/lunacy/doc/SamDiscussesLunacy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/coLunacyDNS/lunacy/doc/SamDiscussesLunacy.pdf -------------------------------------------------------------------------------- /coLunacyDNS/lunacy/doc/lunacy-manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/coLunacyDNS/lunacy/doc/lunacy-manual.pdf -------------------------------------------------------------------------------- /coLunacyDNS/lunacy/doc/manual.css: -------------------------------------------------------------------------------- 1 | h3 code { 2 | font-family: inherit ; 3 | font-size: inherit ; 4 | } 5 | 6 | pre, code { 7 | font-family: Caulixtla009Mono, Consolas, Monospace ; 8 | font-size: 12pt ; 9 | } 10 | 11 | span.apii { 12 | float: right ; 13 | font-family: inherit ; 14 | font-style: normal ; 15 | font-size: small ; 16 | color: gray ; 17 | } 18 | 19 | p+h1, ul+h1 { 20 | padding-top: 0.4em ; 21 | padding-bottom: 0.4em ; 22 | padding-left: 30px ; 23 | margin-left: -30px ; 24 | background-color: #E0E0FF ; 25 | } 26 | -------------------------------------------------------------------------------- /coLunacyDNS/lunacy/lapi.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lapi.h,v 2.2.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Auxiliary functions from Lua API 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lapi_h 8 | #define lapi_h 9 | 10 | 11 | #include "lobject.h" 12 | 13 | 14 | LUAI_FUNC void luaA_pushobject (lua_State *L, const TValue *o); 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_amazon/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.31 2 | # Question: Awww.amazon.com. 3 | www.amazon.com. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.31 7 | # Remote server said: SERVER FAILURE 8 | # Question: Awww.amazon.com. 9 | # NS replies: 10 | # AR replies: 11 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_any/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.20 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.20 7 | # Question: Zmaradns.samiam.org. 8 | maradns.samiam.org. +0 raw 13 \x07'RFC8482'\x00 9 | # NS replies: 10 | # AR replies: 11 | # Querying the server with the IP 127.7.7.20 12 | # Question: Umaradns.samiam.org. 13 | maradns.samiam.org. +0 raw 13 \x07'RFC8482'\x00 14 | # NS replies: 15 | # AR replies: 16 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_args/output.success1: -------------------------------------------------------------------------------- 1 | Only debug (interactive) mode supported. 2 | Running as a daemon not supported yet. 3 | Usage: coLunacyDNS -d {config file} 4 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_args/output.success2: -------------------------------------------------------------------------------- 1 | Timestamp 2 | Random32 3 | Random16 4 | Running coLunacyDNS 5 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_args/output.success3: -------------------------------------------------------------------------------- 1 | Read config file test.lua 2 | Running coLunacyDNS 3 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_args/output.success4: -------------------------------------------------------------------------------- 1 | Only debug (interactive) mode supported. 2 | Running as a daemon not supported yet. 3 | Usage: coLunacyDNS -d {config file} 4 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_args/output.success5: -------------------------------------------------------------------------------- 1 | Unable to open lua file with name: 2 | bad1.lua 3 | bad1.lua:1: '=' expected near 'is' 4 | Fatal error opening lua config file 5 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_args/output.success6: -------------------------------------------------------------------------------- 1 | Only debug (interactive) mode supported. 2 | Running as a daemon not supported yet. 3 | Usage: coLunacyDNS -d {config file} 4 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_args/output.success7: -------------------------------------------------------------------------------- 1 | Unable to parse lua file with name: 2 | bad2.lua 3 | bad2.lua:2: attempt to index global 'foo' (a nil value) 4 | Fatal error opening lua config file 5 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_badBindIP/output.success: -------------------------------------------------------------------------------- 1 | FATAL: Invalid value for bindIp 2 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_badQueryID/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.43 2 | # Remote server said: SERVER FAILURE 3 | # Question: Amaradns.samiam.org. 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_badQueryName/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.45 2 | # Remote server said: SERVER FAILURE 3 | # Question: Amaradns.samiam.org. 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_badanswer/output.success: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | processQuery: co1Type not set or invalid value 3 | processQuery: co1Type not set or invalid value 4 | processQuery: co1Data not set or invalid value 5 | processQuery: co1Data not set or invalid value 6 | processQuery: co1Data not set or invalid 7 | processQuery: co1Data not set or invalid 8 | processQuery: co1Data not valid IPv6 address 9 | processQuery: Table not returned by function 10 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_badquestion/output.success1: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.30 2 | # Hard Error: Timeout 3 | # Querying the server with the IP 127.7.7.30 4 | # Question: Amaradns.samiam.org. 5 | maradns.samiam.org. +0 a 10.1.1.1 6 | # NS replies: 7 | # AR replies: 8 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_badquestion/output.success2: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | Query maradns.samiam.org. 3 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_binderror/output.success: -------------------------------------------------------------------------------- 1 | bind error 2 | Hello, there 3 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_binderror/test.lua: -------------------------------------------------------------------------------- 1 | bindIp="198.41.0.4" -- A.root-servers.net, i.e. not an IP we have 2 | coDNS.log("Hello, there") 3 | function processQuery(Q) -- Called for every DNS query received 4 | return {co1Type = "A", co1Data = "10.1.1.1"} 5 | end 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_blocklist/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.9 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.9 7 | # Question: Aphish.example.com. 8 | phish.example.com. +0 soa z.phish.example.com. y@phish.example.com. 1 1 1 1 1 9 | # NS replies: 10 | # AR replies: 11 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_co1AA/output.success: -------------------------------------------------------------------------------- 1 | Authoritative: 1 2 | Authoritative: 0 3 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_co1RA/output.success: -------------------------------------------------------------------------------- 1 | Recurs available: 1 2 | Recurs available: 0 3 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_co1TTL/output.success: -------------------------------------------------------------------------------- 1 | # Question: Amaradns.samiam.org. 2 | maradns.samiam.org. +86400 a 10.1.1.1 3 | # Question: Amaradns.samiam.org. 4 | maradns.samiam.org. +0 a 10.1.1.1 5 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_complex/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.17 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.14 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.17 7 | # Question: Aname.invalid. 8 | name.invalid. +0 a 10.1.1.1 9 | # NS replies: 10 | # AR replies: 11 | # Querying the server with the IP 127.7.7.17 12 | # Question: As.vk.tj. 13 | s.vk.tj. +0 a 10.1.1.15 14 | # NS replies: 15 | # AR replies: 16 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_comppointer/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.40 2 | # Question: Aa.example.com. 3 | a.example.com. +0 a 10.1.2.3 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.40 7 | # Question: Ab.example.com. 8 | b.example.com. +0 a 10.9.9.9 9 | # NS replies: 10 | # AR replies: 11 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_execve/execve1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() { 5 | execve("../../coLunacyDNS",0,0); 6 | perror("execve"); 7 | } 8 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_execve/execve2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() { 5 | char *argv[] = { NULL }; 6 | char *env[] = { NULL }; 7 | execve("../../coLunacyDNS",argv,env); 8 | perror("execve"); 9 | } 10 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_execve/execve3.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() { 5 | char *argv[] = { "" , "-d", NULL }; 6 | char *env[] = { NULL }; 7 | execve("../../coLunacyDNS",argv,env); 8 | perror("execve"); 9 | } 10 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_execve/output.success: -------------------------------------------------------------------------------- 1 | Test for execve2 2 | Only debug (interactive) mode supported. 3 | Running as a daemon not supported yet. 4 | Usage: coLunacyDNS -d {config file} 5 | Test for execve3 6 | Unable to open lua file with name: 7 | coLunacyDNS.lua 8 | cannot open coLunacyDNS.lua: No such file or directory 9 | Fatal error opening lua config file 10 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_file/output.success1: -------------------------------------------------------------------------------- 1 | Read line: ip4["phish.example.com."] = "X" 2 | End of file 3 | Read line: ip4["bad.invalid."] = "X" 4 | End of file 5 | No file read 6 | Read line: ip4["four.invalid."] = "X" 7 | End of file 8 | Running coLunacyDNS 9 | Got query for maradns.samiam.org. from 127.0.0.1 type IPv4 10 | Got query for phish.example.com. from 127.0.0.1 type IPv4 11 | Name is on block list. 12 | Got query for good.invalid. from 127.0.0.1 type IPv4 13 | Got query for bad.invalid. from 127.0.0.1 type IPv4 14 | Name is on block list. 15 | Got query for four.invalid. from 127.0.0.1 type IPv4 16 | Name is on block list. 17 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_gCovNoOpenDNS/output.success1: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | read1 error1 3 | bindIp = "127.7.7.46" 4 | read1 error3 5 | read1 error1 6 | read1 error1 7 | read1 error1 8 | We should get here 9 | Error calling function processQuery 10 | test.lua:30: attempt to index global 'foo' (a nil value) 11 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_gCovNoOpenDNS/output.success2: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.47 2 | # Remote server said: SERVER FAILURE 3 | # Question: Aa.example.com. 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.47 7 | # Remote server said: SERVER FAILURE 8 | # Question: Ab.example.com. 9 | # NS replies: 10 | # AR replies: 11 | # Querying the server with the IP 127.7.7.47 12 | # Question: Ac.example.com. 13 | c.example.com. +0 a 10.1.1.1 14 | # NS replies: 15 | # AR replies: 16 | # Querying the server with the IP 127.7.7.47 17 | # Hard Error: Timeout 18 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_gCovSendsFail/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.35 2 | # Remote server said: SERVER FAILURE 3 | # Question: Amaradns.samiam.org. 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_getupstream/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.3 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_halfsip13/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ../../HalfSipHash1-3 > output.test 4 | 5 | if ! cmp output.success output.test > /dev/null 2>&1 ; then 6 | echo Test HalfSip-1-3 failed 7 | exit 255 8 | fi 9 | 10 | echo HalfSip-1-3 Success 11 | rm output.test 12 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_ignoreme/output.success1: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | Ignoring query maradns.samiam.org. 3 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_ignoreme/output.success2: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.11 2 | # Hard Error: Timeout 3 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_ip6/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP ::1 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_ip6Parse/Input: -------------------------------------------------------------------------------- 1 | 2001-0db8-1234-5678 0000-0000-0000-0005 2 | 2001:db8::1 3 | 2001:db8::12 4 | 2001:db8::123 5 | 2001:db8::1234 6 | 2001:db8::1234:5 7 | 2001:db8::1234:56 8 | 2001:db8::1234:567 9 | 2001:db8::1234:5678 10 | 2001:db8::1234:5678:9 11 | 2001:db8::1234:5678:9a 12 | 2001:db8::1234:5678:9ab 13 | 2001:db8::1234:5678:9abc 14 | 2001:db8::1234:5678:9abc:d 15 | 2001:db8::1234:5678:9abc:de 16 | 2001:db8::1234:5678:9abc:def 17 | 2001:db8::1234:5678:9abc:deff 18 | ::1 19 | 2001:0db8:1234:5678::5 20 | 2001_db812345678__00__00__00__05 21 | 2001:DB8:1234:5678::5 22 | 1:2::3::4:5 23 | 12345:6789::1 24 | 1:2::3:4:5:6:7:8 25 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_ip6Parse/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | PROG="../../coLunacyDNS" 4 | 5 | echo Running coLunacyDNS IPv6 parser test 6 | 7 | cat Input | awk '{print "'${PROG}\ \''" $0 "'\''"}' | sh | \ 8 | tr -d '\015' > output.test 9 | 10 | if ! cmp output.success output.test > /dev/null 2>&1 ; then 11 | echo Test failed 12 | exit 255 13 | fi 14 | 15 | echo Success 16 | rm output.test 17 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_ip6bad/output.success: -------------------------------------------------------------------------------- 1 | FATAL: Invalid value for bindIp6 2 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_nobindIP/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.1 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_oneanswer/output.success1: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.1 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.1 7 | # Question: A[1-2-@3].example.com. 8 | [1-2-@3].example.com. +0 a 10.1.1.1 9 | # NS replies: 10 | # AR replies: 11 | # Querying the server with the IP 127.7.7.1 12 | # Question: Aa\303\261o_nuevo.example.com. 13 | a\303\261o_nuevo.example.com. +0 a 10.1.1.1 14 | # NS replies: 15 | # AR replies: 16 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_oneanswer/output.success2: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | Query maradns.samiam.org. 3 | Query {5b}1-2-{40}3{5d}.example.com. 4 | Query a{c3}{b1}o_nuevo.example.com. 5 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_postanswer/output.success1: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | Query a.example.com. 3 | example1 line 1 4 | Error: Server too busy 5 | Query b.example.com. 6 | ERROR: coDNS.solve must be given a table 7 | ERROR: Lua is ignoring coDNS.solve errors; ending thread. 8 | Query c.example.com. 9 | Query d.example.com. 10 | example1 line 1 11 | ERROR: coDNS.solve must be given a table 12 | ERROR: Lua is ignoring coDNS.solve errors; ending thread. 13 | Query e.example.com. 14 | Query z.example.com. 15 | processQuery: co1Data not valid IPv4 address 16 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_postanswer/output.success2: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.38 2 | # Hard Error: Timeout 3 | # Querying the server with the IP 127.7.7.38 4 | # Hard Error: Timeout 5 | # Querying the server with the IP 127.7.7.38 6 | # Question: Ac.example.com. 7 | c.example.com. +0 a 10.1.1.1 8 | # NS replies: 9 | # AR replies: 10 | # Querying the server with the IP 127.7.7.38 11 | # Hard Error: Timeout 12 | # Querying the server with the IP 127.7.7.38 13 | # Question: Ae.example.com. 14 | e.example.com. +0 a 10.4.10.4 15 | # NS replies: 16 | # AR replies: 17 | # Querying the server with the IP 127.7.7.38 18 | # Hard Error: Timeout 19 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_rawpacket/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.33 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_refused/output.success1: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | Got query maradns.samiam.org. 3 | t.status is 0 4 | t.answer is DNS connect error 5 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_refused/output.success2: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.12 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_roy_arends/output.success1: -------------------------------------------------------------------------------- 1 | IPv4 2 | \x6d\xe4\x81\x00\x00\x01\x00\x01\x00\x00\x00\x00\x07\x65\x78\x61\x6d\x70\x6c\x65\x03\x63\x6f\x6d\x00\x00\x01\x00\x01\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\x00\x00\x04\x0a\x01\x01\x01 3 | Timeout 4 | IPv6 5 | \x6d\xe4\x81\x00\x00\x01\x00\x01\x00\x00\x00\x00\x07\x65\x78\x61\x6d\x70\x6c\x65\x03\x63\x6f\x6d\x00\x00\x01\x00\x01\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\x00\x00\x04\x0a\x01\x01\x01 6 | Timeout 7 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_roy_arends/output.success2: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | Query example.com. 3 | Query example.com. 4 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_servfail/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.10 2 | # Remote server said: SERVER FAILURE 3 | # Question: Amaradns.samiam.org. 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_timeout/output.success1: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.18 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_timeout/output.success18: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | Got query maradns.samiam.org. 3 | t.status is 0 4 | t.answer is DNS connect error 5 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_timeout/output.success19: -------------------------------------------------------------------------------- 1 | Running coLunacyDNS 2 | Ignoring query maradns.samiam.org. 3 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_twoanswers/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.4 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.4 7 | # Question: Umaradns.samiam.org. 8 | maradns.samiam.org. +0 aaaa 2001:db8:4d61:7261:444e:5300:0:1234 9 | # NS replies: 10 | # AR replies: 11 | -------------------------------------------------------------------------------- /coLunacyDNS/sqa/sqa_twoupstreams/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.7.7.7 2 | # Question: Amaradns.samiam.org. 3 | maradns.samiam.org. +0 a 10.1.1.1 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.7.7.7 7 | # Question: Umaradns.samiam.org. 8 | maradns.samiam.org. +0 aaaa 2001:db8:0:0:0:0:0:707 9 | # NS replies: 10 | # AR replies: 11 | -------------------------------------------------------------------------------- /compile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | ./configure 3 | make 4 | -------------------------------------------------------------------------------- /deadwood-github/doc/internals/RR.Allocation: -------------------------------------------------------------------------------- 1 | As per the Deadwood man page, record types beterrn 65392 (0xff70) and 2 | 65407 (0xff7f) are reserved for Deadwood internal use. 3 | 4 | 65392 was used to indicate an upstream dns server entry in the cache (but 5 | not any longer; we can use this again if we ever need to) 6 | 7 | 65393 indicates an error when we ask for a rr type 8 | 9 | 65394 (0xff72) is used for CNAME referrals 10 | 11 | 65395 (0xff73) is used for NS referrals 12 | 13 | -------------------------------------------------------------------------------- /deadwood-github/sqa/basic_ipv6_test/output.success: -------------------------------------------------------------------------------- 1 | 2 | ; (1 server found) 3 | ;; Got answer: 4 | ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 5 | 6 | ;; QUESTION SECTION: 7 | ;www.example.com. IN A 8 | 9 | ;; SERVER: fd4d:6172:6144:4e53::1#53(fd4d:6172:6144:4e53::1) 10 | ;; MSG SIZE rcvd: 33 11 | 12 | Deadwood: A DNS UDP non-recursive cache (IPv6 supported) 13 | We bound to 1 addresses 14 | Got signal 1 to process... 15 | -------------------------------------------------------------------------------- /deadwood-github/sqa/basic_tcp_test/README: -------------------------------------------------------------------------------- 1 | This test makes sure that the TCP load balancer (DwTcp) works. 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/basic_tcp_test/db.example.com: -------------------------------------------------------------------------------- 1 | www.% A 10.1.1.1 2 | long.% TXT 3 | '1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890''123456789012345678901234567890123456789012345678901234567890';'1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890';\ 4 | '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' 5 | -------------------------------------------------------------------------------- /deadwood-github/sqa/basic_tcp_test/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | Awww.example.com. 4 | # NS replies: 5 | #Nexample.com. 6 | # AR replies: 7 | #Asynth-ip-7f000002.example.com. 8 | Deadwood: A DNS UDP non-recursive cache 9 | We bound to 1 addresses 10 | Got signal 1 to process... 11 | -------------------------------------------------------------------------------- /deadwood-github/sqa/basic_test/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww1.example.com. 3 | www1.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | # AR replies: 6 | 7 | # Querying the server with the IP 127.0.0.1 8 | # Question: Awww2.example.com. 9 | www2.example.com. +86400 a 10.1.2.3 10 | # NS replies: 11 | # AR replies: 12 | 13 | # Querying the server with the IP 127.0.0.1 14 | # Question: Awww1.example.com. 15 | www1.example.com. +86400 a 10.1.2.3 16 | # NS replies: 17 | # AR replies: 18 | Deadwood: A DNS UDP non-recursive cache 19 | We bound to 1 addresses 20 | Got signal 1 to process... 21 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_d_upstream_servers/db.example.net: -------------------------------------------------------------------------------- 1 | *.% A 10.1.2.4 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_dns_port/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. a 10.1.2.3 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.0.0.1#5300 7 | # Question: Awww.example.com. 8 | www.example.com. a 10.1.2.3 9 | # NS replies: 10 | # AR replies: 11 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_handle_noreply/output.success: -------------------------------------------------------------------------------- 1 | handle_noreply=0 2 | # Querying the server with the IP 127.0.0.1 3 | # Hard Error: Timeout 4 | handle_noreply=1 5 | # Querying the server with the IP 127.0.0.1 6 | # Remote server said: SERVER FAILURE 7 | # Question: Awww.example.com. 8 | # NS replies: 9 | # AR replies: 10 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_handle_noreply_tcp/output.success: -------------------------------------------------------------------------------- 1 | handle_noreply=0 2 | # Querying the server with the IP 127.0.0.1 3 | # Hard Error: Length of reply not same as stated length 4 | handle_noreply=1 5 | # Querying the server with the IP 127.0.0.1 6 | # Question: Awww.example.com. 7 | # NS replies: 8 | # AR replies: 9 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_handle_overload/output.success: -------------------------------------------------------------------------------- 1 | 2 | # Querying the server with the IP 127.0.0.1 3 | # Hard Error: Timeout 4 | 5 | # Querying the server with the IP 127.0.0.1 6 | # Remote server said: SERVER FAILURE 7 | # Question: Awww.example.com. 8 | # NS replies: 9 | # AR replies: 10 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_hash_magic_number/README: -------------------------------------------------------------------------------- 1 | To run this test, you must compile Deadwood with "HASH_DEBUG" defined. 2 | 3 | e.g. in the src directory, do this to compile Deadwood: 4 | 5 | export FLAGS='-O3 -DHASH_DEBUG' 6 | make clean 7 | make 8 | 9 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_hash_magic_number/dwood2rc: -------------------------------------------------------------------------------- 1 | chroot_dir="/home/set/maradns/MaraDNS-github/deadwood-github/sqa/dwood2rc_n_hash_magic_number" 2 | ipv4_bind_addresses="127.0.0.1" 3 | upstream_servers = {} 4 | upstream_servers["."]="127.0.0.2" 5 | recursive_acl="127.0.0.1/16" 6 | maxprocs=8 7 | timeout_seconds=1 8 | hash_magic_number=1441614611 9 | num_retries=0 10 | filter_rfc1918 = 0 11 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_hash_magic_number/output.success: -------------------------------------------------------------------------------- 1 | \x07www1bar\x07example\x03com\x00\x00\x01 2cb6a7cb 2 | \x07www1bar\x07example\x03com\x00\xFFs 3 | \x07www1foo\x07example\x03com\x00\x00\x01 ef6a6fee 4 | \x07www1foo\x07example\x03com\x00\xFFs 5 | \x07www1foo\x07example\x03net\x00\x00\x01 491ae8e8 6 | \x07www1foo\x07example\x03net\x00\xFFs 7 | \x07www1bar\x07example\x03com\x00\x00\x01 ccd8a456 8 | \x07www1bar\x07example\x03com\x00\xFFs 9 | \x07www1foo\x07example\x03com\x00\x00\x01 c33cac23 10 | \x07www1foo\x07example\x03com\x00\xFFs 11 | \x07www1foo\x07example\x03net\x00\x00\x01 0150ee25 12 | \x07www1foo\x07example\x03net\x00\xFFs 13 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_maradns_gid/output.success: -------------------------------------------------------------------------------- 1 | Deadwood 3011 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_maradns_uid/output.success: -------------------------------------------------------------------------------- 1 | Deadwood 3011 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_maximum_cache_elements/output.success: -------------------------------------------------------------------------------- 1 | 2829 2 | 3830 3 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_maxprocs/output.success: -------------------------------------------------------------------------------- 1 | 8 maxprocs 2 | 3 | # Querying the server with the IP 127.0.0.1 4 | # Remote server said: SERVER FAILURE 5 | # Question: Awww.example.com. 6 | # NS replies: 7 | # AR replies: 8 | 9 | 128 maxprocs 10 | 11 | # Querying the server with the IP 127.0.0.1 12 | # Hard Error: Timeout 13 | 14 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_recurse_min_bind_port/output.success: -------------------------------------------------------------------------------- 1 | 4352 2 | 32512 3 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_recurse_number_ports/output.success: -------------------------------------------------------------------------------- 1 | 4352 2 | 32512 3 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_timeout_seconds/output.success: -------------------------------------------------------------------------------- 1 | timeout 1 2 | # Querying the server with the IP 127.0.0.1 3 | # Hard Error: Timeout 4 | timeout 20 5 | # Querying the server with the IP 127.0.0.1 6 | # Remote server said: SERVER FAILURE 7 | # Question: Awww.example.com. 8 | # NS replies: 9 | # AR replies: 10 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_ttl_age/output.success: -------------------------------------------------------------------------------- 1 | 8640 2 | 8640 3 | 4 | 8639 5 | 8639 6 | 7 | Deadwood: A DNS UDP non-recursive cache 8 | We bound to 1 addresses 9 | Got signal 1 to process... 10 | 8640 11 | 8640 12 | 13 | 8640 14 | 8640 15 | 16 | Deadwood: A DNS UDP non-recursive cache 17 | We bound to 1 addresses 18 | Got signal 1 to process... 19 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_upstream_port/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | # AR replies: 6 | # Querying the server with the IP 127.0.0.1 7 | # Question: Awww.example.com. 8 | www.example.com. +86400 a 10.1.2.3 9 | # NS replies: 10 | # AR replies: 11 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_verbose_level/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Lets make sure Deadwood can write the cache to a file 4 | 5 | # Now, make sure Deadwood works 6 | 7 | for VALUE in 0 4 ; do 8 | 9 | cat > dwood2rc << EOF 10 | chroot_dir="$( pwd )" 11 | ipv4_bind_addresses="127.0.0.1" 12 | upstream_servers = {} 13 | upstream_servers["."]="127.0.0.2" 14 | recursive_acl="127.0.0.1/16" 15 | verbose_level=${VALUE} 16 | filter_rfc1918 = 0 17 | EOF 18 | 19 | ../../src/Deadwood -f dwood2rc | grep -i verbose_ & 20 | sleep 1 21 | killall Deadwood 22 | rm dwood2rc 23 | 24 | done 25 | 26 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_n_verbose_level/output.success: -------------------------------------------------------------------------------- 1 | Verbose_level set to 4 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_s_bind_address/output.success: -------------------------------------------------------------------------------- 1 | 2 | 127.2.0.1 3 | tcp00127.2.0.1:530.0.0.0:*LISTEN 4 | udp00127.2.0.1:530.0.0.0:* 5 | 6 | 7 | 127.2.0.2 8 | tcp00127.2.0.2:530.0.0.0:*LISTEN 9 | udp00127.2.0.2:530.0.0.0:* 10 | 11 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_s_cache_file/output.success: -------------------------------------------------------------------------------- 1 | dw_cache 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_s_chroot_dir/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Make sure Deadwood works 4 | # NOTE: No startup of MaraDNS because 127.0.0.2 is *supposed* to be 5 | # non-responsive 6 | 7 | for VALUE in $( pwd ) /dev/not/exist ; do 8 | 9 | cat > dwood2rc << EOF 10 | chroot_dir="${VALUE}" 11 | ipv4_bind_addresses="127.0.0.1" 12 | upstream_servers["."]="127.0.0.2" 13 | recursive_acl="127.0.0.1/16" 14 | filter_rfc1918 = 0 15 | EOF 16 | 17 | ../../src/Deadwood -f dwood2rc | grep -v version | sed 's/[(].*[)]//' & 18 | sleep 1 19 | killall Deadwood > /dev/null 2>&1 20 | sleep 1 21 | 22 | done 23 | 24 | rm dwood2rc 25 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_s_chroot_dir/output.success: -------------------------------------------------------------------------------- 1 | Deadwood: A DNS UDP non-recursive cache 2 | We bound to 1 addresses 3 | Got signal 1 to process... 4 | Deadwood: A DNS UDP non-recursive cache 5 | We bound to 1 addresses 6 | Fatal: chdir failed 7 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_s_ipv4_bind_addresses/output.success: -------------------------------------------------------------------------------- 1 | 2 | 127.2.0.1 3 | tcp00127.2.0.1:530.0.0.0:*LISTEN 4 | udp00127.2.0.1:530.0.0.0:* 5 | 6 | 127.2.0.2 7 | tcp00127.2.0.2:530.0.0.0:*LISTEN 8 | udp00127.2.0.2:530.0.0.0:* 9 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_s_random_seed_file/output.success: -------------------------------------------------------------------------------- 1 | Deadwood: A DNS UDP non-recursive cache 2 | We bound to 1 addresses 3 | Unable to get 128 bits of entropy; file /dev/null must be 4 | at least 16 bytes long 5 | 6 | Deadwood: A DNS UDP non-recursive cache 7 | We bound to 1 addresses 8 | Fatal error opening random seed file /does/not/exist 9 | 10 | 11 | Deadwood: A DNS UDP non-recursive cache 12 | We bound to 1 addresses 13 | Got signal 1 to process... 14 | -------------------------------------------------------------------------------- /deadwood-github/sqa/dwood2rc_s_recursive_acl/output.success: -------------------------------------------------------------------------------- 1 | 2 | # Querying the server with the IP 127.0.0.1 3 | # Question: Awww.example.com. 4 | www.example.com. +86400 a 10.1.2.3 5 | # NS replies: 6 | # AR replies: 7 | 8 | 9 | # Querying the server with the IP 127.0.0.1 10 | # Hard Error: Timeout 11 | 12 | -------------------------------------------------------------------------------- /deadwood-github/sqa/recurse_2link_cname/clean.up.files: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Clean up files created by setup.maradns 4 | rm mararc2 5 | rm mararc3 6 | rm mararc4 7 | rm mararc5 8 | rm db.root 9 | rm db.example.com 10 | rm db.example.net 11 | rm db.example.org 12 | 13 | -------------------------------------------------------------------------------- /deadwood-github/sqa/recurse_2link_cname/dwood3rc: -------------------------------------------------------------------------------- 1 | bind_address="127.0.0.1" 2 | recursive_acl="127.0.0.1/8" 3 | chroot_dir="/etc/deadwood" 4 | root_servers = {} 5 | root_servers["."] = "127.0.0.2" 6 | filter_rfc1918 = 0 7 | -------------------------------------------------------------------------------- /deadwood-github/sqa/recurse_2link_cname/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Acname1.example.com. 3 | cname1.example.com. cname cname.example.net. 4 | #cname.example.net. cname www.example.org. 5 | #www.example.org. a 127.10.1.3 6 | # NS replies: 7 | # AR replies: 8 | -------------------------------------------------------------------------------- /deadwood-github/sqa/recurse_es-us.noticias.yahoo.com/clean.up.files: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Clean up files created by setup.maradns 4 | rm mararc2 5 | rm mararc3 6 | rm mararc4 7 | rm db.root 8 | rm db.example.com 9 | rm db.example.net 10 | 11 | -------------------------------------------------------------------------------- /deadwood-github/sqa/recurse_es-us.noticias.yahoo.com/dwood3rc: -------------------------------------------------------------------------------- 1 | bind_address="127.0.0.1" 2 | recursive_acl="127.0.0.1/8" 3 | chroot_dir="/etc/deadwood" 4 | root_servers = {} 5 | root_servers["."] = "127.0.0.2" 6 | filter_rfc1918 = 0 7 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_badid_question/output.success: -------------------------------------------------------------------------------- 1 | testing badid.dns 2 | # Querying the server with the IP 127.0.0.2 3 | # Remote server said: SERVER FAILURE 4 | # Question: Awww.example.com. 5 | # NS replies: 6 | # AR replies: 7 | testing badquestion.dns 8 | # Querying the server with the IP 127.0.0.2 9 | # Remote server said: SERVER FAILURE 10 | # Question: Awww.example.com. 11 | # NS replies: 12 | # AR replies: 13 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_bigpacket/Makefile: -------------------------------------------------------------------------------- 1 | all: show_packet_stdout send_packet_stdin truncated 2 | 3 | clean: 4 | rm -f show_packet_stdout send_packet_stdin truncated 5 | 6 | show_packet_stdout: show_packet_stdout.c 7 | $(CC) $(FLAGS) -Wall -o show_packet_stdout show_packet_stdout.c 8 | 9 | send_packet_stdin: send_packet_stdin.c 10 | $(CC) $(FLAGS) -Wall -o send_packet_stdin send_packet_stdin.c 11 | 12 | truncated: truncated.c 13 | $(CC) $(FLAGS) -Wall -o truncated truncated.c 14 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_bigpacket/dns.query.example.com: -------------------------------------------------------------------------------- 1 | 001D727F01000001000000000000076578616D706C6503636F6D0000010001 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_bigpacket/dns.query.txt.example.com: -------------------------------------------------------------------------------- 1 | 00 21 F3 E5 01 00 00 01 00 00 00 00 00 00 03 74 78 74 07 65 78 61 6D 2 | 70 6C 65 03 63 6F 6D 00 00 10 00 01 3 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_bigpacket/dns.reply.example.com: -------------------------------------------------------------------------------- 1 | 00 4E 72 7F 85 80 00 01 00 01 00 01 00 01 07 65 78 61 6D 70 6C 65 03 63 - 2 | 6F 6D 00 00 01 00 01 C0 0C 00 01 00 01 00 00 46 50 00 04 0A 02 04 08 C0 - 3 | 0C 00 02 00 01 00 00 46 50 00 05 02 6E 73 C0 0C C0 39 00 01 00 01 00 00 - 4 | 46 50 00 04 0A 01 02 03 5 | 6 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_bigpacket/named.conf: -------------------------------------------------------------------------------- 1 | options { 2 | directory "/home/set/deadwood/deadwood-Q-20090505-2/sqa/sqa_bigpacket"; 3 | pid-file none; 4 | listen-on { 127.0.0.1; }; 5 | }; 6 | zone "example.com" in{ 7 | type master; 8 | file "db.example.com"; 9 | }; 10 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_bigpacket/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.2 2 | # Hard Error: Problem converting inheader 3 | Deadwood: A DNS UDP non-recursive cache 4 | We bound to 1 addresses 5 | Got signal 1 to process... 6 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_halfsip/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | HERE=$( /bin/pwd ) 4 | if [ -z "$CC" ] ; then 5 | CC=cc 6 | fi 7 | if [ -z "$CFLAGS" ] ; then 8 | CFLAGS=-O3 9 | fi 10 | 11 | cd ../../src/ 12 | $CC $CFLAGS -o halfSipTest -DRUNTESTS DwHalfSipHash.c 13 | 14 | # Copy the rg32 binary here 15 | mv halfSipTest $HERE 16 | 17 | # OK, come back here to run the test 18 | cd $HERE 19 | ./halfSipTest 20 | 21 | # Clean up here 22 | rm halfSipTest 23 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_incomplete_last_line/README: -------------------------------------------------------------------------------- 1 | This isn't a full test yet, just a C program that makes the last line of a 2 | file an incomplete last line (*NIX linefeeds) 3 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_ip4/dwoodrc: -------------------------------------------------------------------------------- 1 | bind_address = "127.0.0.1" 2 | recursive_acl = "127.0.0.1/8" 3 | chroot_dir="/etc/" 4 | maximum_cache_elements = 32 5 | upstream_servers = {} 6 | upstream_servers["."] = "127.0.0.2" 7 | ip4 = {} 8 | ip4["kabah.foo."] = "10.10.10.10" 9 | ip6 = {} 10 | ip6["kabah.foo."] = "fd4d617261444e530000000000001234" 11 | filter_rfc1918 = 0 12 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_rg32/README: -------------------------------------------------------------------------------- 1 | These are all of the official test vectors for RadioGatun[32]. The vectors 2 | have had their formatting changed to make running the test more convenient. 3 | 4 | I have also added a UTF-8 test vector, and run the test against both 5 | clang and gcc at various levels of optimization (mainly because there 6 | was a bug in the rg32 code which only manifests itself in clang, but 7 | only at -O2 and -O3). 8 | 9 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_rg32/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Since there was a bug in another rg32 implementation which only showed 4 | # up with "clang -O2" and "clang -O3" (it passed with all gcc and tcc 5 | # options), we now have a test to make sure rg32 works with all compilers 6 | # and all flags 7 | 8 | gcc -O3 -o rg32hash rg32hash.c 2> /dev/null 9 | 10 | for cc in gcc clang ; do 11 | for opt in '-g' '' '-Os' '-O1' '-O2' '-O3' ; do 12 | export COMPILER="$cc" 13 | export FLAGS="$opt" 14 | ./one.test > test.output 15 | echo $( rg32hash test.output ) $COMPILER $FLAGS 16 | done 17 | done 18 | 19 | rm rg32hash 20 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_rg32/one.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Make the rg32 binary 4 | HERE=$( /bin/pwd ) 5 | cd ../../src 6 | rm -f rg32 DwStr.o 7 | $COMPILER $FLAGS -DSTANDALONE -c -o DwStr.o DwStr.c 8 | $COMPILER $FLAGS -o rg32 -DHAVE_MAIN DwRadioGatun.c DwStr.o 9 | 10 | # Copy the rg32 binary here 11 | cp rg32 $HERE 12 | 13 | # Clean up 14 | rm rg32 DwStr.o 15 | make clean > /dev/null 2>&1 16 | 17 | # OK, come back here to run the test 18 | cd $HERE 19 | 20 | # The test 21 | cat Input | awk ' 22 | {print "./rg32 '\''" $0 "'\'' | \\"; 23 | print "awk '\''{$17=$18=$19=$20=\"\" ; print $0}'\'' | tr -d \" \" "} 24 | ' | sh 25 | 26 | # Clean up here 27 | rm rg32 28 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_rg64/README: -------------------------------------------------------------------------------- 1 | These are all of the official test vectors for RadioGatun[64]. The vectors 2 | have had their formatting changed to make running the test more convenient: 3 | 4 | fgrep \( RG64-testvectors | awk '{print $NF}' | grep -v S | tr '[A-Z]' '[a-z]' 5 | 6 | (The pedantically correct form of "fgrep" may be "grep -F", but fgrep 7 | has been around for well over 25 years) 8 | 9 | I have also added a UTF-8 test vector, and run the test against both 10 | clang and gcc at various levels of optimization (mainly because there 11 | was a bug in the rg32 code which only manifests itself in clang, but 12 | only at -O2 and -O3). 13 | 14 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_roy_arends/README: -------------------------------------------------------------------------------- 1 | The "Roy Arends" test: Make sure the DNS server does not reply to answers. 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_roy_arends/output.success: -------------------------------------------------------------------------------- 1 | \x6d\xe4\x81\x82\x00\x01\x00\x00\x00\x00\x00\x00\x07\x65\x78\x61\x6d\x70\x6c\x65\x03\x63\x6f\x6d\x00\x00\x01\x00\x01 2 | 3 | Timeout 4 | 5 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp/README: -------------------------------------------------------------------------------- 1 | This test makes sure that TCP works on the real internet (where buffering 2 | is used, unlike over the loopback interface). This test works by 3 | using the real server for www.example.com as the upstream server, and 4 | making a query to that server. 5 | 6 | Note that this test will need to be revised if the real server for 7 | www.example.com changes or the data for www.example.com changes. 8 | That in mind, this test is done first because it will fail every 9 | time the server/data for www.example.com changes but this test 10 | isn't updated to reflect those changes. 11 | 12 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | Cwww.example.com. 4 | # SOME CNAME 5 | SOMETHING.akamai.net. 6 | SOMETHING.akamai.net. 7 | # NS replies: 8 | # AR replies: 9 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering/Makefile: -------------------------------------------------------------------------------- 1 | all: show_packet_stdout send_packet_stdin truncated 2 | 3 | clean: 4 | rm -f show_packet_stdout send_packet_stdin truncated 5 | 6 | show_packet_stdout: show_packet_stdout.c 7 | $(CC) $(FLAGS) -Wall -o show_packet_stdout show_packet_stdout.c 8 | 9 | send_packet_stdin: send_packet_stdin.c 10 | $(CC) $(FLAGS) -Wall -o send_packet_stdin send_packet_stdin.c 11 | 12 | truncated: truncated.c 13 | $(CC) $(FLAGS) -Wall -o truncated truncated.c 14 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering/dns.query.example.com: -------------------------------------------------------------------------------- 1 | 001D727F01000001000000000000076578616D706C6503636F6D0000010001 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering/dns.query.txt.example.com: -------------------------------------------------------------------------------- 1 | 00 21 F3 E5 01 00 00 01 00 00 00 00 00 00 03 74 78 74 07 65 78 61 6D 2 | 70 6C 65 03 63 6F 6D 00 00 10 00 01 3 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering/dns.reply.example.com: -------------------------------------------------------------------------------- 1 | 00 4E 72 7F 85 80 00 01 00 01 00 01 00 01 07 65 78 61 6D 70 6C 65 03 63 - 2 | 6F 6D 00 00 01 00 01 C0 0C 00 01 00 01 00 00 46 50 00 04 0A 02 04 08 C0 - 3 | 0C 00 02 00 01 00 00 46 50 00 05 02 6E 73 C0 0C C0 39 00 01 00 01 00 00 - 4 | 46 50 00 04 0A 01 02 03 5 | 6 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.2 2 | # Hard Error: Problem converting inheader 3 | Deadwood: A DNS UDP non-recursive cache 4 | We bound to 1 addresses 5 | Got signal 1 to process... 6 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering_2/Makefile: -------------------------------------------------------------------------------- 1 | all: show_packet_stdout send_packet_stdin truncated 2 | 3 | clean: 4 | rm -f show_packet_stdout send_packet_stdin truncated 5 | 6 | show_packet_stdout: show_packet_stdout.c 7 | $(CC) $(FLAGS) -Wall -o show_packet_stdout show_packet_stdout.c 8 | 9 | send_packet_stdin: send_packet_stdin.c 10 | $(CC) $(FLAGS) -Wall -o send_packet_stdin send_packet_stdin.c 11 | 12 | truncated: truncated.c 13 | $(CC) $(FLAGS) -Wall -o truncated truncated.c 14 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering_2/dns.query.example.com: -------------------------------------------------------------------------------- 1 | 001D727F01000001000000000000076578616D706C6503636F6D0000010001 2 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering_2/dns.query.txt.example.com: -------------------------------------------------------------------------------- 1 | 00 21 F3 E5 01 00 00 01 00 00 - 00 00 00 00 03 74 78 74 07 65 78 61 6D - 2 | 70 6C 65 03 63 6F 6D 00 00 10 - 00 01 3 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_tcp_buffering_2/dns.reply.example.com: -------------------------------------------------------------------------------- 1 | 00 4E 72 7F 85 80 00 01 00 01 00 01 00 01 07 65 78 61 6D 70 6C 65 03 63 - 2 | 6F 6D 00 00 01 00 01 C0 0C 00 01 00 01 00 00 46 50 00 04 0A 02 04 08 C0 - 3 | 0C 00 02 00 01 00 00 46 50 00 05 02 6E 73 C0 0C C0 39 00 01 00 01 00 00 - 4 | 46 50 00 04 0A 01 02 03 5 | 6 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_ttl_expire/clean.up: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Kill processes 4 | killall microdns-timestamp > /dev/null 2>&1 5 | killall Deadwood > /dev/null 2>&1 6 | sleep 5 7 | killall -9 microdns-timestamp > /dev/null 2>&1 8 | killall -9 Deadwood > /dev/null 2>&1 9 | 10 | # Remove generated files 11 | rm microdns-timestamp 12 | rm dwood3rc 13 | -------------------------------------------------------------------------------- /deadwood-github/sqa/sqa_ttl_expire/output.success: -------------------------------------------------------------------------------- 1 | PASS 2 | -------------------------------------------------------------------------------- /deadwood-github/src/DwRandPrime.h: -------------------------------------------------------------------------------- 1 | #define MUL_CONSTANT 1741689779 2 | /* 1741689779 has 16 bits set to 1 */ 3 | -------------------------------------------------------------------------------- /deadwood-github/tools/Makefile: -------------------------------------------------------------------------------- 1 | all: duende 2 | 3 | duende: duende.c 4 | $(CC) $(FLAGS) -o duende duende.c 5 | 6 | clean: 7 | rm -f duende 8 | -------------------------------------------------------------------------------- /deadwood-github/tools/blockhash/.gitignore: -------------------------------------------------------------------------------- 1 | blockHashMake 2 | blockHashMake.exe 3 | blockHashRead 4 | blockHashRead.exe 5 | bigBlock.bin 6 | foo* 7 | -------------------------------------------------------------------------------- /deadwood-github/tools/blockhash/Makefile: -------------------------------------------------------------------------------- 1 | all: blockHashMake blockHashRead 2 | 3 | clean: 4 | rm -f blockHashMake blockHashRead *.exe 5 | 6 | blockHashMake: blockHashMake.c 7 | $(CC) $(CFLAGS) -o blockHashMake blockHashMake.c 8 | 9 | blockHashRead: blockHashRead.c 10 | $(CC) $(CFLAGS) -o blockHashRead blockHashRead.c 11 | -------------------------------------------------------------------------------- /deadwood-github/update/2.9.02/deadwood-2.9.01-bug_reporting.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-2.9.01/bug.reporting.policy 2010-07-22 10:08:25.000000000 -0700 2 | +++ deadwood-2.9.02/bug.reporting.policy 2010-07-28 10:40:53.000000000 -0700 3 | @@ -13,3 +13,8 @@ 4 | MaraDNS/Deadwood support for people not comfortable with mailing 5 | lists, but no promises. 6 | 7 | +* Bugs reporting Deadwood crashes will be marked "unreproducible" unless 8 | + either a stack trace (or core dump if the program was compiled with 9 | + '-g' to enable debugging symbols) or a recipe to reproduce the 10 | + crash is provided. 11 | + 12 | -------------------------------------------------------------------------------- /deadwood-github/update/2.9.02/deadwood-2.9.01-spurious_message.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-2.9.01/src/DwRecurse.c 2010-07-22 01:17:51.000000000 -0700 2 | +++ deadwood-2.9.02/src/DwRecurse.c 2010-07-25 22:24:48.000000000 -0700 3 | @@ -1938,7 +1938,6 @@ 4 | } 5 | 6 | reset_rem(conn_num); /* Close finished query */ 7 | - printf("reset_rem DwRecurse 1941 %d\n",conn_num); 8 | closesocket(b_remote[conn_num]); 9 | b_remote[conn_num] = INVALID_SOCKET; /* Make remote available */ 10 | reply = 0; 11 | -------------------------------------------------------------------------------- /deadwood-github/update/2.9.03/deadwood-2.9.02-no_ip_netmask.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-2.9.02/src/DwSocket.c 2010-07-29 10:39:10.000000000 -0700 2 | +++ deadwood-2.9.03/src/DwSocket.c 2010-08-02 11:06:26.000000000 -0700 3 | @@ -293,6 +293,8 @@ 4 | 5 | q = strchr(c,'/'); 6 | if(q == 0 || *q != '/') { 7 | + pop_ip_core(list,(ip_addr_T *)ip_mask,c); 8 | + make_netmask(ip_mask->len * 8,ip_mask->mask,ip_mask->len); 9 | goto catch_pop_ip_mask; 10 | } 11 | *q = 0; /* pop_ip_core can't take an IP ending with a slash */ 12 | -------------------------------------------------------------------------------- /deadwood-github/update/2.9.05/deadwood-2.9.04-check_ip_acl.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-2.9.05/src/DwSocket.c.orig 2010-08-18 09:01:31.000000000 -0700 2 | +++ deadwood-2.9.05/src/DwSocket.c 2010-08-18 09:02:14.000000000 -0700 3 | @@ -408,6 +408,9 @@ 4 | uint8_t m; 5 | 6 | for(a = 0; a < DW_MAXIPS; a++) { 7 | + if(recursive_acl[a].len == 0) { 8 | + return 0; 9 | + } 10 | if(ip->len != recursive_acl[a].len) { 11 | continue; 12 | } 13 | -------------------------------------------------------------------------------- /deadwood-github/update/2.9.07/deadwood-2.9.06-verify_ignore_case.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-2.9.07/src/DwUdpSocket.c.orig 2010-09-07 22:18:45.000000000 -0700 2 | +++ deadwood-2.9.07/src/DwUdpSocket.c 2010-09-07 22:20:02.000000000 -0700 3 | @@ -833,7 +834,7 @@ 4 | goto catch_verify_dns_packet; 5 | } 6 | 7 | - /* Should we make this case-insensitive? Probably not. */ 8 | + dwc_lower_case(question); /* Case-insensitive comparison */ 9 | if(dw_issame(question,rem[b].query) != 1) { 10 | goto catch_verify_dns_packet; 11 | } 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.0.01/deadwood-2.9.07-copying_2010.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-2.9.07/doc/Windows/Copying.txt 2009-08-18 10:04:15.000000000 -0700 2 | +++ deadwood-2.9.08/doc/Windows/Copying.txt 2010-09-10 10:53:20.000000000 -0700 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2007-2009 Sam Trenholme and others 5 | +Copyright (c) 2007-2010 Sam Trenholme and others 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /deadwood-github/update/3.0.04/deadwood-3.0.03-init_dict_once.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.0.03/src/DwMararc.c 2011-07-22 15:41:30.000000000 -0500 2 | +++ deadwood-3.0.04/src/DwMararc.c 2011-09-10 13:41:10.389630157 -0500 3 | @@ -567,6 +567,8 @@ 4 | if(key_d[num] == 0 && todo == 6) { /* Initialized with {} */ 5 | key_d[num] = dwd_init(); 6 | return; 7 | + } else if(key_d[num] != 0 && todo == 6) { /* Only initialize once */ 8 | + dwm_fatal("Dictionary variable already initialized"); 9 | } else if(key_d[num] == 0) { 10 | dwm_fatal("Uninitialized dictionary variable"); 11 | } 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.0.05/deadwood-3.0.04-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.0.04/doc/CHANGELOG 2011-11-01 10:25:23.000000000 -0600 2 | +++ deadwood-3.0.05/doc/CHANGELOG 2011-11-09 13:38:23.406601641 -0600 3 | @@ -1,3 +1,10 @@ 4 | +3.0.05 (20111110): 5 | + 6 | +* Bugfix: reject_ptr now works 7 | + 8 | +* Bugfix: Replies from reject_aaaa and reject_ptr now have RA set, so 9 | + that they work with Linux's stub DNS resolver. 10 | + 11 | 3.0.04 (20111101): 12 | 13 | * Bugfix: RD should now be correctly set (or cleared) when sending a query 14 | -------------------------------------------------------------------------------- /deadwood-github/update/3.0.05/deadwood-3.0.04-ra_must_be_set.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.0.04/src/DwUdpSocket.c 2011-11-01 10:25:24.000000000 -0600 2 | +++ deadwood-fix_reject_aaaa/src/DwUdpSocket.c 2011-11-07 23:48:31.067213930 -0600 3 | @@ -690,6 +690,9 @@ 4 | /* Flag this as an answer */ 5 | answer[2] |= 0x80; 6 | 7 | + /* Flag RA bit because, well, recursion is available */ 8 | + answer[3] |= 0x80; 9 | + 10 | /* One "NS" record; no other records */ 11 | answer[9] = 1; 12 | answer[6] = answer[7] = answer[8] = answer[10] = answer[11] =0; 13 | -------------------------------------------------------------------------------- /deadwood-github/update/3.0.05/deadwood-3.0.04-reject_ptr.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.0.04/src/DwMararc.h.orig 2011-11-01 11:10:18.000000000 -0600 2 | +++ deadwood-3.0.04/src/DwMararc.h 2011-11-01 11:11:02.000000000 -0600 3 | @@ -142,6 +142,8 @@ 4 | * logging the query (to help find spam zombies) */ 5 | "truncation_hack", /* Whether to use 1st answer in truncated UDP 6 | * replies (if present) */ 7 | + "reject_ptr", /* Whether to reject PTR queries and send out a 8 | + synthetic "not there" reply */ 9 | 0 }; 10 | 11 | #endif /* MARARC_C */ 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.1.01/deadwood-3.0.05-truncation_hack_fix.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.1.01/src/DwUdpSocket.c.orig 2011-11-27 01:26:56.421867739 -0600 2 | +++ deadwood-3.1.01/src/DwUdpSocket.c 2011-11-27 01:27:59.598428635 -0600 3 | @@ -1068,7 +1068,7 @@ 4 | * answers will be treated as if it has only one answer */ 5 | if((a[2] & 0x02) != 0x00 && a[7] > 0 && 6 | key_n[DWM_N_truncation_hack] == 1) { 7 | - a[6] = 0; 8 | + a[6] = a[8] = a[9] = a[10] = a[11] = 0; 9 | a[7] = 1; 10 | /* Cut off answer after first reply */ 11 | for(z=12;zkey = dwh_get_dwstr(handle); 5 | out->value = dwh_get_dwstr(handle); 6 | out->expire = dwh_get_int64(handle); 7 | - if(out->key == 0 || out->value == 0) { 8 | + if(out->key == 0 || out->value == 0 || out->expire < 2) { 9 | goto catch_dwh_get_hash_element; 10 | } 11 | if(out->key->len == 0 || out->value->len == 0) { 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.02/deadwood-3.2.01-2012.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.01/Copying.txt 2010-07-22 10:28:50.000000000 -0500 2 | +++ deadwood-3.2.02/Copying.txt 2012-02-11 14:46:20.000000000 -0600 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2007-2010 Sam Trenholme and others 5 | +Copyright (c) 2007-2012 Sam Trenholme and others 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.02/deadwood-3.2.01-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.01/doc/CHANGELOG 2012-02-11 14:15:43.000000000 -0600 2 | +++ deadwood-3.2.02/doc/CHANGELOG 2012-02-27 23:50:13.000000000 -0600 3 | @@ -1,3 +1,11 @@ 4 | +3.2.02 (2012????): 5 | + 6 | +* New dwood3rc parameter added: max_ttl 7 | + 8 | +* "Recursive-algorithm" document added 9 | + 10 | +* INSTALL.TXT updated 11 | + 12 | 3.2.01 (20120211): 13 | 14 | * Bugfix: Deadwood no longer causes the TTL of a record to be at least 15 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.02/deadwood-3.2.01-mararc-2012.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.02/src/DwMararc.c.orig 2012-02-25 15:34:29.000000000 -0600 2 | +++ deadwood-3.2.02/src/DwMararc.c 2012-02-25 15:35:20.000000000 -0600 3 | @@ -1,4 +1,4 @@ 4 | -/* Copyright (c) 2007-2011 Sam Trenholme 5 | +/* Copyright (c) 2007-2012 Sam Trenholme 6 | * 7 | * TERMS 8 | * 9 | @@ -506,7 +506,7 @@ 10 | * 3: Set dictionary variable 11 | * 4: Append to dictionary variable 12 | * 5: Set numeric variable 13 | - * 6: Init dictionary variable (currently not used) 14 | + * 6: Init dictionary variable 15 | * 7: Read other file for more dwood2rc parameters 16 | */ 17 | 18 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.03/deadwood-3.2.02-easydns_bad_truncation_test.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.02/sqa/do.tests 2012-02-11 14:15:43.000000000 -0600 2 | +++ deadwood-3.2.03/sqa/do.tests 2012-04-23 13:40:48.000000000 -0500 3 | @@ -51,6 +51,7 @@ 4 | TESTS=$TESTS"dwood2rc_n_maxprocs,2 " 5 | TESTS=$TESTS"dwood2rc_s_cache_file,2 " 6 | TESTS=$TESTS"sqa_one_upstream_down,2 " 7 | +TESTS=$TESTS"sqa_easydns_bad_truncation,2 " 8 | TESTS=$TESTS"dwood2rc_n_num_retries,2 " 9 | 10 | # These tests are stable and don't fail 11 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.03/deadwood-3.2.02-ipv6_compile.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.02/src/Makefile.ipv6 2010-09-03 09:03:38.000000000 -0500 2 | +++ deadwood-3.2.03/src/Makefile.ipv6 2012-04-23 13:03:20.000000000 -0500 3 | @@ -86,5 +86,5 @@ 4 | $(CC) $(FLAGS) -Wall -o Test Test.c $(OBJS) 5 | 6 | Deadwood: DwMain.c $(OBJS) DwStr_functions.h version.h 7 | - $(CC) $(FLAGS) -DIPV6 -Wall -o Deadwood DwMain.c $(OBJS) 8 | + $(CC) $(FLAGS) -DIPV6 -Wall -o Deadwood DwMain.c $(OBJS) -lrt 9 | 10 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.03/deadwood-3.2.02-no_links.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.02/tools/ej/ej2txt 2012-02-28 23:59:53.000000000 -0800 2 | +++ deadwood-3.2.03/tools/ej/ej2txt 2012-10-28 01:49:51.509325232 -0700 3 | @@ -6,7 +6,10 @@ 4 | TMP=$HOME/tmp 5 | LINKS=$( which elinks ) 6 | if [ -z "$LINKS" ] ; then 7 | - LINKS=links 8 | + LINKS=$( which links) 9 | + if [ -z "$LINKS" ] ; then 10 | + LINKS=lynx 11 | + fi 12 | fi 13 | 14 | if which ej2html > /dev/null 2>&1 ; then 15 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.04/deadwood-3.2.03-2013.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.04/src/DwRecurse.c.orig 2013-07-13 18:02:29.554055204 -0700 2 | +++ deadwood-3.2.04/src/DwRecurse.c 2013-07-13 18:02:36.636055471 -0700 3 | @@ -1,4 +1,4 @@ 4 | -/* Copyright (c) 2009-2012 Sam Trenholme 5 | +/* Copyright (c) 2009-2013 Sam Trenholme 6 | * 7 | * TERMS 8 | * 9 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.04/deadwood-3.2.03-recursive_acl_example.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.03/doc/dwood3rc-all 2012-02-28 23:59:53.000000000 -0800 2 | +++ deadwood-3.2.04/doc/dwood3rc-all 2013-10-28 10:55:10.807099126 -0700 3 | @@ -83,7 +83,9 @@ 4 | recurse_number_ports = 4096 5 | 6 | # Who is allowed to use the cache 7 | -recursive_acl = "127.0.0.1/16" 8 | +recursive_acl = "127.0.0.1/16" 9 | +recursive_acl += ", 10.1.0.0/16" 10 | +recursive_acl += ", 192.168.1.0/24" 11 | 12 | # Whether to not resolve AAAA (IPv6) queries. This should be 1 on IPv4-only 13 | # networks; default is 0 14 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.04/deadwood-3.2.03-sqa_updates.patch: -------------------------------------------------------------------------------- 1 | --- dw/sqa/sqa_tcp/output.success 2011-11-01 09:25:23.000000000 -0700 2 | +++ deadwood-3.2.04/sqa/sqa_tcp/output.success 2013-12-20 06:15:40.000000000 -0800 3 | @@ -5,7 +5,7 @@ 4 | ;; QUESTION SECTION: 5 | ;www.example.com. IN A 6 | 7 | -www.example.com. 172800 IN A 192.0.43.10 8 | +www.example.com. 86400 IN A 93.184.216.119 9 | 10 | ;; AUTHORITY SECTION: 11 | 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.04/deadwood-3.2.03-whatever.scalzi.com-fix.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.04/src/DwRecurse.c.orig 2013-03-16 01:21:04.000000000 -0700 2 | +++ deadwood-3.2.04/src/DwRecurse.c 2013-03-16 01:21:17.000000000 -0700 3 | @@ -2018,7 +2018,7 @@ 4 | goto catch_dwx_make_cname_reply; 5 | } 6 | 7 | - ancount = dw_fetch_u16(answer,-7); 8 | + ancount = dw_fetch_u16(answer,-6); 9 | if(ancount < 1) { 10 | goto catch_dwx_make_cname_reply; 11 | } 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.06/deadwood-3.2.05-sqa.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.05/sqa/sqa_tcp/output.success 2013-12-20 07:48:10.000000000 -0800 2 | +++ deadwood-3.2.06/sqa/sqa_tcp/output.success 2015-01-23 22:40:01.122528726 -0800 3 | @@ -5,7 +5,7 @@ 4 | ;; QUESTION SECTION: 5 | ;www.example.com. IN A 6 | 7 | -www.example.com. 86400 IN A 93.184.216.119 8 | +www.example.com. 86400 IN A 93.184.216.34 9 | 10 | ;; AUTHORITY SECTION: 11 | 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.08/deadwood-3.2.07-examplecom.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.07/sqa/sqa_tcp/output.success 2015-01-24 00:09:04.000000000 -0800 2 | +++ deadwood-3.2.08/sqa/sqa_tcp/output.success 2015-08-18 20:28:20.170217802 -0700 3 | @@ -5,7 +5,7 @@ 4 | ;; QUESTION SECTION: 5 | ;www.example.com. IN A 6 | 7 | -www.example.com. 86400 IN A 93.184.216.34 8 | +www.example.com. 5 IN A 93.184.216.34 9 | 10 | ;; AUTHORITY SECTION: 11 | 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.09/deadwood-3.2.08-SQA.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.08/sqa/sqa_tcp/output.success 2015-08-18 21:09:43.000000000 -0700 2 | +++ deadwood-3.2.09/sqa/sqa_tcp/output.success 2015-09-25 20:37:15.452309696 -0700 3 | @@ -5,7 +5,7 @@ 4 | ;; QUESTION SECTION: 5 | ;www.example.com. IN A 6 | 7 | -www.example.com. 5 IN A 93.184.216.34 8 | +www.example.com. 86400 IN A 93.184.216.34 9 | 10 | ;; AUTHORITY SECTION: 11 | 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.10/deadwood-3.2.09-2017.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.09/Copying.txt 2012-02-28 23:59:53.000000000 -0800 2 | +++ deadwood-3.2.10/Copying.txt 2017-06-10 13:04:52.866943802 -0700 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2007-2016 Sam Trenholme and others 5 | +Copyright (c) 2007-2017 Sam Trenholme and others 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.11/deadwood-3.2.10-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.10/doc/CHANGELOG 2015-09-25 21:25:57.000000000 -0700 2 | +++ deadwood-3.2.11/doc/CHANGELOG 2018-01-10 15:33:47.247743692 -0800 3 | @@ -1,3 +1,17 @@ 4 | +3.2.11 (2018-01-10): 5 | + 6 | +- b.root-servers.net IP updated 7 | + 8 | +3.2.10 (2017-06-10): 9 | + 10 | +- h.root-servers.net IP updated 11 | + 12 | +- Slow down issue with mixed case queries fixed 13 | + 14 | +- We allow names to start with an underscore 15 | + 16 | +- Documentation updates 17 | + 18 | 3.2.09 (2015-09-25): 19 | 20 | - Security fix: Deadwood would crash if it was unable to make a UDP 21 | -------------------------------------------------------------------------------- /deadwood-github/update/3.2.13/deadwood-3.2.12-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.2.12/doc/CHANGELOG 2018-08-15 12:01:28.000000000 -0700 2 | +++ deadwood-3.2.13/doc/CHANGELOG 2018-11-11 22:56:44.227389752 -0800 3 | @@ -1,3 +1,7 @@ 4 | +3.2.13 (2018-11-11): 5 | + 6 | +- SQA tests updated to run and pass again in 2018 7 | + 8 | 3.2.12 (2018-08-15): 9 | 10 | - Security fix: There was a theoretical issue with the cryptographic 11 | -------------------------------------------------------------------------------- /deadwood-github/update/3.3.03/deadwood-3.3.02-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.3.02/doc/CHANGELOG 2019-01-19 06:22:53.000000000 -0800 2 | +++ deadwood-3.3.03/doc/CHANGELOG 2019-03-03 07:44:16.912941313 -0800 3 | @@ -1,3 +1,11 @@ 4 | +3.3.02 (2019-02-23; development branch release): 5 | + 6 | +- Add new parameter: ip6 7 | + 8 | +3.3.01 (2019-02-10; development branch release): 9 | + 10 | +- Add new parameter: ip4 11 | + 12 | 3.2.14 (2019-01-16): 13 | 14 | - Windows-only fix: Windows open() API is not 100% comatible with UNIX API; 15 | -------------------------------------------------------------------------------- /deadwood-github/update/3.4.02/deadwood-3.4.01-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.4.01/doc/CHANGELOG 2019-10-18 18:09:27.000000000 -0700 2 | +++ deadwood-3.4.02/doc/CHANGELOG 2020-01-14 06:44:52.443938900 -0800 3 | @@ -1,3 +1,9 @@ 4 | +3.4.02 (2020-01-14; stable release) 5 | + 6 | +- Issue building Deadwood from the GitHub tree in CentOS8 fixed 7 | +- Update Windows documents in Deadwood source code tarball 8 | +- All SQA regressions pass 9 | + 10 | 3.4.01 (2019-10-18; stable release) 11 | 12 | - No changes to code made from 3.3.03; all SQA regressions pass. 13 | -------------------------------------------------------------------------------- /deadwood-github/update/3.4.03/deadwood-3.4.02-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.4.02/doc/CHANGELOG 2020-01-14 06:45:38.000000000 -0800 2 | +++ deadwood-3.4.03/doc/CHANGELOG 2022-08-03 00:38:10.673323327 -0700 3 | @@ -1,3 +1,7 @@ 4 | +3.4.03 (2022-08-03; legacy release) 5 | + 6 | +- Fixes for CVE-2022-30256 7 | + 8 | 3.4.02 (2020-01-14; stable release) 9 | 10 | - Issue building Deadwood from the GitHub tree in CentOS8 fixed 11 | -------------------------------------------------------------------------------- /deadwood-github/update/3.4.04/deadwood-3.4.03-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.4.03/doc/CHANGELOG 2022-08-03 00:47:07.000000000 -0700 2 | +++ deadwood-3.4.04/doc/CHANGELOG 2022-10-16 06:07:02.756550118 -0700 3 | @@ -1,3 +1,8 @@ 4 | +3.4.04 (2022-10-16; legacy release) 5 | + 6 | +- Backport min_ttl to legacy branch 7 | +- All SQA regressions pass 8 | + 9 | 3.4.03 (2022-08-03; legacy release) 10 | 11 | - Fixes for CVE-2022-30256 12 | -------------------------------------------------------------------------------- /deadwood-github/update/3.4.05/deadwood-sqa-2022-10-18.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/deadwood-github/update/3.4.05/deadwood-sqa-2022-10-18.tar.xz -------------------------------------------------------------------------------- /deadwood-github/update/3.4.06/deadwood-3.4.05-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.4.05/doc/CHANGELOG 2022-10-18 16:50:56.000000000 -0700 2 | +++ deadwood-3.4.06/doc/CHANGELOG 2022-10-24 15:22:53.484350839 -0700 3 | @@ -1,3 +1,9 @@ 4 | +3.4.06 (2022-10-24; legacy release) 5 | + 6 | +- Very minor security fix: Under some circumstances, Deadwood would make 7 | + too many upstream queires to recursively resolve a name. Fixed. This 8 | + only affects people using the root_servers feature of Deadwood. 9 | + 10 | 3.4.05 (2022-10-18; legacy release) 11 | 12 | - Fix SQA regressions so that they all pass in Alpine 3.14; I replaced 13 | -------------------------------------------------------------------------------- /deadwood-github/update/3.4.07/deadwood-3.4.06-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.4.06/doc/CHANGELOG 2022-10-24 16:36:58.000000000 -0700 2 | +++ deadwood-3.4.07/doc/CHANGELOG 2022-11-10 17:39:45.283103612 -0800 3 | @@ -1,3 +1,11 @@ 4 | +3.4.07 (2022-11-??; legacy release) 5 | + 6 | +- doc/Deadwood.txt was blank file. Fixed. 7 | +- Fix Deadwood's documentation and document building process by 8 | + backporting the new Lua EJ ("Easy Journal") tools to the 3.4 9 | + branch of Deadwood. 10 | +- Have doc/Makefile be compatible with maramake 11 | + 12 | 3.4.06 (2022-10-24; legacy release) 13 | 14 | - Very minor security fix: Under some circumstances, Deadwood would make 15 | -------------------------------------------------------------------------------- /deadwood-github/update/3.4.09/deadwood-3.4.08-changelog.patch: -------------------------------------------------------------------------------- 1 | --- deadwood-3.4.08/doc/CHANGELOG 2022-11-19 11:14:25.000000000 -0800 2 | +++ deadwood-3.4.09/doc/CHANGELOG 2022-11-25 19:51:50.225116355 -0800 3 | @@ -1,3 +1,7 @@ 4 | +3.4.09 (2022-11-25; legacy release) 5 | + 6 | +- Disable ANY and HINFO queries as per RFC8482 7 | + 8 | 3.4.08 (2022-11-19; legacy release) 9 | 10 | - Make sure DwSys.c is 100% Y2038 compliant. While testing has not 11 | -------------------------------------------------------------------------------- /deadwood-github/update/README.md: -------------------------------------------------------------------------------- 1 | Between 2005 and early 2020, MaraDNS was updated by a shell script which 2 | would run a bunch of patches against the code to make a new release. 3 | 4 | Between 2010 and early 2020, Deadwood was updated using similar shell 5 | scripts. 6 | 7 | This allowed me to track changes without having to use a revision control 8 | system. In 2014, I started using Git to make some of the changes, but I 9 | did not transition to making stable releases directly from Git until 2020. 10 | 11 | This directory has the full history of Deadwood changes done using 12 | this system. 13 | -------------------------------------------------------------------------------- /doc/README: -------------------------------------------------------------------------------- 1 | en: English-language documentation 2 | -------------------------------------------------------------------------------- /doc/en/examples/example_csv1: -------------------------------------------------------------------------------- 1 | # Example CSV1 zone file 2 | 3 | # This is what is known as a SOA record. All zone files need to have one 4 | # of these 5 | S%|86400|%|hostmaster@%|19771108|7200|3600|604800|1800 6 | # These are known as authoritative NS records. All zone files need one or 7 | # more of these 8 | N%|86400|ns1.% 9 | N%|86400|ns2.% 10 | 11 | # Some IP addresses 12 | Ans1.%|86400|10.0.0.1 13 | Ans2.%|86400|192.168.0.1 14 | A%|86400|10.1.2.3 15 | Amx.%|86400|10.1.2.4 16 | 17 | # An 'IN MX' record 18 | @%|86400|10|mx.% 19 | 20 | -------------------------------------------------------------------------------- /doc/en/examples/example_csv1.txt: -------------------------------------------------------------------------------- 1 | # Example CSV1 zone file 2 | 3 | # This is what is known as a SOA record. All zone files need to have one 4 | # of these 5 | S%|86400|%|hostmaster@%|19771108|7200|3600|604800|1800 6 | # These are known as authoritative NS records. All zone files need one or 7 | # more of these 8 | N%|86400|ns1.% 9 | N%|86400|ns2.% 10 | 11 | # Some IP addresses 12 | Ans1.%|86400|10.0.0.1 13 | Ans2.%|86400|192.168.0.1 14 | A%|86400|10.1.2.3 15 | Amx.%|86400|10.1.2.4 16 | 17 | # An 'IN MX' record 18 | @%|86400|10|mx.% 19 | 20 | -------------------------------------------------------------------------------- /doc/en/man/read.manpage: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | nroff -man $1 | less 4 | -------------------------------------------------------------------------------- /doc/en/misc/0README: -------------------------------------------------------------------------------- 1 | These are miscellaneous technical documents which describe the internals 2 | of MaraDNS; none of these documents need to be translated when 3 | translating user-documentation. Most of these documents are in ASCII 4 | text format; some are in HTML format; one is in both HTML and AbiWord 5 | format; and the notes on the man page 6 | macros are in man format. 7 | -------------------------------------------------------------------------------- /doc/en/misc/README.malloc: -------------------------------------------------------------------------------- 1 | MaraDNS terminates upon a malloc() failure. Deadwood's behavior 2 | is undefined should malloc() fail. If anyone is using MaraDNS in an 3 | environment where a kernel allows malloc() to return a NULL pointer, it is 4 | best to wrap MaraDNS in a script that restarts it when it terminates. If 5 | using Deadwood in an environment where malloc() may return NULL, please 6 | replace the dw_malloc() macro with a function that can properly handle 7 | a malloc() failure. 8 | -------------------------------------------------------------------------------- /doc/en/misc/js-manpages/README: -------------------------------------------------------------------------------- 1 | This is documentation for the js string library, which is a buffer-overflow 2 | resistant string library which MaraDNS uses. 3 | 4 | Note that this documentation does not have all functions that the string 5 | library has, since this documentation actually predates MaraDNS--my 6 | previous project, the Kiwi spam-protection package, used the same 7 | string library, and this documentation has (by and large) not been 8 | updated since then. 9 | 10 | -------------------------------------------------------------------------------- /doc/en/misc/vim.cheatsheet: -------------------------------------------------------------------------------- 1 | In order to disable all of the "smart" indenting, you need to do 2 | the following incantations 3 | 4 | :set noai 5 | :set noautoindent 6 | :set nosmartindent 7 | :set nocindent 8 | :set comments="" 9 | :set indentexpr="" 10 | 11 | Ugh. Can you say feature bloat? 12 | -------------------------------------------------------------------------------- /doc/en/source/changelog.ej: -------------------------------------------------------------------------------- 1 | 2 | MaraDNS Change log 3 | bgcolor="#FFFFCC" text="#660000" link=#888888 vlink=#888888 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /doc/en/source/coLunacyDNS.ej: -------------------------------------------------------------------------------- 1 | ../../../coLunacyDNS/doc/coLunacyDNS.ej -------------------------------------------------------------------------------- /doc/en/source/copy: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /doc/en/source/credits.ej: -------------------------------------------------------------------------------- 1 | 2 | MaraDNS credits file 3 | 4 | 5 | 6 | 7 | One of the things that is very delightful about writing open-source 8 | software is the incredible amount of help people have been offering 9 | me with MaraDNS. Numerous people have provided invaluable assistance 10 | with filing bug reports, making usability suggestions, providing 11 | patches and reports with respect to running MaraDNS on other operating 12 | systems, and otherwise making MaraDNS a superior program. 13 |

14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /doc/en/source/ej.template: -------------------------------------------------------------------------------- 1 | 2 | HTML title 3 | manpage_title section "Date" MARADNS "MaraDNS reference" 4 | 5 | 6 | 7 | 8 | Body of document 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /doc/en/source/example_mararc.ej: -------------------------------------------------------------------------------- 1 | 2 | MaraDNS FAQ 3 | 4 | 5 | 6 | 7 |

 8 | 
 9 | 
10 | 11 | 12 | -------------------------------------------------------------------------------- /doc/en/source/example_simple_csv1: -------------------------------------------------------------------------------- 1 | # Example CSV1 zone file 2 | 3 | # This is what is known as a SOA record. All zone files need to have one 4 | # of these 5 | S%|86400|%|hostmaster@%|19771108|7200|3600|604800|1800 6 | # These are known as authoritative NS records. All zone files need one or 7 | # more of these 8 | N%|86400|ns1.% 9 | N%|86400|ns2.% 10 | 11 | # Some IP addresses 12 | Ans1.%|86400|10.0.0.1 13 | Ans2.%|86400|192.168.0.1 14 | A%|86400|10.1.2.3 15 | Amx.%|86400|10.1.2.4 16 | 17 | # An 'IN MX' record 18 | @%|86400|10|mx.% 19 | 20 | -------------------------------------------------------------------------------- /doc/en/source/faq.ej: -------------------------------------------------------------------------------- 1 | 2 | MaraDNS FAQ 3 | bgcolor="#FFFFCC" text="#660000" link=#888888 vlink=#888888 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /doc/en/tutorial/make.index: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Since the twerps at Sourceforge not longer allow directory indexes, 4 | # this script makes them for me. 5 | 6 | for dir in `find . -type d` ; do 7 | cd $dir 8 | ls -l | grep -v '^total' | \ 9 | perl -pe 's/([\w\.\-]+)$/$1<\/A>
/' > index.html 10 | cd ~- 11 | done 12 | -------------------------------------------------------------------------------- /git-cheatsheet: -------------------------------------------------------------------------------- 1 | Code update: 2 | 3 | git commit -a -m 'Some reason for code change' 4 | git push -u origin master 5 | 6 | -- 7 | 8 | Pull repo on new machine: 9 | 10 | git clone https://github.com/samboy/MaraDNS 11 | 12 | -- 13 | 14 | Have permission to push repo on new machine: 15 | 16 | git remote set-url origin ssh://git@github.com/samboy/MaraDNS.git 17 | 18 | [Replace this with your github username, and make sure to add your 19 | ssh key to your github account as per the instructions at 20 | https://help.github.com/articles/generating-ssh-keys ] 21 | -------------------------------------------------------------------------------- /locale.de: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Set the language for some translated messages to German 4 | cd server 5 | rm MaraBigHash_locale.h 6 | ln -s MaraBigHash_de.h MaraBigHash_locale.h 7 | rm MaraDNS_locale.h 8 | ln -s MaraDNS_de.h MaraDNS_locale.h 9 | cd ../tcp 10 | rm getzone_locale.h 11 | ln -s getzone_de.h getzone_locale.h 12 | -------------------------------------------------------------------------------- /locale.en: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Set the language for various messages to English 4 | 5 | cd server 6 | rm MaraBigHash_locale.h 7 | ln -s MaraBigHash_en.h MaraBigHash_locale.h 8 | rm MaraDNS_locale.h 9 | ln -s MaraDNS_en.h MaraDNS_locale.h 10 | cd ../tcp 11 | rm getzone_locale.h 12 | ln -s getzone_en.h getzone_locale.h 13 | 14 | -------------------------------------------------------------------------------- /locale.es: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Set the language for some translated messages to Spanish 4 | cd server 5 | rm MaraBigHash_locale.h 6 | ln -s MaraBigHash_es.h MaraBigHash_locale.h 7 | cd ../tcp 8 | rm getzone_locale.h 9 | ln -s getzone_es.h getzone_locale.h 10 | -------------------------------------------------------------------------------- /locale.pt_br: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Set the language for various messages to Brasil Portuguese 4 | 5 | cd server 6 | rm MaraBigHash_locale.h 7 | ln -s MaraBigHash_pt_br.h MaraBigHash_locale.h 8 | rm MaraDNS_locale.h 9 | ln -s MaraDNS_pt_br.h MaraDNS_locale.h 10 | cd ../tcp 11 | rm getzone_locale.h 12 | ln -s getzone_pt_br.h getzone_locale.h 13 | 14 | -------------------------------------------------------------------------------- /locale.ru: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/sh 3 | 4 | # Set the language for various messages to English 5 | 6 | cd server 7 | rm MaraBigHash_locale.h 8 | ln -s MaraBigHash_ru.h MaraBigHash_locale.h 9 | rm MaraDNS_locale.h 10 | ln -s MaraDNS_ru.h MaraDNS_locale.h 11 | cd ../tcp 12 | rm getzone_locale.h 13 | ln -s getzone_ru.h getzone_locale.h 14 | -------------------------------------------------------------------------------- /maradns-win32/Deadwood.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/maradns-win32/Deadwood.exe -------------------------------------------------------------------------------- /maradns-win32/askmara.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/maradns-win32/askmara.exe -------------------------------------------------------------------------------- /maradns-win32/blockHashMake.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/maradns-win32/blockHashMake.exe -------------------------------------------------------------------------------- /maradns-win32/blockHashRead.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/maradns-win32/blockHashRead.exe -------------------------------------------------------------------------------- /maradns-win32/coLunacyDNS.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/maradns-win32/coLunacyDNS.exe -------------------------------------------------------------------------------- /maradns-win32/install.bat: -------------------------------------------------------------------------------- 1 | Deadwood.exe --install 2 | net start Deadwood 3 | Pause 4 | 5 | -------------------------------------------------------------------------------- /maradns-win32/maradns.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/maradns-win32/maradns.exe -------------------------------------------------------------------------------- /maradns-win32/uninstall.bat: -------------------------------------------------------------------------------- 1 | net stop deadwood 2 | Deadwood.exe --remove 3 | pause 4 | 5 | -------------------------------------------------------------------------------- /qual/Makefile: -------------------------------------------------------------------------------- 1 | DOBJECTS=qual_timestamp.o 2 | JOBJS=../libs/JsStr.o ../libs/JsStrOS.o ../libs/JsStrCP.o 3 | OBJECTS=$(DOBJECTS) 4 | 5 | FLAGS = -DAUTHONLY 6 | 7 | all: qual_timestamp.o 8 | 9 | clean: 10 | rm -f qual_timestamp.o 11 | 12 | qual_timestamp.o: qual_timestamp.c ../libs/JsStr.h ../libs/MaraHash.h ../MaraDns.h 13 | $(CC) -c $(FLAGS) -o qual_timestamp.o qual_timestamp.c 14 | 15 | -------------------------------------------------------------------------------- /qual/Makefile.nothreads: -------------------------------------------------------------------------------- 1 | DOBJECTS=qual_timestamp.o 2 | JOBJS=../libs/JsStr.o ../libs/JsStrOS.o ../libs/JsStrCP.o 3 | OBJECTS=$(DOBJECTS) 4 | 5 | FLAGS = -DAUTHONLY 6 | 7 | all: qual_timestamp.o 8 | 9 | clean: 10 | rm -f qual_timestamp.o 11 | 12 | qual_timestamp.o: qual_timestamp.c ../libs/JsStr.h ../libs/MaraHash.h ../MaraDns.h 13 | $(CC) -c $(FLAGS) -o qual_timestamp.o qual_timestamp.c 14 | 15 | -------------------------------------------------------------------------------- /sqa/regressions/README.posix: -------------------------------------------------------------------------------- 1 | The scripts in this directory are not POSIX compliant. In particular, 2 | they use '&' to place a program in the background, so we can run the 3 | maradns daemon while making some queries. 4 | 5 | This is not an issue in the real world: ksh, dash, Busybox's ash, pdksh, and 6 | bash all have backgrounding compatible with the syntax used in these 7 | scripts. 8 | 9 | POSIX is outdated in a lot of ways. For example, the POSIX spec includes 10 | commands for UUCP networking; this is the only networking supported in the 11 | spec. UUCP has been dead for years. 12 | -------------------------------------------------------------------------------- /sqa/regressions/any_case/README: -------------------------------------------------------------------------------- 1 | Any and case sensitivity bug 2 | 3 | Description: DNS ANY queries were incorrectly case-sensitive 4 | 5 | Expected output of test: ANY query for WwW.eXaMpLe.CoM resolves 6 | 7 | Presence of bug output: ANY query for WwW.eXaMpLe.CoM does not resolve 8 | 9 | When fixed: 1.2.12.04 10 | -------------------------------------------------------------------------------- /sqa/regressions/any_case/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This tests for ANY and case-insensitivity 4 | 5 | killall maradns > /dev/null 2>&1 # Don't run this test on Solaris 6 | cat > mararc << EOF 7 | chroot_dir="$( pwd )" 8 | ipv4_bind_addresses="127.0.0.1" 9 | csv2 = {} 10 | csv2["example.com."] = "db.example.com" 11 | verbose_level = 0 12 | EOF 13 | 14 | cat > db.example.com << EOF 15 | www.% A 10.1.2.3 16 | EOF 17 | 18 | # OK, test the server 19 | ../../../server/maradns -f mararc > /dev/null 2>&1 & 20 | sleep 1 21 | ../../../tools/askmara ZWwW.eXaMpLe.CoM. 22 | sleep 1 23 | killall maradns > /dev/null 2>&1 24 | rm mararc 25 | rm db.example.com 26 | -------------------------------------------------------------------------------- /sqa/regressions/any_case/output.fail: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Remote server said: NAME ERROR 3 | # Question: ZWwW.eXaMpLe.CoM. 4 | # NS replies: 5 | #example.com. +86400 soa example.com. hostmaster@example.com. 149219830 7200 3600 604800 3600 6 | # AR replies: 7 | -------------------------------------------------------------------------------- /sqa/regressions/any_case/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: ZWwW.eXaMpLe.CoM. 3 | WwW.eXaMpLe.CoM. +86400 a 10.1.2.3 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /sqa/regressions/askmara.bug/README: -------------------------------------------------------------------------------- 1 | askmara.bug 2 | 3 | Description: In certain cases, askmara would be in an infinite loop 4 | 5 | Expected output of test: askmara exits, noting an invalid packet 6 | 7 | Presence of bug output: askmara gets put in in infinite loop 8 | 9 | When fixed: 1.3.07.02 10 | -------------------------------------------------------------------------------- /sqa/regressions/askmara.bug/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This tests for a known bug in askmara 4 | 5 | cc -o bad.packet bad.packet.c > /dev/null 2>&1 6 | 7 | # OK, test the server 8 | ./bad.packet > /dev/null & 9 | sleep 1 10 | ../../../tools/askmara -t 1 Tt1.example.com. > /dev/null 11 | ../../../tools/askmara -t 1 Tt1.example.com. > /dev/null 12 | ../../../tools/askmara -t 1 Tt1.example.com. 13 | sleep 1 14 | killall bad.packet > /dev/null 2>&1 15 | sleep 1 16 | rm bad.packet 17 | -------------------------------------------------------------------------------- /sqa/regressions/askmara.bug/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Tt1.example.com. 3 | t1.example.com. +86400 txt '12345678901234';'67890123456789012345678901234567890123456789012345678';'012345678901234567890123456789012345678901234567890123456';'8901234567890123456789012345678901234567890123456789012';'456789012345678901234567890123456789012345678901234';'67890123456789012345678901234567890'\xb4'12345678901234567';'90123456789012345678901234567890123456789012345678901234';'67890123456789012345678901234567890123456789012345678';Problem reading TXT record 4 | -------------------------------------------------------------------------------- /sqa/regressions/bad_query/README: -------------------------------------------------------------------------------- 1 | Bogus invalid query message bug 2 | 3 | Description: DNS lookups would incorrectly give out invalid query responses 4 | in addition to the desired answer 5 | 6 | Expected output of test: No extra invalid query message 7 | 8 | Presence of bug output: Extra invalid query message 9 | 10 | When fixed: 1.2.12.03 11 | 12 | NOTE: Should something break DNS recursion, this is the first SQA test case 13 | to fail. 14 | -------------------------------------------------------------------------------- /sqa/regressions/bad_query/output.fail: -------------------------------------------------------------------------------- 1 | Rcode of answer: 0 2 | Rcode of answer: 2 3 | Number of answers received: 2 4 | 5 | -------------------------------------------------------------------------------- /sqa/regressions/bad_query/output.success: -------------------------------------------------------------------------------- 1 | Rcode of answer: 0 2 | Number of answers received: 1 3 | 4 | -------------------------------------------------------------------------------- /sqa/regressions/blank_zone/README: -------------------------------------------------------------------------------- 1 | This test makes sure that a zone with only a SOA and NS record works (bug 2 | found by Jan Hrdonka) 3 | 4 | -------------------------------------------------------------------------------- /sqa/regressions/blank_zone/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Remote server said: NAME ERROR 3 | # Question: Awww.example.com. 4 | # NS replies: 5 | #example.com. +7200 soa localhost. root@localhost. 2007080801 7200 600 1209600 3600 6 | # AR replies: 7 | -------------------------------------------------------------------------------- /sqa/regressions/borked_zone/README: -------------------------------------------------------------------------------- 1 | This test makes sure MaraDNS can handle poorly designed zones where 2 | the NS servers for a sub-zone list some of the servers for a super zone 3 | (yes, some DNS administrators are this dumb). 4 | 5 | -------------------------------------------------------------------------------- /sqa/regressions/def_zone_nx/README: -------------------------------------------------------------------------------- 1 | Default zonefile and incorrect NXDOMAINs bug 2 | 3 | Description: Default zone files incorrectly returned NXDOMAIN results 4 | 5 | Expected output of test: "not there" DNS reply 6 | 7 | Presence of bug output: NXDOMAIN ("NAME ERROR") DNS reply 8 | 9 | When fixed: 1.3.05; 1.2.12.06 10 | 11 | -------------------------------------------------------------------------------- /sqa/regressions/def_zone_nx/output.fail: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Remote server said: NAME ERROR 3 | # Question: @www.example.com. 4 | # NS replies: 5 | www.example.com. +86400 soa example.com. hostmaster@example.com. 1 2 3 4 5 6 | # AR replies: 7 | -------------------------------------------------------------------------------- /sqa/regressions/def_zone_nx/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: @www.example.com. 3 | # NS replies: 4 | www.example.com. +86400 soa example.com. hostmaster@example.com. 1 2 3 4 5 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /sqa/regressions/delegation_glue/README: -------------------------------------------------------------------------------- 1 | Delegation glue 2 | 3 | Description: This verifiees that MaraDNS correctly shows glue records 4 | when delegating nameservers 5 | 6 | Expected output of test: A (IP) query for www.sub.example.com gives ip for 7 | ns.sub.example.com 8 | 9 | Presence of bug output: A (IP) query for www.sub.example.com does not give 10 | ip for ns.sub.example.com 11 | 12 | When fixed: Never a known bug; but a useful regression to have 13 | -------------------------------------------------------------------------------- /sqa/regressions/delegation_glue/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.sub.example.com. 3 | # NS replies: 4 | #sub.example.com. +86400 ns ns.sub.example.com. 5 | # AR replies: 6 | #ns.sub.example.com. +86400 a 127.0.0.4 7 | -------------------------------------------------------------------------------- /sqa/regressions/do.tests: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # No more recursion 4 | sh ./do.tests.authonly 5 | -------------------------------------------------------------------------------- /sqa/regressions/future/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc dictionary variable future works (in other 2 | words, for 1.3.07, does nothing but parses correctly) 3 | -------------------------------------------------------------------------------- /sqa/regressions/future/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/future/output.test: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/improper_rotation/README: -------------------------------------------------------------------------------- 1 | Improper rotation of CNAME record bug 2 | 3 | Found by: Michael Krieger 4 | 5 | Description: CNAME records were improperly rotated when a NS query for the 6 | CNAME record was sent. 7 | 8 | Expected output of test: The first RR in the DNS reply is the CNAME record 9 | 10 | Presence of bug output: The first RR in the DNS reply is an NS record 11 | 12 | Workaround: Add "max_ar_chain = 2" to one's mararc file in order to disable 13 | RR rotation; or just update maradns 14 | 15 | When fixed: 1.0.41; 1.2.12.08; 1.3.07.04 16 | 17 | -------------------------------------------------------------------------------- /sqa/regressions/improper_rotation/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Acname.example.com. 3 | cname.example.com. +86400 cname www.example.com. 4 | #www.example.com. +86400 a 10.1.2.3 5 | # NS replies: 6 | #example.com. +86400 ns ns1.example.com. 7 | #example.com. +86400 ns ns2.example.com. 8 | # AR replies: 9 | #ns1.example.com. +86400 a 10.1.2.4 10 | #ns2.example.com. +86400 a 10.1.2.5 11 | -------------------------------------------------------------------------------- /sqa/regressions/loc/README: -------------------------------------------------------------------------------- 1 | Loc and precsion that is a multiple of 10 bug 2 | 3 | Description: LOC records could not have a precision of 10 4 | 5 | Expected output of test: LOC query for example.com resolves with dig 6 | 7 | Presence of bug output: LOC query for example.com does not resolve with dig 8 | (sh ./do.test will output nothing) 9 | 10 | When fixed: 1.3.03; 1.2.12.05 11 | -------------------------------------------------------------------------------- /sqa/regressions/loc/output.success: -------------------------------------------------------------------------------- 1 | example.com. 86400 IN LOC 19 31 2.123 N 98 3 4.000 W 2000.00m 10m 100m 1000m 2 | -------------------------------------------------------------------------------- /sqa/regressions/long.chunk/README: -------------------------------------------------------------------------------- 1 | long.chunk 2 | 3 | Descrption: MaraDNS would not always correctly report that a TXT chunk 4 | was too long. 5 | 6 | Expected output of test: MaraDNS complains that TXT chunk is too long. 7 | 8 | Presence of bug output: MaraDNS loads the zone file without reporting an 9 | error. 10 | 11 | When fixed: 1.3.07.02 12 | -------------------------------------------------------------------------------- /sqa/regressions/long.chunk/db.example.com: -------------------------------------------------------------------------------- 1 | t5.% TXT 2 | '1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890''123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890' 3 | '1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890' ~ 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_csv1/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc dictionary variable csv2 works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_csv1/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.0.0.2 4 | # NS replies: 5 | #example.com. +86400 ns ns.example.com. 6 | # AR replies: 7 | #ns.example.com. +86400 a 10.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_csv2/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc dictionary variable csv2 works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_csv2/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This test to make sure the csv2 dictionary variable works 4 | 5 | killall maradns > /dev/null 2>&1 # Don't run this test on Solaris 6 | cat > mararc << EOF 7 | chroot_dir="$( pwd )" 8 | ipv4_bind_addresses="127.0.0.1" 9 | csv2 = {} 10 | csv2["example.com."] = "db.example.com" 11 | EOF 12 | 13 | cat > db.example.com << EOF 14 | www.% A 10.1.2.3 15 | EOF 16 | 17 | # OK, test the server 18 | ../../../server/maradns -f mararc > /dev/null 2>&1 & 19 | sleep 1 20 | ../../../tools/askmara Awww.example.com. 21 | sleep 1 22 | killall maradns > /dev/null 2>&1 23 | rm mararc 24 | rm db.example.com 25 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_csv2/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_ipv4_alias/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc dictionary variable ipv4_alias works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_ipv4_alias/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_root_servers/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc dictionary variable root_servers works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_root_servers/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.2 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 127.10.1.1 4 | # NS replies: 5 | # AR replies: 6 | 7 | # Querying the server with the IP 127.0.0.2 8 | # Question: Awww.example.net. 9 | www.example.net. +86400 a 127.10.1.2 10 | # NS replies: 11 | # AR replies: 12 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_upstream_servers/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc dictionary variable root_servers works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_d_upstream_servers/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.4 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 127.10.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_admin_acl/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable admin_acl works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_admin_acl/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This test to make sure the csv2 dictionary variable works 4 | 5 | killall maradns > /dev/null 2>&1 # Don't run this test on Solaris 6 | cat > mararc << EOF 7 | chroot_dir="$( pwd )" 8 | ipv4_bind_addresses="127.0.0.1" 9 | admin_acl="127.0.0.1/24" 10 | EOF 11 | 12 | # OK, test the server 13 | ../../../server/maradns -f mararc > /dev/null 2>&1 & 14 | sleep 1 15 | ../../../tools/askmara Tversion.maradns. | sed 's/3\.4[0-9\.]*//' | \ 16 | sed 's/Q[0-9\.]*//' 17 | sleep 1 18 | killall maradns > /dev/null 2>&1 19 | rm mararc 20 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_admin_acl/output.success: -------------------------------------------------------------------------------- 1 | # uerying the server with the IP 127.0.0.1 2 | # uestion: Tversion.maradns. 3 | version.maradns. +770616 txt 'MaraDNS version ' 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_bind_address/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable bind_address works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_bind_address/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This test to make sure the csv2 dictionary variable works 4 | 5 | killall maradns > /dev/null 2>&1 # Don't run this test on Solaris 6 | cat > mararc << EOF 7 | chroot_dir="$( pwd )" 8 | bind_address="127.0.0.1" 9 | csv2 = {} 10 | csv2["example.com."] = "db.example.com" 11 | EOF 12 | 13 | cat > db.example.com << EOF 14 | www.% A 10.1.2.3 15 | EOF 16 | 17 | # OK, test the server 18 | ../../../server/maradns -f mararc > /dev/null 2>&1 & 19 | sleep 1 20 | ../../../tools/askmara Awww.example.com. 21 | sleep 1 22 | killall maradns > /dev/null 2>&1 23 | rm mararc 24 | rm db.example.com 25 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_bind_address/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_bind_star_handling/README: -------------------------------------------------------------------------------- 1 | This test makes sure the bind_star_handling mararc variable correctly 2 | functions. 3 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_chroot_dir/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable chroot_dir works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_chroot_dir/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This test to make sure the csv2 dictionary variable works 4 | 5 | killall maradns > /dev/null 2>&1 # Don't run this test on Solaris 6 | cat > mararc << EOF 7 | chroot_dir="$( pwd )" 8 | ipv4_bind_addresses="127.0.0.1" 9 | csv2 = {} 10 | csv2["example.com."] = "db.example.com" 11 | EOF 12 | 13 | cat > db.example.com << EOF 14 | www.% A 10.1.2.3 15 | EOF 16 | 17 | # OK, test the server 18 | ../../../server/maradns -f mararc > /dev/null 2>&1 & 19 | sleep 1 20 | ../../../tools/askmara Awww.example.com. 21 | sleep 1 22 | killall maradns > /dev/null 2>&1 23 | rm mararc 24 | rm db.example.com 25 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_chroot_dir/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_csv2_default_zonefile/README: -------------------------------------------------------------------------------- 1 | This makes sure that the mararc variable csv2_default_zonefile works 2 | correctly. 3 | 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_csv2_synthip_list/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable csv2_synthip_list works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_csv2_synthip_list/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-0a010203.example.com. 6 | #example.com. +86400 ns synth-ip-0a010204.example.com. 7 | # AR replies: 8 | #synth-ip-0a010203.example.com. +86400 a 10.1.2.3 9 | #synth-ip-0a010204.example.com. +86400 a 10.1.2.4 10 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_csv2_tilde_handling/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable csv2_tilde_handling works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_debug_msg_level/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable debug_msg_level works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_default_rrany_set/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable default_rrany_set works and 2 | does nothing. 3 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_dns_port/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables dns_port and upstream_port work. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_dns_port/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.4 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 127.10.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_dos_protection_level/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable dos_protection_level works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_handle_noreply/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable handle_noreply works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_hide_disclaimer/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable hide_disclaimer works. 2 | 3 | Note that this test is performed only to make sure this mararc variable 4 | works, and that running this test does not invalidate MaraDNS' disclaimer. 5 | 6 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_hide_disclaimer/db.example.com: -------------------------------------------------------------------------------- 1 | www.% A 10.1.2.3 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_hide_disclaimer/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This test to make sure the csv2 dictionary variable works 4 | 5 | killall maradns > /dev/null 2>&1 # Don't run this test on Solaris 6 | cat > mararc << EOF 7 | chroot_dir="$( pwd )" 8 | ipv4_bind_addresses="127.0.0.1" 9 | hide_disclaimer="YES" 10 | max_mem = 123456789 11 | EOF 12 | 13 | # OK, test the server 14 | ../../../server/maradns -f mararc & 15 | sleep 5 16 | killall maradns > /dev/null 2>&1 17 | rm mararc 18 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_hide_disclaimer/output.success: -------------------------------------------------------------------------------- 1 | Log: Root directory changed 2 | Log: Binding to address 127.0.0.1 3 | Log: Socket opened on UDP port 53 4 | Log: Root privileges dropped 5 | MaraDNS maximum memory allocation set to 123456789 bytes 6 | Log: All RRs have been loaded 7 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_ipv4_bind_addresses/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable ipv4_bind_addresses works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_ipv4_bind_addresses/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This test to make sure the csv2 dictionary variable works 4 | 5 | killall maradns > /dev/null 2>&1 # Don't run this test on Solaris 6 | cat > mararc << EOF 7 | chroot_dir="$( pwd )" 8 | ipv4_bind_addresses="127.0.0.1" 9 | csv2 = {} 10 | csv2["example.com."] = "db.example.com" 11 | EOF 12 | 13 | cat > db.example.com << EOF 14 | www.% A 10.1.2.3 15 | EOF 16 | 17 | # OK, test the server 18 | ../../../server/maradns -f mararc > /dev/null 2>&1 & 19 | sleep 1 20 | ../../../tools/askmara Awww.example.com. 21 | sleep 1 22 | killall maradns > /dev/null 2>&1 23 | rm mararc 24 | rm db.example.com 25 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_ipv4_bind_addresses/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_ipv6_bind_address/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable ipv4_bind_addresses works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_ipv6_bind_address/output.success: -------------------------------------------------------------------------------- 1 | 2 | ; (1 server found) 3 | ;; Got answer: 4 | 5 | ;; QUESTION SECTION: 6 | ;www.example.com. IN A 7 | 8 | ;; ANSWER SECTION: 9 | www.example.com. 86400 IN A 10.1.2.3 10 | 11 | ;; AUTHORITY SECTION: 12 | example.com. 86400 IN NS synth-ip-7f000001.example.com. 13 | 14 | ;; ADDITIONAL SECTION: 15 | synth-ip-7f000001.example.com. 86400 IN A 127.0.0.1 16 | 17 | ;; SERVER: fd4d:6172:6144:4e53::1#53(fd4d:6172:6144:4e53::1) 18 | ;; MSG SIZE rcvd: 97 19 | 20 | done 21 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_long_packet_ipv4/README: -------------------------------------------------------------------------------- 1 | This test makes sure that long_packet_ipv4 works 2 | 3 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_long_packet_ipv4/db.example.com: -------------------------------------------------------------------------------- 1 | www.% A 10.1.1.1 2 | long.% TXT 3 | '1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890''123456789012345678901234567890123456789012345678901234567890';'1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890';\ 4 | '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' 5 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_maradns_gid/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables maradns_uid and maradns_gid work 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_maradns_gid/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | 9 | 12345 54321 maradns 10 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_maradns_uid/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables maradns_uid and maradns_gid work 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_maradns_uid/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | 9 | 12345 54321 maradns 10 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_max_ar_chain/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable max_ar_chain works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_max_chain/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable max_chain works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_max_glueless_level/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables max_glueless_level and 2 | max_queries_total work. 3 | 4 | Note that it *appears* that the variables may not work. However, I'm not 5 | interested in non-critical bugfixes with the current recursive code. This 6 | test is a good test, however, for the next-generation recursive code, since 7 | it sees how many levels of indirection a DNS server is willing to do. 8 | 9 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_max_queries_total/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables max_glueless_level and 2 | max_queries_total work. 3 | 4 | Note that it *appears* that the variables may not work. However, I'm not 5 | interested in non-critical bugfixes with the current recursive code. This 6 | test is a good test, however, for the next-generation recursive code, since 7 | it sees how many levels of indirection a DNS server is willing to do. 8 | 9 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_max_total/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable max_total works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_min_ttl/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables min_ttl, min_ttl_cname, and 2 | min_visible_ttl work. 3 | 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_min_ttl_cname/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables min_ttl, min_ttl_cname, and 2 | min_visible_ttl work. 3 | 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_min_visible_ttl/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables min_ttl, min_ttl_cname, and 2 | min_visible_ttl work. 3 | 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_recurse_delegation/README: -------------------------------------------------------------------------------- 1 | This test makes sure that the recurse_delegation mararc variable 2 | correctly works. 3 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_recursive_acl/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable recursive_acl works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_recursive_acl/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.2 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 127.10.1.1 4 | # NS replies: 5 | # AR replies: 6 | 7 | # Querying the server with the IP 127.0.0.2 8 | # Remote server said: REFUSED 9 | # NS replies: 10 | # AR replies: 11 | 12 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_remote_admin/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable remote_admin works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_remote_admin/db.example.com: -------------------------------------------------------------------------------- 1 | www.% A 10.1.2.3 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_spammers/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable recursive_acl works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_spammers/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.2 2 | # Remote server said: SERVER FAILURE 3 | # Question: Awww.example.net. 4 | # NS replies: 5 | # AR replies: 6 | 7 | # Querying the server with the IP 127.0.0.2 8 | # Question: Awww.example.net. 9 | www.example.net. +86400 a 127.10.1.2 10 | # NS replies: 11 | # AR replies: 12 | 13 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_synth_soa_origin/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable synth_soa_origin works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_synth_soa_origin/output.success: -------------------------------------------------------------------------------- 1 | server 2 | said: 3 | 4 | 5 | foo.bar. 6 | 7 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_synth_soa_serial/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable synth_soa_serial works. 2 | 3 | Note that this test is assumed to be run after September 1, 2007 and 4 | before the year 2300. 5 | 6 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_synth_soa_serial/output.success: -------------------------------------------------------------------------------- 1 | 2 | 0 3 | 0 4 | 1 5 | 1 6 | 1 7 | 1 8 | 9 | 10 | 0 11 | 0 12 | 1 13 | 1 14 | 0 15 | 1 16 | 17 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_tcp_convert_server/README: -------------------------------------------------------------------------------- 1 | This test makes sure that long_packet_ipv4 works 2 | 3 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_tcp_convert_server/db.example.com: -------------------------------------------------------------------------------- 1 | www.% A 10.1.1.1 2 | long.% TXT 3 | '1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890''123456789012345678901234567890123456789012345678901234567890';'1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890123456789012345678901234567890''1234567890123456789012345678901234567890';\ 4 | '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' 5 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_timestamp_type/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable timestamp_type works. 2 | 3 | This test has to be done by hand. 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_timestamp_type/db.example.com: -------------------------------------------------------------------------------- 1 | www.% A 10.1.2.3 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_timestamp_type/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo just run the perform.test script by hand 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_timestamp_type/output.success: -------------------------------------------------------------------------------- 1 | just run the perform.test script by hand 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_upstream_port/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variables dns_port and upstream_port work. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_upstream_port/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.4 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 127.10.1.1 4 | # NS replies: 5 | # AR replies: 6 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_verbose_level/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable verbose_level works. 2 | 3 | Note that this test has to be run by hand. 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_verbose_level/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo just run the perform.test script by hand 4 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_verbose_level/output.success: -------------------------------------------------------------------------------- 1 | just run the perform.test script by hand 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_verbose_query/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable verbose_query works. 2 | 3 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_verbose_query/output.success: -------------------------------------------------------------------------------- 1 | 1 1 www.example.com. 2 | -------------------------------------------------------------------------------- /sqa/regressions/mararc_n_zone_transfer_acl/README: -------------------------------------------------------------------------------- 1 | This test makes sure the mararc variable zone_transfer_acl works. 2 | -------------------------------------------------------------------------------- /sqa/regressions/noat_parse_bug/README: -------------------------------------------------------------------------------- 1 | noat parse bug 2 | 3 | Description: DNS SOA records without an at in the email contact for a domain 4 | did not correctly parse 5 | 6 | Expected output of test: SOA query for example.com resolves 7 | 8 | Presence of bug output: SOA query for example.com does not resolve 9 | 10 | When fixed: 1.2.11 11 | -------------------------------------------------------------------------------- /sqa/regressions/noat_parse_bug/output.fail: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns ns1.example.com. 6 | # AR replies: 7 | #ns1.example.com. +86400 a 127.0.0.1 8 | # Querying the server with the IP 127.0.0.1 9 | # Question: Sexample.com. 10 | # Hard Error: Error reading rr in AN section 11 | -------------------------------------------------------------------------------- /sqa/regressions/noat_parse_bug/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns ns1.example.com. 6 | # AR replies: 7 | #ns1.example.com. +86400 a 127.0.0.1 8 | # Querying the server with the IP 127.0.0.1 9 | # Question: Sexample.com. 10 | example.com. +86400 soa example.com. hostmaster@example.com. 1 7200 3600 604800 1800 11 | # NS replies: 12 | example.com. +86400 ns ns1.example.com. 13 | # AR replies: 14 | #ns1.example.com. +86400 a 127.0.0.1 15 | -------------------------------------------------------------------------------- /sqa/regressions/noise/README: -------------------------------------------------------------------------------- 1 | noise 2 | 3 | Descrption: MaraDNS would leak memory when getting an invalid DNS packet. 4 | 5 | Expected output of test: MaraDNS does not leak memory 6 | 7 | Presence of bug output: MaraDNS leaks memory 8 | 9 | When fixed: 1.3.03; 1.2.12.04 10 | 11 | Note: Valgrind needed to run this test 12 | -------------------------------------------------------------------------------- /sqa/regressions/noise/clean.up: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -f sendp1 mararc 4 | -------------------------------------------------------------------------------- /sqa/regressions/noise/do.compile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cc -g -o sendnoise sendnoise.c ../../../libs/JsStr.o ../../../libs/JsStrOS.o ../../../libs/JsStrCP.o ../../../libs/MaraHash.o ../../../dns/Queries.o ../../../dns/Compress.o ../../../dns/bobbit.o ../../../dns/Decompress.o ../../../rng/rng-api-fst.o ../../../rng/rng-alg-fst.o ../../../parse/ParseMaraRc.o ../../../parse/ParseCsv1.o ../../../parse/ParseIpAcl.o ../../../server/timestamp.o 4 | -------------------------------------------------------------------------------- /sqa/regressions/noise/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if test ! -e sendnoise ; then 4 | ./do.compile 5 | fi 6 | 7 | cat > mararc << EOF 8 | chroot_dir="$( /bin/pwd )" 9 | recursive_acl="127.0.0.1/16" 10 | ipv4_bind_addresses="127.0.0.1" 11 | max_mem = 100000000 12 | EOF 13 | 14 | valgrind ../../../server/maradns -f mararc 2>&1 | \ 15 | fgrep 'definitely lost' | awk '{print $4}' & 16 | echo wait 5 seconds 17 | sleep 5 18 | for a in 1 2 3 4 5 ; do 19 | ./sendnoise Awww${a}.example.com. 127.0.0.1 > /dev/null 20 | echo wait 1 second 21 | sleep 1 22 | done 23 | kill $( ps auxw | grep maradns | grep -v grep | awk '{print $2}' ) 24 | 25 | -------------------------------------------------------------------------------- /sqa/regressions/noise/output.success: -------------------------------------------------------------------------------- 1 | wait 5 seconds 2 | wait 1 second 3 | wait 1 second 4 | wait 1 second 5 | wait 1 second 6 | wait 1 second 7 | 0 8 | -------------------------------------------------------------------------------- /sqa/regressions/percent_parse_bug/README: -------------------------------------------------------------------------------- 1 | percent parse bug 2 | 3 | Description: DNS records ending in a % immediately followed by an ip did 4 | not correctly parse 5 | 6 | Expected output of test: A query for www.example.com resolves 7 | 8 | Presence of bug output: A query for www.example.com does not resolve 9 | 10 | When fixed: Does not appear to ever have been a bug; maybe more records in a 11 | zone file will trigger it. 12 | -------------------------------------------------------------------------------- /sqa/regressions/percent_parse_bug/output.success: -------------------------------------------------------------------------------- 1 | # Querying the server with the IP 127.0.0.1 2 | # Question: Awww.example.com. 3 | www.example.com. +86400 a 10.1.2.3 4 | # NS replies: 5 | #example.com. +86400 ns synth-ip-7f000001.example.com. 6 | # AR replies: 7 | #synth-ip-7f000001.example.com. +86400 a 127.0.0.1 8 | -------------------------------------------------------------------------------- /sqa/regressions/predator1/README: -------------------------------------------------------------------------------- 1 | predator1 2 | 3 | Description: MaraDNS would leak memory when getting a DNS packet with an 4 | invalid opcode. 5 | 6 | Expected output of test: MaraDNS does not leak memory 7 | 8 | Presence of bug output: MaraDNS leaks memory 9 | 10 | When fixed: 1.3.05; 1.2.12.06 11 | 12 | Note: Valgrind needed to run this test 13 | 14 | -------------------------------------------------------------------------------- /sqa/regressions/predator1/clean.up: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -f sendp1 mararc 4 | -------------------------------------------------------------------------------- /sqa/regressions/predator1/do.compile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cc -g -o sendp1 sendp1.c ../../../libs/JsStr.o ../../../libs/JsStrOS.o ../../../libs/JsStrCP.o ../../../libs/MaraHash.o ../../../dns/Queries.o ../../../dns/Compress.o ../../../dns/bobbit.o ../../../dns/Decompress.o ../../../rng/rng-api-fst.o ../../../rng/rng-alg-fst.o ../../../parse/ParseMaraRc.o ../../../parse/ParseCsv1.o ../../../parse/ParseIpAcl.o ../../../server/timestamp.o 4 | -------------------------------------------------------------------------------- /sqa/regressions/predator1/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if test ! -e sendp1 ; then 4 | ./do.compile 5 | fi 6 | 7 | cat > mararc << EOF 8 | chroot_dir="$( /bin/pwd )" 9 | recursive_acl="127.0.0.1/16" 10 | ipv4_bind_addresses="127.0.0.1" 11 | max_mem = 100000000 12 | EOF 13 | 14 | valgrind ../../../server/maradns -f mararc 2>&1 | \ 15 | fgrep 'definitely lost' | awk '{print $4}' & 16 | # cat & 17 | echo wait 5 seconds 18 | sleep 5 19 | for a in 1 2 3 4 5 ; do 20 | ./sendp1 Awww.example.com. 127.0.0.1 > /dev/null 21 | echo wait 1 second 22 | sleep 1 23 | done 24 | kill $( ps auxw | grep maradns | grep -v grep | awk '{print $2}' ) 25 | 26 | -------------------------------------------------------------------------------- /sqa/regressions/predator1/output.success: -------------------------------------------------------------------------------- 1 | wait 5 seconds 2 | wait 1 second 3 | wait 1 second 4 | wait 1 second 5 | wait 1 second 6 | wait 1 second 7 | 0 8 | -------------------------------------------------------------------------------- /sqa/regressions/predator2/README: -------------------------------------------------------------------------------- 1 | predator2 2 | 3 | Description: MaraDNS would leak memory when getting a DNS packet with an 4 | invalid DNS class. 5 | 6 | Expected output of test: MaraDNS does not leak memory 7 | 8 | Presence of bug output: MaraDNS leaks memory 9 | 10 | When fixed: 1.3.05; 1.2.12.06 11 | 12 | Note: Valgrind needed to run this test 13 | 14 | -------------------------------------------------------------------------------- /sqa/regressions/predator2/clean.up: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -f sendp1 mararc 4 | -------------------------------------------------------------------------------- /sqa/regressions/predator2/do.compile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cc -g -o sendp2 sendp2.c ../../../libs/JsStr.o ../../../libs/JsStrOS.o ../../../libs/JsStrCP.o ../../../libs/MaraHash.o ../../../dns/Queries.o ../../../dns/Compress.o ../../../dns/bobbit.o ../../../dns/Decompress.o ../../../rng/rng-api-fst.o ../../../rng/rng-alg-fst.o ../../../parse/ParseMaraRc.o ../../../parse/ParseCsv1.o ../../../parse/ParseIpAcl.o ../../../server/timestamp.o 4 | -------------------------------------------------------------------------------- /sqa/regressions/predator2/do.test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if test ! -e sendp2 ; then 4 | ./do.compile 5 | fi 6 | 7 | cat > mararc << EOF 8 | chroot_dir="$( /bin/pwd )" 9 | recursive_acl="127.0.0.1/16" 10 | ipv4_bind_addresses="127.0.0.1" 11 | max_mem = 100000000 12 | EOF 13 | 14 | valgrind ../../../server/maradns -f mararc 2>&1 | \ 15 | fgrep 'definitely lost' | awk '{print $4}' & 16 | echo wait 5 seconds 17 | sleep 5 18 | for a in 1 2 3 4 5 ; do 19 | ./sendp2 Awww.example.com. 127.0.0.1 > /dev/null 20 | echo wait 1 second 21 | sleep 1 22 | done 23 | kill $( ps auxw | grep maradns | grep -v grep | awk '{print $2}' ) 24 | 25 | -------------------------------------------------------------------------------- /sqa/regressions/predator2/output.success: -------------------------------------------------------------------------------- 1 | wait 5 seconds 2 | wait 1 second 3 | wait 1 second 4 | wait 1 second 5 | wait 1 second 6 | wait 1 second 7 | 0 8 | -------------------------------------------------------------------------------- /sqa/regressions/private_ips/README: -------------------------------------------------------------------------------- 1 | This test makes sure that the synthetic IPs for nameservers are correctly 2 | generated when MaraDNS has both public and private IPs. 3 | -------------------------------------------------------------------------------- /sqa/regressions/ptr_leak/README: -------------------------------------------------------------------------------- 1 | ptr_leak 2 | 3 | Description: MaraDNS would leak memory when making a recursive query for 4 | a PTR record that is a CNAME that doesn't point to an existing 5 | record. 6 | 7 | Expected output of test: MaraDNS does not leak memory 8 | 9 | Presence of bug output: MaraDNS leaks memory 10 | 11 | When fixed: 1.2.12.01 12 | 13 | Note: Valgrind needed to run this test; Valgrind may report 14 | "68 bytes possibly lost" even though memory is not really leaking 15 | 16 | -------------------------------------------------------------------------------- /sqa/regressions/ptr_leak/clean.up: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm mararc 4 | rm db.example.net 5 | -------------------------------------------------------------------------------- /sqa/regressions/ptr_leak/output.success: -------------------------------------------------------------------------------- 1 | wait 5 seconds 2 | wait 5 seconds 3 | 0 4 | -------------------------------------------------------------------------------- /sqa/regressions/rd_val/README: -------------------------------------------------------------------------------- 1 | rd_val 2 | 3 | Description: MaraDNS would not correctly echo the RD bit 4 | 5 | Expected output of test: MaraDNS correctly echos the RD bit sent to MaraDNS 6 | 7 | Presence of bug output: MaraDNS does not correctly echo the RD bit 8 | 9 | When fixed: 1.3.07.07; 1.3.10; 1.2.12.09 10 | 11 | -------------------------------------------------------------------------------- /sqa/regressions/rd_val/output.success: -------------------------------------------------------------------------------- 1 | Recurs desired: 1 2 | Recurs desired: 0 3 | Recurs desired: 1 4 | Recurs desired: 0 5 | Recurs desired: 1 6 | Recurs desired: 0 7 | Recurs desired: 1 8 | Recurs desired: 0 9 | 10 | -------------------------------------------------------------------------------- /sqa/regressions/recurse_delegation/README: -------------------------------------------------------------------------------- 1 | This test makes sure that the recurse_delegation mararc variable 2 | correctly works. 3 | -------------------------------------------------------------------------------- /sqa/regressions/star_handling_1/README: -------------------------------------------------------------------------------- 1 | RFC 1034 anally strict RFC compliance bugs 2 | 3 | Description: MaraDNS was not quite 100% anally correct about RFC1034 4 | star handling 5 | 6 | Expected output of test: see output.success 7 | 8 | Presence of bug output: sh ./do.test output is not the same as output.success 9 | 10 | When fixed: 1.3.06 11 | -------------------------------------------------------------------------------- /sqa/regressions/star_handling_2/README: -------------------------------------------------------------------------------- 1 | bind_star_handling having a value of 1 bugs (yes, I know, in star_handling_1 2 | bind_star_handling has a value of 2; and in star_handling_2, 3 | bind_star_handling has a value of 1. Possibly confusing) 4 | 5 | Description: MaraDNS would sometimes incorrectly return NXDOMAINS when 6 | bind_star_handling had a value of 1 7 | 8 | Expected output of test: see output.success 9 | 10 | Presence of bug output: sh ./do.test output is not the same as output.success 11 | 12 | When fixed: Unknown, but incorrect NXDOMAINS present in 1.2.12.02 13 | -------------------------------------------------------------------------------- /sqa/regressions/star_handling_leak/README: -------------------------------------------------------------------------------- 1 | star_handling_leak 2 | 3 | Description: If the mararc variable bind_star_handling had a value of 2, 4 | MaraDNS would leak memory when resolving a star record whose 5 | resolution is blocked by the presence of another record. 6 | 7 | Expected output of test: MaraDNS does not leak memory 8 | 9 | Presence of bug output: MaraDNS leaks memory 10 | 11 | When fixed: 1.3.06 12 | 13 | Note: Valgrind needed to run this test 14 | -------------------------------------------------------------------------------- /sqa/regressions/star_handling_leak/clean.up: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm mararc 4 | rm db.example.net 5 | -------------------------------------------------------------------------------- /sqa/regressions/star_handling_leak/output.success: -------------------------------------------------------------------------------- 1 | wait 5 seconds 2 | # Remote server said: NAME ERROR 3 | 0 4 | -------------------------------------------------------------------------------- /sqa/regressions/truncation/README: -------------------------------------------------------------------------------- 1 | truncation 2 | 3 | Descrption: This test makes sure that MaraDNS correctly performs RFC2181 4 | compliant truncation. 5 | 6 | Expected output of test: MaraDNS correctly truncates the records, and has 7 | an output that looks like output.success 8 | 9 | Presence of bug output: MaraDNS does not correctly truncate the records, and 10 | has an output that looks like one of the output.fail 11 | files 12 | 13 | When fixed: 1.2.12.02 14 | 15 | -------------------------------------------------------------------------------- /sqa/regressions/zoneserver_doc/README: -------------------------------------------------------------------------------- 1 | This makes sure the example mararc file in the zoneserver page is correct 2 | -------------------------------------------------------------------------------- /sqa/regressions/zoneserver_doc/output.success: -------------------------------------------------------------------------------- 1 | ;www.example.com. IN A 2 | www.example.com. 86400 IN A 10.1.2.3 3 | -------------------------------------------------------------------------------- /tcp/getzone_locale.h: -------------------------------------------------------------------------------- 1 | getzone_en.h -------------------------------------------------------------------------------- /tools/README.Duende: -------------------------------------------------------------------------------- 1 | Nicholas Bamber has added a lot of functionality to Duende. Since this 2 | functionality uses the argp library, and since MaraDNS 2.0.03 is a 3 | bugfix-only release of MaraDNS, I have given this improved Duende the 4 | name "duende-ng.c" in the "tools/" directory. Most MaraDNS users should 5 | use this improved Duende. 6 | 7 | Its new command-line options are documented in the source of duende-ng.c 8 | -------------------------------------------------------------------------------- /tools/example.bind.zonefile: -------------------------------------------------------------------------------- 1 | example.com. 86400 IN SOA ns1.example.com. hostmaster.example.com. ( 2 | 12345 ; serial 3 | 3600 ; refresh 4 | 45 ; retry 5 | 86400 ; expire 6 | 7200 7 | ) 8 | ; example comment 9 | example.com. IN NS ns1.example.com. 10 | ns1 IN A 10.1.2.1 ;name server definition 11 | www IN A 10.1.2.2 ;web server definition 12 | -------------------------------------------------------------------------------- /tools/letsencrypt/certbot.all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | PATH=$PATH:/root/certbot 4 | export PATH 5 | 6 | for a in example.org example.com \ 7 | example.net ; do 8 | ps auxw | grep certbot | grep -v grep | grep -v all | awk ' 9 | {print "kill " $2}' | sh 10 | sleep 5 11 | run.certbot.sh $a 12 | echo DOMAIN $a updated 13 | done 14 | -------------------------------------------------------------------------------- /tools/letsencrypt/db.example.com: -------------------------------------------------------------------------------- 1 | % SOA % email@% 1 7200 3600 604800 1800 ~ 2 | 3 | % NS ns1.% ~ 4 | % NS ns2.% ~ 5 | 6 | ns1.% A 10.1.2.3 ~ 7 | ns2.% A 10.1.2.4 ~ 8 | _acme-challenge.% +30 CNAME example-com.letsencrypt-verify.example.com. ~ 9 | letsencrypt-verify.% NS ns1.letsencrypt-verify.% ~ 10 | ns1.letsencrypt-verify.% A 10.1.2.3 ~ 11 | 12 | % 10.2.2.2 ~ 13 | 14 | -------------------------------------------------------------------------------- /tools/letsencrypt/db.letsencrypt-verify: -------------------------------------------------------------------------------- 1 | % SOA % email@% 1 7200 3600 604800 1800 ~ 2 | 3 | % NS ns1.% ~ 4 | 5 | ns1.% A 10.1.2.3 ~ 6 | 7 | -------------------------------------------------------------------------------- /tools/letsencrypt/hook.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This is run with run.certbot.sh 4 | 5 | PATH=${PATH}:/usr/local/bin 6 | export PATH 7 | DOMAIN=${CERTBOT_DOMAIN} 8 | DOMAIN=$( echo $DOMAIN | tr '.' '-' | tr 'A-Z' 'a-z' ) 9 | 10 | t-add $DOMAIN ${CERTBOT_VALIDATION} 11 | service maradns restart 12 | echo MaraDNS should have restarted 13 | echo Record should be ${CERTBOT_VALIDATION} 14 | askmara T_acme-challenge.${CERTBOT_DOMAIN}. 8.8.8.8 15 | -------------------------------------------------------------------------------- /tools/letsencrypt/run.certbot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ -z "$1" ] ; then 4 | DOMAIN="example.com" 5 | else 6 | DOMAIN="$1" 7 | fi 8 | TDOMAIN=$( echo $DOMAIN | tr '.' '-' | tr 'A-Z' 'a-z' ) 9 | 10 | PATH=${PATH}:/usr/local/bin 11 | export PATH 12 | 13 | t-zap ${TDOMAIN} 14 | 15 | certbot certonly --manual --manual-public-ip-logging-ok \ 16 | --preferred-challenges=dns --manual-auth-hook=/root/certbot/hook.sh \ 17 | -d ${DOMAIN} -d '*.'${DOMAIN} 18 | -------------------------------------------------------------------------------- /tools/letsencrypt/t-add: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | PATH=$PATH:/usr/local/bin 3 | t-count 4 | cd /etc/maradns 5 | if [ -z "$2" ] ; then 6 | echo Usage: $0 {domain name} {record} 7 | echo This script adds a Letsencrypt auth records for a domain 8 | echo domain name is example-com example-org example-net 9 | echo record looks like nPAWRtaNYI6CwLnbzHNfILGPPjTkdL69aEsibsXqx0g 10 | exit 0 11 | fi 12 | echo ${1}.% +30 TXT \'${2}\' \~ >> db.letsencrypt-verify 13 | echo $1 $2 added to db.letsencrypt-verify 14 | t-count 15 | -------------------------------------------------------------------------------- /tools/letsencrypt/t-count: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd /etc/maradns 3 | COUNT=$( fgrep - db.letsencrypt-verify | wc -l ) 4 | echo $COUNT Letsencrypt auth DNS records 5 | -------------------------------------------------------------------------------- /tools/letsencrypt/t-zap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | PATH=$PATH:/usr/local/bin 3 | t-count 4 | cd /etc/maradns 5 | if [ -z "$1" ] ; then 6 | echo Usage: $0 domain name 7 | echo This script removes all Letsencrypt auth records for a domain 8 | echo domain name is example-com example-org example-net 9 | exit 0 10 | fi 11 | fgrep -v "$1" db.letsencrypt-verify > foo.$$ 12 | mv foo.$$ db.letsencrypt-verify 13 | echo $1 removed from db.letsencrypt-verify 14 | t-count 15 | -------------------------------------------------------------------------------- /tools/misc/Makefile: -------------------------------------------------------------------------------- 1 | ROBJECTS=../../rng/rngalgfst.o ../../rng/rngapifst.o 2 | EXECS=marahash mqhash rg32hash 3 | 4 | FLAGS = -g 5 | #FLAGS = -g 6 | 7 | all: $(EXECS) 8 | 9 | clean: 10 | rm -f core $(EXECS) 11 | 12 | marahash: $(ROBJECTS) rnghash.c 13 | $(CC) $(FLAGS) -o marahash rnghash.c $(ROBJECTS) 14 | 15 | mqhash: $(ROBJECTS) mqhash.c 16 | $(CC) $(FLAGS) -o mqhash mqhash.c $(ROBJECTS) 17 | 18 | rg32hash: rg32hash.c 19 | $(CC) $(FLAGS) -o rg32hash rg32hash.c 20 | 21 | -------------------------------------------------------------------------------- /tools/misc/do.gpg.sigs: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script makes the PGP/GPG signatures for MaraDNS 4 | # usage is something like: 5 | # do.gpg.sigs file1.tar.bz2 file2.tar.gz file3.zip 6 | 7 | # I have had this script for a while; it finally entered the MaraDNS tree 8 | # in 1.3.07.05 9 | 10 | for file in $* ; do 11 | gpg --default-key 6D150805 -b --armor --digest-algo SHA512 $file 12 | done 13 | 14 | -------------------------------------------------------------------------------- /tools/misc/example.xtract: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script extracts examples from an ej document. Basically, it prints 4 | # out everything between pre tags 5 | 6 | # !@#$ Awk regexes 7 | cat | awk '/[<][\/]pre[>]/ { a = 2 } a == 1 {print} /[<]pre[>]/ { a = 1 }' 8 | 9 | 10 | -------------------------------------------------------------------------------- /tools/misc/example.zonetester: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script tests an example zone with TXT fields to make sure it works 4 | # correctly 5 | 6 | cat db.example | \ 7 | awk '$2 ~ /[Tt][Xx][Tt]/ {print "dig @127.0.0.3 " $1 " txt"} 8 | $2 ~ /[Rr][Aa][Ww]/ {print "dig @127.0.0.3 " $1 " raw"}' | sh 9 | -------------------------------------------------------------------------------- /tools/misc/microdns.txt: -------------------------------------------------------------------------------- 1 | MicroDNS 2 | 3 | This is a "one-trick pony" DNS server. This compact and simple DNS server 4 | does only one thing: Always return the same IP for any query sent to the 5 | DNS server. This IP is given as the first argument to the program. The 6 | second, optional, argument specifies the IP the server has; if not given, 7 | the DNS server will attempt to bind to all IPs the server running this 8 | program has. 9 | 10 | For example, to have the program always give the IP 172.16.72.129 to 11 | any query, and listen on the IP 127.0.0.1, invoke the program thusly: 12 | 13 | microdns 172.16.72.129 127.0.0.1 14 | 15 | -------------------------------------------------------------------------------- /tools/misc/remake.patch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This lists all of the files that a patch has changed 4 | 5 | if [ -z "$1" ] ; then 6 | echo usage $0 patch-filename 7 | exit 1 8 | fi 9 | 10 | cat $1 | gawk '/^---/ {printf "diff -u "$2" "} /^\+\+\+/ {print $2}' 11 | -------------------------------------------------------------------------------- /update/1.2.02/maradns-1.2.01-copying_file.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.01/COPYING 2005-03-21 06:50:45.000000000 -0800 2 | +++ maradns-1.2.02/COPYING 2006-01-02 08:31:35.000000000 -0800 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2002-2005 Sam Trenholme 5 | +Copyright (c) 2002-2006 Sam Trenholme 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /update/1.2.03.1/maradns-1.2.02-configure-2.patch: -------------------------------------------------------------------------------- 1 | diff -ur maradns-1.2.03/configure maradns-1.2.03.new/configure 2 | --- maradns-1.2.03/configure Sat Jan 14 17:39:18 2006 3 | +++ maradns-1.2.03.new/configure Sat Jan 14 17:51:08 2006 4 | @@ -93,6 +93,7 @@ 5 | # Mingw32 doesn't support symlinks 6 | cp server/MaraBigHash_en.h server/MaraBigHash_locale.h 7 | cp server/MaraDNS_en.h server/MaraDNS_locale.h 8 | + cp COPYING 00README.FIRST 9 | exit 0 10 | elif echo $UNAME | grep -i cygwin > /dev/null ; then 11 | cat $BUILDDIR/Makefile.noflock >> Makefile 12 | -------------------------------------------------------------------------------- /update/1.2.03.1/maradns-1.2.02-freebsd.patch: -------------------------------------------------------------------------------- 1 | Have MaraDNS compile with optimization level 2 on FreeBSD. 2 | 3 | --- maradns-1.2.02/build/Makefile.freebsd 2006-01-01 12:00:26.000000000 -0800 4 | +++ maradns-1.2.03/build/Makefile.freebsd 2006-01-12 10:18:09.000000000 -0800 5 | @@ -27,7 +27,7 @@ 6 | Q="DEFINES=-DSELECT_PROBLEM" 7 | 8 | # FreeBSD needs some special flags to compile MaraDNS 9 | -CC="cc -O -pipe -D_THREAD_SAFE -pthread" 10 | +CC="cc -O2 -Wall -pipe -D_THREAD_SAFE -pthread" 11 | M=CC=$(CC) 12 | V="VERSION=$(VERSION)" 13 | 14 | -------------------------------------------------------------------------------- /update/1.2.03.1/maradns-1.2.02-mingw32.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.03-orig/build/Makefile.mingw32 2005-12-05 14:28:44.000000000 -0800 2 | +++ maradns-1.2.03/build/Makefile.mingw32 2006-01-12 16:52:10.000000000 -0800 3 | @@ -27,7 +27,7 @@ 4 | #Q="DEFINES=-DSELECT_PROBLEM" 5 | 6 | # FreeBSD needs some special flags to compile MaraDNS 7 | -CC="gcc -O -DMINGW32 -DNO_FLOCK" 8 | +CC="gcc -O2 -DMINGW32 -DNO_FLOCK" 9 | M=CC=$(CC) 10 | V="VERSION=$(VERSION)" 11 | 12 | -------------------------------------------------------------------------------- /update/1.2.03.1/maradns-1.2.02-qual.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.03.1/qual/Makefile.threadsafe 2005-11-07 20:16:42.000000000 -0800 2 | +++ maradns-1.2.03.2/qual/Makefile.threadsafe 2006-01-21 21:13:49.000000000 -0800 3 | @@ -2,9 +2,6 @@ 4 | JOBJS=../libs/JsStr.o ../libs/JsStrOS.o ../libs/JsStrCP.o 5 | OBJECTS=$(DOBJECTS) 6 | 7 | -FLAGS = -g -Wall $(DEBUG) 8 | -#FLAGS = -g $(DEBUG) 9 | - 10 | all: qual_timestamp.o 11 | 12 | clean: 13 | -------------------------------------------------------------------------------- /update/1.2.03.2/maradns-1.2.03.1-changelog.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.03.1/doc/en/source/changelog.embed 2006-01-21 21:22:01.000000000 -0800 2 | +++ maradns-1.2.03.2/doc/en/source/changelog.embed 2006-02-02 12:26:24.000000000 -0800 3 | @@ -1,5 +1,15 @@ 4 |

MaraDNS changelog

5 | 6 | +

maradns-1.2.03.2: 7 | +

8 | +
    9 | +
  • Hotfix: Re-apply fix for broken Linux 2.6 kernel behavior which causes 10 | + MaraDNS to freeze. 11 | +
  • Mingw32: Have the binaries stripped 12 | +
13 | +(2006.02.02) 14 | +
15 | + 16 |

maradns-1.2.03.1: 17 |

18 |
    19 | -------------------------------------------------------------------------------- /update/1.2.03.2/maradns-1.2.03.1-mingw32_strip.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.03.1/build/Makefile.mingw32 2006-01-21 21:22:01.000000000 -0800 2 | +++ maradns-1.2.04/build/Makefile.mingw32 2006-01-22 20:38:59.000000000 -0800 3 | @@ -42,8 +42,8 @@ 4 | cd ../rng ; make $(M) ; cd ../parse ; make $(M) ; \ 5 | cd ../qual ; make $(M) ; cd ../server ; \ 6 | make $(M) $(Q) COMPILED=\"$(COMPILED)\" $(V) ; \ 7 | - cd ../tools ; make $(M) ; \ 8 | - cat ../00README.FIRST 9 | + cd ../tools ; make $(M) ; strip ../server/maradns.exe ; \ 10 | + strip ../tools/askmara.exe ; cat ../00README.FIRST 11 | 12 | clean: 13 | rm -f $(OBJECTS) core $(EXECS) ; \ 14 | -------------------------------------------------------------------------------- /update/1.2.04/maradns-1.2.03.2-recursive_timeout_typo.patch: -------------------------------------------------------------------------------- 1 | This typo was discovered by someone using MaraDNS in production use at a big 2 | ISP. 3 | 4 | --- maradns-1.2.03.2/server/recursive.c 2006-01-21 21:22:01.000000000 -0800 5 | +++ maradns-1.2.04/server/recursive.c 2006-02-09 00:13:39.000000000 -0800 6 | @@ -4163,7 +4163,7 @@ 7 | 8 | /* Set the maximum time to wait for another DNS server */ 9 | timeout_seconds = 2; 10 | - if(timeout_seconds > 0) 11 | + if(timeout > 0) 12 | timeout_seconds = timeout; 13 | 14 | /* Set the maximum number of threads */ 15 | -------------------------------------------------------------------------------- /update/1.2.04/maradns-1.2.03.2-recursive_timeout_typo_2.patch: -------------------------------------------------------------------------------- 1 | Another typo fixed by an admin who uses MaraDNS in production at a 2 | big ISP. 3 | 4 | --- maradns-1.2.03.2/server/recursive.c 2006-02-09 00:19:22.000000000 -0800 5 | +++ maradns-1.2.04/server/recursive.c 2006-02-09 00:19:58.000000000 -0800 6 | @@ -1086,7 +1086,6 @@ 7 | data->ptr = 0; 8 | data->seen = 0; 9 | data->zap = 0; 10 | - data->expire = data->ttl = data->authoritative = 0; 11 | 12 | /* Store the simple data in the rr data */ 13 | data->authoritative = authoritative; 14 | -------------------------------------------------------------------------------- /update/1.2.05/maradns-1.2.04-improper_termination.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.05/parse/Csv2_parse.c.orig 2006-02-14 23:39:21.000000000 -0800 2 | +++ maradns-1.2.05/parse/Csv2_parse.c 2006-02-14 23:43:41.000000000 -0800 3 | @@ -764,6 +764,12 @@ 4 | process_comment(stream); 5 | return o; 6 | } 7 | + else if(csv2_is_delimiter(look)) { 8 | + csv2_error(stream,"Improper termination of label\n" 9 | +"Label must end with '.' or '%' (A '*' is allowed in csv2_default_zonefile)"); 10 | + js_destroy(o); 11 | + return 0; 12 | + } 13 | else { 14 | csv2_error(stream,"Unexpected character"); 15 | js_destroy(o); 16 | -------------------------------------------------------------------------------- /update/1.2.07.3/maradns-1.2.07.2-mqhash_2.patch: -------------------------------------------------------------------------------- 1 | --- maradns-Q.20060505.1/tools/misc/mqhash.c 2006-05-05 12:40:07.000000000 -0700 2 | +++ maradns-1.2.07.3/tools/misc/mqhash.c 2006-05-08 09:11:56.000000000 -0700 3 | @@ -128,8 +128,8 @@ 4 | } 5 | else if(argc == 5) { 6 | n = atoi(argv[2]); 7 | - if(n < 1 || n > 9) { 8 | - printf("n must be between 1 and 9\n"); 9 | + if(n < 2 || n > 9) { 10 | + printf("n must be between 2 and 9\n"); 11 | exit(4); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /update/1.2.07.3/maradns-1.2.07.2-openbsd.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.07.2/configure.orig Thu Apr 20 01:16:01 2006 2 | +++ maradns-1.2.07.2/configure Thu Apr 20 01:17:52 2006 3 | @@ -77,6 +77,11 @@ 4 | echo /usr/ports/dns/maradns 5 | echo 6 | EXITCODE=0 7 | +elif echo $UNAME | grep -i openbsd > /dev/null ; then 8 | + cat $BUILDDIR/Makefile.freebsd >> Makefile 9 | + echo It looks like you are using OpenBSD\; this should compile 10 | + echo fine by typing in \'make\'. 11 | + EXITCODE=0 12 | elif echo $UNAME | grep -i mingw32 > /dev/null ; then 13 | cat $BUILDDIR/Makefile.mingw32 >> Makefile 14 | echo It looks like you are using MinGW32 \; this is only a partial 15 | -------------------------------------------------------------------------------- /update/1.2.07.4/maradns-1.2.07.3-csv2_default.clarify.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.07.4/doc/en/source/csv2.ej.orig 2006-05-21 23:18:32.000000000 -0700 2 | +++ maradns-1.2.07.4/doc/en/source/csv2.ej 2006-05-21 23:20:27.000000000 -0700 3 | @@ -218,7 +218,9 @@ 4 | 5 |

    6 | 7 | -FQDN4 records are not permitted in a csv2_default_zonefile. 8 | +FQDN4 records are not permitted in a csv2_default_zonefile. If you 9 | +do not know what a csv2_default_zonefile is, you do not have to worry 10 | +about this limitation. 11 | 12 |

    CNAME

    13 | 14 | -------------------------------------------------------------------------------- /update/1.2.07.4/maradns-1.2.07.3-download.deadlink.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.07.4/doc/en/webpage/download.embed.orig 2006-05-20 20:42:19.000000000 -0700 2 | +++ maradns-1.2.07.4/doc/en/webpage/download.embed 2006-05-20 20:42:45.000000000 -0700 3 | @@ -30,7 +30,7 @@ 4 |

    GPG signature

    6 |

    GPG signature 8 | +href="download/1.2/1.2.07.3/maradns-1.2.07.3.tar.lzma.rmd.asc">GPG signature 9 | using RIPEMD160 as the digest algorithm

    10 | 11 |

    12 | -------------------------------------------------------------------------------- /update/1.2.07.4/maradns-1.2.07.3-faq.deadlink.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.07.4/doc/en/webpage/faq.embed.orig 2006-05-20 20:29:18.000000000 -0700 2 | +++ maradns-1.2.07.4/doc/en/webpage/faq.embed 2006-05-20 20:29:33.000000000 -0700 3 | @@ -281,7 +281,8 @@ 4 | 5 |

    MaraDNS uses its own string library, which is called the "js_string" 6 | library. Man pages for most of the functions in the js_string library 7 | -are in the folder doc/man of the MaraDNS 8 | +are in the folder doc/man of the MaraDNS 10 | distribution 11 | 12 | 13 | -------------------------------------------------------------------------------- /update/1.2.07.4/maradns-1.2.07.3-slackware.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.07.4/doc/en/webpage/download.embed.orig 2006-05-21 23:10:23.000000000 -0700 2 | +++ maradns-1.2.07.4/doc/en/webpage/download.embed 2006-05-21 23:10:38.000000000 -0700 3 | @@ -73,6 +73,12 @@ 4 | href="download/1.2/1.2.07.3/maradns-1-2-07-3-win32.zip.rmd.asc">GPG signature 5 | using RIPEMD160 as the digest algorithm

    6 | 7 | +

    Slackware Package

    8 | + 9 | +Daniel Zilli has made a Slackware package of maradns, which can be 10 | +downloaded here.

    12 | + 13 |


    14 | 15 |

    Legacy release

    16 | -------------------------------------------------------------------------------- /update/1.2.07.5/maradns-1.2.07.4-changelog.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.07.4/doc/en/source/changelog.embed 2006-05-22 23:13:13.000000000 -0700 2 | +++ maradns-1.2.07.5/doc/en/source/changelog.embed 2006-05-29 00:46:54.000000000 -0700 3 | @@ -1,5 +1,14 @@ 4 |

    MaraDNS changelog

    5 | 6 | +

    maradns-1.2.07.5: 7 | +

    8 | +
      9 | +
    • Bugfix: ANY queries point to star records now works 10 | +
    • pdf file problems should be fixed 11 | +
    12 | +(2006.05.29) 13 | +
    14 | + 15 |

    maradns-1.2.07.4: 16 |

    17 |
      18 | -------------------------------------------------------------------------------- /update/1.2.09/maradns-1.2.08-changelog.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.08/doc/en/source/changelog.embed 2006-06-11 00:16:32.000000000 -0700 2 | +++ maradns-1.2.09/doc/en/source/changelog.embed 2006-06-14 03:17:00.000000000 -0700 3 | @@ -1,5 +1,15 @@ 4 |

      MaraDNS changelog

      5 | 6 | +

      maradns-1.2.09: 7 | +

      8 | +
        9 | +
      • Recursive resolver patched to be able to process the bizarre packets 10 | + that Microsoft.com's DNS server makes. 11 | +
      • Some minor documentation cleanup. 12 | +
      13 | +(2006.06.14) 14 | +
      15 | + 16 |

      maradns-1.2.08: 17 |

      18 |
        19 | -------------------------------------------------------------------------------- /update/1.2.09/maradns-1.2.08-faq_ptag.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.08/doc/en/source/faq.embed 2006-06-11 02:20:01.000000000 -0700 2 | +++ maradns-1.2.09//doc/en/source/faq.embed 2006-06-11 03:41:04.000000000 -0700 3 | @@ -65,7 +65,7 @@ 4 | 5 | 27. Why doesn't the MaraDNS.org web page validate?

        6 | 7 | -28. How do MX records work? 8 | +28. How do MX records work?

        9 | 10 | 29. Does MaraDNS have support for SPF? 11 | 12 | -------------------------------------------------------------------------------- /update/1.2.12.01/maradns-1.2.11-chkconfig.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.11/build/mara.startup 2006-06-21 03:59:30.000000000 -0500 2 | +++ maradns-1.2.12/build/mara.startup 2006-07-19 20:54:04.000000000 -0500 3 | @@ -1,4 +1,8 @@ 4 | #!/bin/bash 5 | +# MaraDNS This shell script takes care of starting and stopping MaraDNS 6 | +# chkconfig: - 55 45 7 | +# description: MaraDNS is secure Domain Name Server (DNS) 8 | +# probe: true 9 | 10 | # Copyright 2005-2006 Sam Trenholme 11 | 12 | -------------------------------------------------------------------------------- /update/1.2.12.01/maradns-1.2.11-csv2_close.patch: -------------------------------------------------------------------------------- 1 | Thanks to Paul Wankadia for pointing out that I forgot to do this. 2 | 3 | --- maradns-1.2.11/parse/Csv2_main.c 2005-12-05 16:24:05.000000000 -0600 4 | +++ maradns-Q.20060721.1/parse/Csv2_main.c 2006-07-21 23:37:46.000000000 -0500 5 | @@ -609,6 +609,7 @@ 6 | break; 7 | } 8 | } 9 | + csv2_close(stream); 10 | return 0; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /update/1.2.12.01/maradns-1.2.11-ptrq_memleak.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.11/server/recursive.c 2006-07-17 22:50:44.000000000 -0500 2 | +++ maradns-1.2.12/server/recursive.c 2006-07-23 20:15:13.000000000 -0500 3 | @@ -2132,6 +2132,10 @@ 4 | js_destroy(jsip); /* Since this is always created */ 5 | } 6 | else { 7 | + /* Lets plug this memory leak */ 8 | + if(ptrq != 0) { 9 | + js_destroy(ptrq); 10 | + } 11 | /* If we don't add jsip to the cache, we need to clear the 12 | memory it uses */ 13 | js_destroy(jsip); 14 | -------------------------------------------------------------------------------- /update/1.2.12.02/maradns-1.2.12.01-csv2_main_year.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.12.02/parse/Csv2_main.c.orig 2006-08-13 11:37:40.000000000 -0500 2 | +++ maradns-1.2.12.02/parse/Csv2_main.c 2006-08-13 11:52:06.000000000 -0500 3 | @@ -1,4 +1,4 @@ 4 | -/* Copyright (c) 2004 Sam Trenholme 5 | +/* Copyright (c) 2004-2006 Sam Trenholme 6 | * 7 | * TERMS 8 | * 9 | -------------------------------------------------------------------------------- /update/1.2.12.02/maradns-1.2.12.01-csv2_read_tidy.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.12.01/parse/Csv2_read.c 2006-07-26 10:58:44.000000000 -0500 2 | +++ maradns-1.2.12.02/parse/Csv2_read.c 2006-07-28 10:48:37.000000000 -0500 3 | @@ -98,6 +98,7 @@ 4 | while(v != 0 && a < 1000) { 5 | w = v->next; 6 | fclose(v->reading); 7 | + js_dealloc(v->filename); 8 | js_dealloc(v); 9 | v = w; 10 | a++; 11 | -------------------------------------------------------------------------------- /update/1.2.12.02/maradns-1.2.12.01-faq_contact.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.12.02.orig/doc/en/source/faq.embed 2006-08-13 21:52:30.000000000 -0500 2 | +++ maradns-1.2.12.02/doc/en/source/faq.embed 2006-08-13 21:54:15.000000000 -0500 3 | @@ -155,7 +155,9 @@ 4 | 5 |

        4. How do I report bugs in MaraDNS?

        6 | 7 | -Please contact me. 8 | +Please contact me; my email address is at 9 | +http://www.maradns.org/contact.html 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /update/1.2.12.02/maradns-1.2.12.01-ptrret_noreply.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.12.02/server/recursive.c.orig 2006-07-30 23:26:31.000000000 -0500 2 | +++ maradns-1.2.12.02/server/recursive.c 2006-07-30 23:36:26.000000000 -0500 3 | @@ -3206,6 +3206,11 @@ 4 | js_destroy(synthesized_header); 5 | } 6 | } 7 | + else if(ptrret != NULL) { 8 | + if(js_qstr2js(ptrret,"NotQual") == JS_ERROR) { 9 | + return JS_ERROR; 10 | + } 11 | + } 12 | return JS_SUCCESS; 13 | } 14 | } while(bobbit_label(copy) > 0); 15 | -------------------------------------------------------------------------------- /update/1.2.12.03/maradns-1.2.12.02-no_bogus_notfound.patch: -------------------------------------------------------------------------------- 1 | --- maradns-Q.20061007.1/server/recursive.c.orig 2006-10-08 09:28:48.000000000 -0500 2 | +++ maradns-Q.20061007.1/server/recursive.c 2006-10-08 09:30:50.000000000 -0500 3 | @@ -3179,6 +3179,7 @@ 4 | glueless_level,ipret,ptrret) == JS_ERROR) { 5 | return JS_ERROR; 6 | } 7 | + return JS_SUCCESS; /* Since we did find something */ 8 | } 9 | /* We couldn't contact any nameservers */ 10 | /* Return a bogus SOA record */ 11 | -------------------------------------------------------------------------------- /update/1.2.12.04/maradns-1.2.12.03-makefile.linux.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.12.03/build/Makefile.linux 2006-02-02 16:18:07.000000000 -0600 2 | +++ maradns-1.2.12.04/build/Makefile.linux 2006-11-12 12:41:25.000000000 -0600 3 | @@ -27,10 +27,10 @@ 4 | Q="DEFINES=-DSELECT_PROBLEM" 5 | 6 | # Debug 7 | -D=$(M) DEBUG=-DDEBUG 8 | 9 | FLAGS = -O2 -Wall -DSELECT_PROBLEM 10 | M="CC=$(CC) $(FLAGS)" 11 | +D="CC=$(CC) $(FLAGS) -DDEBUG -DTHREADS" 12 | #FLAGS = -g 13 | 14 | all: 15 | -------------------------------------------------------------------------------- /update/1.3.01/maradns-1.2.12.04-vacation.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.2.12.04/doc/en/webpage/contact.embed 2006-10-08 19:32:42.000000000 -0400 2 | +++ maradns-1.3.01/doc/en/webpage/contact.embed 2006-12-01 11:39:21.000000000 -0500 3 | @@ -28,3 +28,7 @@ 4 | it; I will continue to fix serious MaraDNS 1.0 bugs until December 21, 2007, 5 | and MaraDNS 1.0 security bugs (should they arise) until December 21, 2010. 6 |

        7 | +

        8 | +Please note: I am travelling and will be unable to access my 9 | +email address until mid-December. 10 | +

        11 | -------------------------------------------------------------------------------- /update/1.3.01/maradns-1.2.12.04-zoneserver_killchildren.diff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/update/1.3.01/maradns-1.2.12.04-zoneserver_killchildren.diff -------------------------------------------------------------------------------- /update/1.3.02/maradns-1.3.01-2007.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.01/00README.FIRST 2006-01-02 08:59:33.000000000 -0800 2 | +++ maradns-1.3.02/00README.FIRST 2007-01-02 07:32:37.000000000 -0800 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2002-2006 Sam Trenholme 5 | +Copyright (c) 2002-2007 Sam Trenholme 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /update/1.3.03/maradns-1.3.02-ect.d-leakfix.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.03/server/MaraDNS.c.orig 2007-02-14 06:53:38.000000000 -0800 2 | +++ maradns-1.3.03/server/MaraDNS.c 2007-02-14 06:58:09.000000000 -0800 3 | @@ -4926,6 +4926,9 @@ 4 | printf("\n"); 5 | log_unlock(); 6 | } 7 | + if(ect.d != 0) { 8 | + js_dealloc(ect.d); 9 | + } 10 | continue; 11 | } 12 | if(log_level >= 5) { 13 | -------------------------------------------------------------------------------- /update/1.3.03/maradns-1.3.02-ect.d-memleak-regression.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.02/sqa/franky.hosts.test 2006-08-14 13:02:07.000000000 -0700 2 | +++ maradns-1.3.03/sqa/franky.hosts.test 2007-02-14 07:06:50.000000000 -0800 3 | @@ -34,6 +34,8 @@ 4 | z = int(rand() * 256); 5 | print "./sendudp P" w "." x "." y "." z ".in-addr.arpa. 127.0.0.4 > /dev/null" 6 | } 7 | + # Regression for ect.d memleak 8 | + if(a % 19 == 0) { print "./sendnoise "$0" 127.0.0.4 > /dev/null" } 9 | print "./sendudp A"$0". 127.0.0.4 > /dev/null"}' | sh 10 | sleep 10 11 | # Make sure we'll still able to resolve host names 12 | -------------------------------------------------------------------------------- /update/1.3.03/maradns-1.3.02-gcc296_compile.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.03/server/recursive.c.orig 2007-02-04 21:17:50.000000000 -0800 2 | +++ maradns-1.3.03/server/recursive.c 2007-02-04 21:18:05.000000000 -0800 3 | @@ -4264,13 +4264,13 @@ 4 | int ret = 0; 5 | int counter = 0; 6 | ipv4pair root_servers[512]; 7 | + js_string *zone; 8 | 9 | /* Initialize the list of root servers */ 10 | for(counter=0;counter<511;counter++) { 11 | root_servers[counter].ip = 0xffffffff; 12 | } 13 | 14 | - js_string *zone; 15 | zone = js_create(256,1); 16 | if(zone == 0) { 17 | return 0; 18 | -------------------------------------------------------------------------------- /update/1.3.03/maradns-1.3.02-locfix.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.03/parse/Csv2_rr_wks.c.orig 2007-02-04 20:37:48.000000000 -0800 2 | +++ maradns-1.3.03/parse/Csv2_rr_wks.c 2007-02-04 20:38:03.000000000 -0800 3 | @@ -535,7 +535,7 @@ 4 | if(get == -1) { 5 | get = 1; 6 | } 7 | - while(get > 10 && q < 10) { 8 | + while(get >= 10 && q < 10) { 9 | q++; 10 | get /= 10; 11 | } 12 | -------------------------------------------------------------------------------- /update/1.3.05/maradns-1.3.04-docfix1.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.05/doc/en/source/default_zonefile.ej.orig 2007-05-13 22:35:38.000000000 -0500 2 | +++ maradns-1.3.05/doc/en/source/default_zonefile.ej 2007-05-13 22:35:46.000000000 -0500 3 | @@ -55,7 +55,7 @@ 4 | www.* A 10.10.10.10 5 | 6 | # Here is a MX record 7 | -* MX mail.example.com. 8 | +* MX 10 mail.example.com. 9 | 10 | 11 | Here, "example.com" is replaced with the name of the zone server running 12 | -------------------------------------------------------------------------------- /update/1.3.06/maradns-1.3.05-star_collision_memleak.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.05/server/MaraDNS.c 2007-05-21 06:37:54.000000000 -0500 2 | +++ maradns-1.3.06/server/MaraDNS.c 2007-05-24 07:59:57.000000000 -0500 3 | @@ -3017,6 +3017,8 @@ 4 | spot_data.datatype == MARA_DNS_LIST) { 5 | /* There is a RR phohibiting the star record. Return 6 | * name error */ 7 | + be_anal->string--; 8 | + js_destroy(be_anal); 9 | return 1; 10 | } 11 | be_anal->string--; 12 | -------------------------------------------------------------------------------- /update/1.3.06/maradns-1.3.05-zap_olddoc.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.05/doc/en/Makefile 2005-11-29 23:22:04.000000000 -0600 2 | +++ maradns-1.3.06/doc/en/Makefile 2007-06-18 23:02:36.000000000 -0500 3 | @@ -1,5 +1,4 @@ 4 | -all: faq.txt faq.html QuickStart credits.txt changelog.txt files.txt \ 5 | - changelog.html download.html 6 | +all: faq.txt faq.html QuickStart credits.txt changelog.txt files.txt 7 | 8 | clean: 9 | rm -f faq.txt faq.html QuickStart changelog.txt changelog.html \ 10 | -------------------------------------------------------------------------------- /update/1.3.07.01/maradns-1.3.06-changelog.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.06/doc/en/source/changelog.embed 2007-06-19 08:59:07.000000000 -0500 2 | +++ maradns-1.3.07.01/doc/en/source/changelog.embed 2007-06-20 22:36:58.000000000 -0500 3 | @@ -1,5 +1,15 @@ 4 |

        MaraDNS changelog

        5 | 6 | +

        maradns-1.3.07.01:

        7 | +This is a beta testing release of MaraDNS. 8 | +
        9 | +
          10 | +
        • Documentation for the bind2csv2.py utility the converts 11 | +zone files from BIND to MaraDNS format added. 12 | +
        13 | +(2007.06.21) 14 | +
        15 | + 16 |

        maradns-1.3.06:

        17 | This is a testing release of MaraDNS. 18 |
        19 | -------------------------------------------------------------------------------- /update/1.3.07.02/maradns-1.3.07.01-update-readme.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.01/update/00README 2005-11-28 12:40:10.000000000 -0600 2 | +++ maradns-1.3.07.02/update/00README 2007-06-24 13:50:48.000000000 -0500 3 | @@ -1,4 +1,4 @@ 4 | This is the directory where we place scripts and patches that automatically 5 | -update one MaraDNS 1.2 release to the next MaraDNS 1.2 release; this lets 6 | -people keep track of changes without needing to be dependent on having 7 | -a certain revision control system. 8 | +update one MaraDNS 1.3 release to the next MaraDNS 1.3 release; this lets 9 | +people keep track of changes without needing to have a revision control 10 | +system. 11 | -------------------------------------------------------------------------------- /update/1.3.07.04/maradns-1.3.07.03-install_sh.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.03/build/install.sh 2005-12-12 00:17:27.000000000 -0600 2 | +++ maradns-1.3.07.04/build/install.sh 2007-08-24 14:29:03.000000000 -0500 3 | @@ -130,7 +130,7 @@ 4 | 5 | # If the system in question does not already have configuration files, 6 | # place example configuration files in /etc 7 | -if [ -d docs/$LANGUAGE/examples ] ; then 8 | +if [ -d doc/$LANGUAGE/examples ] ; then 9 | cd doc/$LANGUAGE/examples 10 | else 11 | cd doc/en/examples 12 | -------------------------------------------------------------------------------- /update/1.3.07.04/maradns-1.3.07.03-zoneserver.patch: -------------------------------------------------------------------------------- 1 | $NetBSD$ 2 | 3 | --- maradns/tcp/zoneserver.c.orig 2007-08-12 03:23:13.000000000 +0200 4 | +++ maradns/tcp/zoneserver.c 5 | @@ -34,7 +34,7 @@ 6 | #include 7 | #include 8 | #include 9 | -#ifdef __FreeBSD__ 10 | +#if defined(__FreeBSD__) || defined(__DragonFly__) 11 | #include 12 | #endif 13 | #include 14 | -------------------------------------------------------------------------------- /update/1.3.08/maradns-1.3.07.04-authonly.compile.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.04/server/udpsuccess.c 2007-08-29 11:30:03.000000000 -0500 2 | +++ maradns-1.3.07.05/server/udpsuccess.c 2007-09-14 21:57:16.000000000 -0500 3 | @@ -39,6 +39,7 @@ 4 | extern rr *seenlist[256]; 5 | extern int seenlist_where; 6 | extern int rd_value; 7 | +extern ipv4pair long_packet[512]; 8 | 9 | /* If we successfully found a record, spit out that record on the 10 | udp packet. 11 | -------------------------------------------------------------------------------- /update/1.3.08/maradns-1.3.07.04-ej2txt.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.04/tools/ej/ej2txt 2006-11-24 05:44:29.000000000 -0600 2 | +++ maradns-1.3.08/tools/ej/ej2txt 2007-09-16 13:24:37.000000000 -0500 3 | @@ -19,6 +19,7 @@ 4 | fi 5 | 6 | $CMD $1 > $TMP/$$.html 7 | -links -dump $TMP/$$.html 8 | +links -dump-width 70 -dump -no-references $TMP/$$.html | awk ' 9 | + {gsub(/\[[0-9]+\]/,"");print}' 10 | rm $TMP/$$.html 11 | 12 | -------------------------------------------------------------------------------- /update/1.3.08/maradns-1.3.07.04-naptr_rfc.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.04/MaraDns.h 2007-06-19 08:59:07.000000000 -0500 2 | +++ maradns-1.3.07.05/MaraDns.h 2007-09-19 17:19:12.000000000 -0500 3 | @@ -357,7 +357,7 @@ 4 | #define RR_SRV 33 5 | /* "ATM address" (Not in an RFC) */ 6 | #define RR_ATMA 34 7 | -/* RFC2168,RFC2915 */ 8 | +/* RFC2168,RFC2915,RFC3403 */ 9 | #define RR_NAPTR 35 10 | /* RFC2230 */ 11 | #define RR_KX 36 12 | -------------------------------------------------------------------------------- /update/1.3.08/maradns-1.3.07.04-newtests.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.04/sqa/regressions/do.tests 2007-08-29 11:30:03.000000000 -0500 2 | +++ maradns-1.3.07.05/sqa/regressions/do.tests 2007-09-09 22:38:27.000000000 -0500 3 | @@ -8,6 +8,8 @@ 4 | TESTS=$TESTS"predator1 predator2 ptr_leak recurse_delegation " 5 | TESTS=$TESTS"star_handling_1 star_handling_2 star_handling_leak " 6 | TESTS=$TESTS"truncation zoneserver_doc improper_rotation " 7 | +TESTS=$TESTS"mararc_d_csv1 mararc_d_csv2 mararc_d_ipv4_alias " 8 | +TESTS=$TESTS"mararc_d_root_servers mararc_d_upstream_servers " 9 | 10 | for test in $TESTS ; do 11 | cd $test 12 | -------------------------------------------------------------------------------- /update/1.3.08/maradns-1.3.07.04-sloppy.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.05/parse/Csv2_rr_wks.c.orig 2007-09-19 17:12:54.000000000 -0500 2 | +++ maradns-1.3.07.05/parse/Csv2_rr_wks.c 2007-09-19 17:13:16.000000000 -0500 3 | @@ -240,6 +240,7 @@ 4 | /* Mailbox label */ 5 | if(csv2_get_1st(stream,csv2_is_alphanum_ordot,0) != 6 | JS_SUCCESS) { 7 | + js_destroy(out); 8 | return 0; 9 | } 10 | if((name = process_mbox(stream)) == 0) { 11 | -------------------------------------------------------------------------------- /update/1.3.09/maradns-1.3.07.05-copying_year.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.05/COPYING 2006-01-02 10:59:33.000000000 -0600 2 | +++ maradns-1.3.07.06/COPYING 2007-09-27 15:46:39.000000000 -0500 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2002-2006 Sam Trenholme 5 | +Copyright (c) 2002-2007 Sam Trenholme 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /update/1.3.09/maradns-1.3.07.05-debug_msg_level.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.06/server/MaraDNS.c.orig 2007-09-29 21:42:48.000000000 -0500 2 | +++ maradns-1.3.07.06/server/MaraDNS.c 2007-09-29 21:47:44.000000000 -0500 3 | @@ -2772,7 +2772,7 @@ 4 | 5 | /* At dos_protection_level 79, the only authoritative-type thing we do 6 | * is let them see the version number of MaraDNS (see above) */ 7 | - if(dos_protection_level == 79 ) { 8 | + if(dos_protection_level == 79 && debug_msg_level <= 1) { 9 | goto recursive_call; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /update/1.3.09/maradns-1.3.07.05-escape_hash.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.05/parse/Csv2_esc_txt.c 2005-06-07 23:29:05.000000000 -0500 2 | +++ maradns-1.3.07.06/parse/Csv2_esc_txt.c 2007-09-29 21:08:33.000000000 -0500 3 | @@ -38,7 +38,8 @@ 4 | 5 | while(counter < js->unit_count) { 6 | this = *(js->string + counter); 7 | - if(this < 32 || this > 122) { /* 122 == 'z'; {|}~ are escaped since 8 | + if(this < 32 || this > 122 || this == '#') { 9 | + /* 122 == 'z'; {|}~ are escaped since 10 | we currently don't allow the { 11 | character in csv2 zone files (to 12 | allow for future macro processing) */ 13 | -------------------------------------------------------------------------------- /update/1.3.09/maradns-1.3.07.05-zoneserver-check.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.06/tcp/zoneserver.c.orig 2007-10-18 10:17:25.000000000 -0500 2 | +++ maradns-1.3.07.06/tcp/zoneserver.c 2007-10-18 10:17:59.000000000 -0500 3 | @@ -1178,7 +1178,7 @@ 4 | * */ 5 | 6 | bind_addresses = libtcp_bind_address(1); 7 | - if(bind_addresses[0].ip == 0xffffffff) { 8 | + if(bind_addresses == 0 || bind_addresses[0].ip == 0xffffffff) { 9 | harderror("Could not make list of bind addresses"); 10 | } 11 | bind_address_iterate = 0; 12 | -------------------------------------------------------------------------------- /update/1.3.09/maradns-1.3.08-debug_msg_level.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.09/server/MaraDNS.c.orig 2007-09-21 07:07:49.000000000 -0500 2 | +++ maradns-1.3.09/server/MaraDNS.c 2007-09-29 21:54:00.000000000 -0500 3 | @@ -2772,7 +2772,7 @@ 4 | 5 | /* At dos_protection_level 79, the only authoritative-type thing we do 6 | * is let them see the version number of MaraDNS (see above) */ 7 | - if(dos_protection_level == 79 ) { 8 | + if(dos_protection_level == 79 && debug_msg_level <= 1) { 9 | goto recursive_call; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /update/1.3.10/maradns-1.3.07.06-download.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.06/tools/misc/make.download.embed 2007-10-19 08:52:19.000000000 -0500 2 | +++ maradns-1.3.07.07/tools/misc/make.download.embed 2007-11-25 13:51:39.000000000 -0600 3 | @@ -21,15 +21,15 @@ 4 | 5 | # Beta release 6 | BV=1.3 7 | -BETA=1.3.07.06 8 | -BZIP="1-3-07-06" 9 | -BDATE="October 19, 2007" 10 | +BETA=1.3.07.07 11 | +BZIP="1-3-07-07" 12 | +BDATE="November 26, 2007" 13 | 14 | # Development release 15 | DV=1.3 16 | -DEV=1.3.09 17 | -DZIP="1-3-09" 18 | -DDATE="October 19, 2007" 19 | +DEV=1.3.10 20 | +DZIP="1-3-10" 21 | +DDATE="November 26, 2007" 22 | 23 | # Legacy release 24 | LEGACY=1.0.41 25 | -------------------------------------------------------------------------------- /update/1.3.11/maradns-1.3.07.07-askmara.bug.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.10/sqa/regressions/askmara.bug/bad.packet.c 2007-11-26 11:48:20.000000000 -0600 2 | +++ maradns-1.3.11/sqa/regressions/askmara.bug/bad.packet.c 2007-12-06 20:23:29.000000000 -0600 3 | @@ -61,10 +61,10 @@ 4 | main() { 5 | int a, b; 6 | int len_inet; 7 | - int foo; 8 | struct sockaddr_in dns_udp; 9 | int sock; 10 | char in[512]; 11 | + int foo = sizeof(in); 12 | int localhost = 0x7f000001; /* 127.0.0.1 */ 13 | int leni = sizeof(struct sockaddr); 14 | 15 | -------------------------------------------------------------------------------- /update/1.3.11/maradns-1.3.07.07-ip_not_ipconfig.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.07/sqa/regressions/mararc_n_ipv6_bind_address/do.test 2007-11-26 11:20:31.000000000 -0600 2 | +++ maradns-1.3.07.08/sqa/regressions/mararc_n_ipv6_bind_address/do.test 2007-12-12 12:36:01.000000000 -0600 3 | @@ -16,7 +16,7 @@ 4 | EOF 5 | 6 | # Give localhost the fecf:aff0::1 address 7 | -ifconfig lo add fecf:aff0::1 8 | +ip ad add fecf:aff0::1/128 dev lo 9 | #route add fecf:aff0::1 lo 10 | 11 | # OK, test the server 12 | @@ -32,5 +32,5 @@ 13 | rm mararc 14 | rm db.example.com 15 | 16 | -ifconfig lo del fecf:aff0::1 17 | +ip ad del fecf:aff0::1/128 dev lo 18 | 19 | -------------------------------------------------------------------------------- /update/1.3.11/maradns-1.3.08-changelog.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/update/1.3.11/maradns-1.3.08-changelog.patch -------------------------------------------------------------------------------- /update/1.3.11/maradns-1.3.08-download.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/update/1.3.11/maradns-1.3.08-download.patch -------------------------------------------------------------------------------- /update/1.3.11/maradns-1.3.10-copyright_2008.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.10/00README.FIRST 2007-01-09 14:16:34.000000000 -0600 2 | +++ maradns-1.3.11/00README.FIRST 2008-02-02 12:33:39.000000000 -0600 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2002-2007 Sam Trenholme 5 | +Copyright (c) 2002-2008 Sam Trenholme and others 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /update/1.3.12/maradns-1.3.07.08-udpnotfound-rd_val.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.08/server/MaraDNS.c 2007-12-25 13:14:46.000000000 -0600 2 | +++ maradns-1.3.07.09/server/MaraDNS.c 2008-08-03 11:44:37.000000000 -0500 3 | @@ -1892,8 +1892,8 @@ 4 | header.qr = 1; 5 | header.opcode = 0; 6 | header.tc = 0; /* To do: truncation handling */ 7 | - header.rd = 0; /* RDBUG udpnotfound */ 8 | - header.ra = 0; 9 | + header.rd = rd_val; /* RDBUG udpnotfound */ 10 | + header.ra = rd_val; 11 | header.z = 0; 12 | /* Code that verifies that this host does not exist in 13 | any class. If so, then we give them a rcode of NXDOMAIN_RCODE. 14 | -------------------------------------------------------------------------------- /update/1.3.12/maradns-1.3.11-bsd.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.12/server/udpsuccess.c.orig 2008-08-30 19:30:19.000000000 -0500 2 | +++ maradns-1.3.12/server/udpsuccess.c 2008-08-30 19:31:06.000000000 -0500 3 | @@ -1,4 +1,4 @@ 4 | -/* Copyright (c) 2002-2007 Sam Trenholme 5 | +/* Copyright (c) 2002-2008 Sam Trenholme 6 | * 7 | * TERMS 8 | * 9 | @@ -17,6 +17,7 @@ 10 | */ 11 | 12 | #ifndef MINGW32 13 | +#include 14 | #include 15 | #include 16 | #include 17 | -------------------------------------------------------------------------------- /update/1.3.12/maradns-1.3.11-download.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samboy/MaraDNS/b532026a49a84a61a2a726c8f44d57b85c0be546/update/1.3.12/maradns-1.3.11-download.patch -------------------------------------------------------------------------------- /update/1.3.13/maradns-1.3.12-c2009.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.12/00README.FIRST 2008-03-24 09:52:27.000000000 -0600 2 | +++ maradns-1.3.13/00README.FIRST 2009-02-01 09:12:18.000000000 -0600 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2002-2008 Sam Trenholme and others 5 | +Copyright (c) 2002-2009 Sam Trenholme and others 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /update/1.3.13/maradns-1.3.12-rg32hash.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.12/tools/misc/Makefile 2005-03-21 08:27:19.000000000 -0600 2 | +++ maradns-1.3.13/tools/misc/Makefile 2009-01-14 18:23:08.000000000 -0600 3 | @@ -1,5 +1,5 @@ 4 | ROBJECTS=../../rng/rng-alg-fst.o ../../rng/rng-api-fst.o 5 | -EXECS=marahash mqhash 6 | +EXECS=marahash mqhash rg32hash 7 | 8 | FLAGS = -g 9 | #FLAGS = -g 10 | @@ -15,3 +15,6 @@ 11 | mqhash: $(ROBJECTS) mqhash.c 12 | $(CC) $(FLAGS) -o mqhash mqhash.c $(ROBJECTS) 13 | 14 | +rg32hash: rg32hash.c 15 | + $(CC) $(FLAGS) -o rg32hash rg32hash.c 16 | + 17 | -------------------------------------------------------------------------------- /update/1.4.01/maradns-1.3.14-geist.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.14/parse/Csv2_parse.c 2009-08-04 11:52:44.000000000 -0500 2 | +++ maradns-1.3.15/parse/Csv2_parse.c 2009-08-25 11:05:19.000000000 -0500 3 | @@ -723,7 +723,7 @@ 4 | /* Get 1st character; we use a sub function so we can use the 5 | * same code as process_something */ 6 | o = process_1stchar(stream,csv2_is_starwhitis_ordot,"Z"); 7 | - if(o == 0) { 8 | + if(o == 0 || o->string == 0) { 9 | return 0; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /update/1.4.01/maradns-1.3.14-naptr.patch: -------------------------------------------------------------------------------- 1 | Provided by Joey Parrish. 2 | 3 | --- maradns-1.3.14/parse/Csv2_parse.c 2009-08-04 11:52:44.000000000 -0500 4 | +++ maradns-1.3.15/parse/Csv2_parse.c 2009-08-07 13:30:57.000000000 -0500 5 | @@ -1786,6 +1786,7 @@ 6 | break; 7 | case RR_NAPTR: 8 | rddata = csv2_get_naptr(stream); 9 | + break; 10 | default: 11 | /* RAW rtype */ 12 | if(rtype >= 100000 && rtype <= 165535) { 13 | -------------------------------------------------------------------------------- /update/1.4.02/maradns-1.4.01-2010.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.4.01/00README.FIRST 2009-02-13 02:18:31.000000000 -0600 2 | +++ maradns-1.4.02/00README.FIRST 2010-01-07 18:54:17.000000000 -0600 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2002-2009 Sam Trenholme and others 5 | +Copyright (c) 2002-2010 Sam Trenholme and others 6 | 7 | TERMS 8 | 9 | --- maradns-1.4.01/COPYING 2007-10-19 08:54:14.000000000 -0500 10 | +++ maradns-1.4.02/COPYING 2010-01-07 18:54:27.000000000 -0600 11 | @@ -1,4 +1,4 @@ 12 | -Copyright (c) 2002-2007 Sam Trenholme 13 | +Copyright (c) 2002-2010 Sam Trenholme and others 14 | 15 | TERMS 16 | 17 | -------------------------------------------------------------------------------- /update/1.4.03/maradns-1.4.02-license.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.4.02/doc/en/webpage/license.embed 2009-02-13 02:18:31.000000000 -0600 2 | +++ maradns-1.4.03/doc/en/webpage/license.embed 2010-01-17 12:20:51.000000000 -0600 3 | @@ -1,9 +1,9 @@ 4 | -

        MaraDNS 1.2 license

        5 | +

        MaraDNS license

        6 | 7 | MaraDNS' license is as follows: 8 | 9 |
        10 | -Copyright (c) 2002-2009 Sam Trenholme and others 11 | +Copyright (c) 2002-2010 Sam Trenholme and others 12 |

        13 | TERMS 14 |

        15 | -------------------------------------------------------------------------------- /update/1.4.05/maradns-1.4.04-changelog.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.4.04/doc/en/webpage/changelog.embed 2010-07-31 00:17:06.000000000 -0700 2 | +++ maradns-1.4.05/doc/en/webpage/changelog.embed 2010-08-05 04:20:11.000000000 -0700 3 | @@ -4,7 +4,6 @@ 4 | This is the stable branch of MaraDNS. 5 |

        6 |
          7 | -
            8 |
          • Bugfix: NAPTR records now work when ~ is used to separate records 9 |
          • NAPTR records now documented 10 |
          • Bugfix: ANY queries now correctly work with NS referrals 11 | -------------------------------------------------------------------------------- /update/1.4.08/maradns-1.4.07-2011.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.4.07/00README.FIRST 2010-01-08 10:07:40.000000000 -0600 2 | +++ maradns-1.4.08/00README.FIRST 2011-12-29 12:01:36.371964880 -0600 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2002-2010 Sam Trenholme and others 5 | +Copyright (c) 2002-2011 Sam Trenholme and others 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /update/1.4.10/maradns-1.3-even_better_hash.patch: -------------------------------------------------------------------------------- 1 | --- maradns-1.3.07.13/libs/MaraHash.c 2011-12-30 16:12:15.000000000 -0600 2 | +++ maradns-1.3.07.14/libs/MaraHash.c 2012-01-13 13:26:33.407557972 -0600 3 | @@ -104,6 +104,7 @@ 4 | while(point < max) { 5 | ret += (mhash_offset)(*point << shift); 6 | ret += mhash_secret_add_constant; 7 | + ret *= 45737; 8 | shift += 7; 9 | shift %= hash_bits; 10 | point++; 11 | -------------------------------------------------------------------------------- /update/2.0.02/maradns-2.0.01-2011.patch: -------------------------------------------------------------------------------- 1 | --- maradns-2.0.01/00README.FIRST 2010-01-08 09:07:40.000000000 -0700 2 | +++ maradns-2.0.02/00README.FIRST 2011-02-05 19:16:25.000000000 -0700 3 | @@ -1,4 +1,4 @@ 4 | -Copyright (c) 2002-2010 Sam Trenholme and others 5 | +Copyright (c) 2002-2011 Sam Trenholme and others 6 | 7 | TERMS 8 | 9 | -------------------------------------------------------------------------------- /update/2.0.02/maradns-2.0.01-docs.patch: -------------------------------------------------------------------------------- 1 | --- maradns-2.0.01/doc/en/source/dangling.ej 2010-09-27 14:43:45.000000000 -0700 2 | +++ maradns-2.0.02/doc/en/source/dangling.ej 2010-09-28 11:46:32.000000000 -0700 3 | @@ -104,6 +104,7 @@ 4 | ipv4_bind_addresses = "192.168.1.1" 5 | chroot_dir = "/etc/maradns" 6 | recursive_acl = "192.168.1.0/24" 7 | +upstream_servers = {} 8 | upstream_servers["example.com."] = "192.168.1.2" 9 | 10 | 11 | -------------------------------------------------------------------------------- /update/2.0.02/maradns-2.0.01-were_at_two.patch: -------------------------------------------------------------------------------- 1 | --- maradns-2.0.01/server/MaraDNS.c 2010-08-28 16:34:40.000000000 -0600 2 | +++ maradns-2.0.02/server/MaraDNS.c 2011-02-05 18:22:12.000000000 -0700 3 | @@ -4538,7 +4538,7 @@ 4 | if(1 == 2) { 5 | #endif /* __CYGWIN__ */ 6 | #ifndef ALLOW_NON_ROOT 7 | - harderror("Running MaraDNS 1.2 as a non-root server support disabled"); 8 | + harderror("Running MaraDNS 2.0 as a non-root server support disabled"); 9 | #else 10 | /* Bind to port 53 as a non-root user */ 11 | bind_address = read_string_kvar("bind_address"); 12 | -------------------------------------------------------------------------------- /update/2.0.03/maradns-2.0.02-ej2man.patch: -------------------------------------------------------------------------------- 1 | --- maradns-2.0.02/tools/ej/ej2man 2006-11-24 05:44:29.000000000 -0600 2 | +++ maradns-2.0.03/tools/ej/ej2man 2011-04-29 14:14:48.000000000 -0500 3 | @@ -162,6 +162,9 @@ 4 | } 5 | 6 | $body = process_body($body,0); 7 | +$body =~ s/\>\;/>/g; 8 | +$body =~ s/\<\;/