diff --git a/coredns_bridge.js b/coredns_bridge.js index 44439ce..6131811 100644 --- a/coredns_bridge.js +++ b/coredns_bridge.js @@ -33,7 +33,7 @@ async function RegisterNewDomain(domain) { if (!prefix) throw new Error("Invalid domain"); const key = `${prefix}`; - const value = JSON.stringify({ type: 'A', host: '10.66.66.1', ttl: '300' }); + const value = JSON.stringify({ host: '10.66.66.1', ttl: '300' }); await client.put(key).value(value); } diff --git a/routes/dns.js b/routes/dns.js index cca6e33..219c257 100644 --- a/routes/dns.js +++ b/routes/dns.js @@ -9,6 +9,13 @@ const pageTitle = 'Domain Manager | Edit DNS'; const { GetAllRecords, CoreDNSToDomain } = require('../coredns_bridge.js'); const { capitalizeFirstLetter } = require('../helpers.js'); +const recordTypeMap = { + "host": "A", + "cname": "CNAME", + "txt": "TXT", + "srv": "SRV" +} + // Manage domains router.get('/dns/edit/:domainId', authMw.AllowIfAuthenticated, async (req, res, next) => { const result = await dbConnection.transaction(async(t) => { @@ -28,11 +35,23 @@ router.get('/dns/edit/:domainId', authMw.AllowIfAuthenticated, async (req, res, const fullDomain = result.domain + "." + result.tld; const rawRecords = await GetAllRecords(fullDomain); let records = []; - let recordHeaders = []; + let recordHeaders = ["Type"]; for(const [key, value] of Object.entries(rawRecords)) { let parsedVal = JSON.parse(value); let finalRecord = {}; + let recordType = undefined; + + for(const [key, value] of Object.entries(parsedVal)) { + if(recordTypeMap[key] !== undefined) { + finalRecord["Type"] = recordTypeMap[key]; + break; + } + } + + if(recordType === undefined) { + console.warn("Unknown record type!"); + } for(const [key, value] of Object.entries(parsedVal)) { if(!recordHeaders.includes(key)) {