dns_server.coffee | |
|---|---|
| Pow's | dnsserver = require "dnsserver"
NS_T_A = 1
NS_C_IN = 1
NS_RCODE_NXDOMAIN = 3
module.exports = class DnsServer extends dnsserver.Server |
| Create a | constructor: (@configuration) ->
super
@on "request", @handleRequest |
| The | listen: (port, callback) ->
@bind port
callback?() |
| Each incoming DNS request ends up here. If it's an | handleRequest: (req, res) =>
pattern = @configuration.dnsDomainPattern
q = req.question ? {}
if q.type is NS_T_A and q.class is NS_C_IN and pattern.test q.name
res.addRR q.name, NS_T_A, NS_C_IN, 600, "127.0.0.1"
else
res.header.rcode = NS_RCODE_NXDOMAIN
res.send()
|