# Racket DNS resolver and server This is a [Racket](http://racket-lang.org/) implementation of a DNS server and iterative resolver. It's written to work with [Marketplace](https://github.com/tonyg/marketplace), but could readily be adapted to work with other I/O substrates. (It originally used Racket's `sync` and events directly.) The code is not quite fully separated into a reusable library (or even a configurable service) yet. Changing this is straightforward, but low-priority right now. Patches welcome! ## How to compile and run the code You will need the latest **prerelease** version of Racket. Any version newer than or equal to Racket 5.3.4.10 should work. Nightly-build installers for Racket can be downloaded [here](http://pre.racket-lang.org/installers/). Once you have Racket installed, raco pkg install marketplace to install Marketplace (note: will take a long time), and then raco make driver.rkt proxy.rkt to compile the DNS code. Once it has compiled successfully, DNSPORT=5444 racket driver.rkt will start a DNS leaf zone server on port 5444 holding records from `test-rrs.rkt`'s `test-rrs` variable, and DNSPORT=5444 racket proxy.rkt will start an iterative DNS resolver service on port 5444 offering regular DNS service to all comers. You can try out the service with dig @localhost -p 5444 localhost.example To enable debug output, try MATRIX_LOG=info DNSPORT=5444 racket driver.rkt ## Copyright and License Copyright 2010, 2011, 2012, 2013 Tony Garnock-Jones This file is part of marketplace-dns. marketplace-dns is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. marketplace-dns is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with marketplace-dns. If not, see .