server.on('request', function(req, res) { var q = req.question && req.question[0]; var name = q.name; //logger.debug(util.inspect(req)); logger.debug('[%s] got query %s',req.address.address,Consts.QTYPE_TO_NAME[q.type]); if(q.type === Consts.NAME_TO_QTYPE.PTR){ dnsAnswer(res,[dns.PTR({data:'ns.dnsmm.relay',ttl:ttl})]); return; } logger.debug('got query for %s', name); var match = false; for (var i = 0; i < mappings.length; i++) { var c = mappings[i]; if (c.regx.test(name)) { logger.debug('got a match! '); getValue(q, c, res); match = true; break; } } if (!match) { logger.debug('no match forward to upstream'); forward(res, {from:name,to:name},Consts.QTYPE_TO_NAME[q.type]); } });
__.each(ips2hosts[mangled], function(n) { console.log('\t' + n) response.answer.push(dns.PTR({ name: name, data: n, ttl: 300, })); })