Open RossComputerGuy opened 8 years ago
Hey, I have been working on BasicOS. I thought to add in Bind9. Here is my code:
var runtime = require("runtimejs"); var SDK = require("/SDK/"); var Domains = require("/Config/Bind.json").Domains; var RECORDS = { A: 0x0001, MX: 0x000f, NS: 0x0002, CNAME: 0x0005 }; function getRecord(zone) { switch(zone.type) { case RECORDS.A: return RECORDS.A; case RECORDS.MX: return RECORDS.MX; case RECORDS.NS: return RECORDS.NS; case RECORDS.CNAME: return RECORDS.CNAME; } } function getRDATA(data) { var rdata = ""; switch(getRecord(data.zone)) { case RECORDS.A: rdata = data.zone.target; break; case RECORDS.CNAME: rdata = data.zone.name; break; case RECORDS.NS: rdata = data.zone.name; break; case RECORDS.MX: rdata = { "PREFERENCE": data.zone.priority "EXCHANGE": data.domain.name }; break; } return rdata; } function Answer(data) { var h; h = { "NAME": data.name, "TYPE": getRecord(data.zone), "CLASS": 0x0001, "TTL": data.zone.ttl, "RDLENGTH": getRDATA(data).length, "RDATA": getRDATA(data) }; return h; } function Question(headers) { var h; for(var i = 0;i < Domains.length;i++) { if(headers.get("QNAME") == Domains[i].name) { var Domain = Domains[i]; for(var i = 0;i < Domain.Zones[i];i++) { if(headers.get("QTYPE") == Domain.Zones[i].type) { var zone = Domain.Zones[i]; if(headers.get("QCLASS") == 0x0001) { h = Answer({ domain: Domain, zone: zone }); } break; } } break; } } return h; } var server = new SDK.Server(90); server.onRequest(function(request) { console.log(request); var options = {}; var headers = request._headers; var names = headers._names; var values = headers._values; var HEADERS = new Map(); for(var i = 0;i < names.length;i++) { HEADERS.add(names[i],values[i]); } server.createResponse(200,{ },Question(HEADERS)); }); server.open();
If it doesn't work, touch it up and send the new code to me. NOTE: You have to download my os and make a service. Links:
Hey, I have been working on BasicOS. I thought to add in Bind9. Here is my code:
If it doesn't work, touch it up and send the new code to me. NOTE: You have to download my os and make a service. Links: