Nsupdate in production only; removed CIDR part from user.peers ip addresses

master
wgapi Cloud9 2021-10-22 01:29:43 -06:00
parent a0e5f38f0f
commit 66c62fc8c9
3 changed files with 31 additions and 27 deletions

View File

@ -49,10 +49,10 @@ module.exports = async (req, res) => {
// Find next available host part
const used_ipv4_hosts = user.peers
.map((host) => host.ipv4).map((found_ipv4) =>
found_ipv4.toString().split('.')[3].split('/')[0])
found_ipv4.toString().split('.')[3])
const used_ipv6_hosts = user.peers
.map((host) => host.ipv6).map((found_ipv6) =>
found_ipv6.toString().split(':')[3].split('/')[0])
found_ipv6.toString().split(':')[3])
let host = 1
while ([...used_ipv4_hosts,...used_ipv6_hosts].includes(host.toString())) host++
@ -118,18 +118,20 @@ AllowedIPs = ${ipv4_addr}/32, ${ipv6_addr}/128`
}
// Update nameserver
const domain = `${new_hostname}.${user.name}.${env.TLD}.`
try {
await helper.nsUpdate(dns_key, env.DNS_MASTER,
`update add ${domain} ${env.DNS_TTL} A ${ipv4_addr}
update add ${domain} ${env.DNS_TTL} AAAA ${ipv6_addr}
update add *.${domain} ${env.DNS_TTL} CNAME ${domain}`)
if (env.ENV==='prod') {
const domain = `${new_hostname}.${user.name}.${env.TLD}.`
try {
await helper.nsUpdate(dns_key, env.DNS_MASTER,
`update add ${domain} ${env.DNS_TTL} A ${ipv4_addr}
update add ${domain} ${env.DNS_TTL} AAAA ${ipv6_addr}
update add *.${domain} ${env.DNS_TTL} CNAME ${domain}`)
}
catch (err) {
console.error(`Failed to add ns record.`)
if (err) console.error(err)
}
console.log(`Updated nameserver to add ${domain}.`)
}
catch (err) {
console.error(`Failed to add ns record.`)
if (err) console.error(err)
}
console.log(`Updated nameserver to add ${domain}.`)
// Generate user config
const listen_port = Math.floor(50000 + Math.random() * 10000)

View File

@ -129,18 +129,20 @@ module.exports = async (req, res) => {
}
// Delete domains from nameserver
try {
await helper.nsUpdate(dns_key, env.DNS_MASTER,
`update delete ${peer_name}. A
update delete ${peer_name}. AAAA
update delete *.${peer_name}. CNAME`)
if (env.ENV==='prod') {
try {
await helper.nsUpdate(dns_key, env.DNS_MASTER,
`update delete ${peer_name}. A
update delete ${peer_name}. AAAA
update delete *.${peer_name}. CNAME`)
}
catch (err) {
console.error(`Failed to delete ns record`)
if (err) console.error(err)
return res.sendStatus(500)
}
console.log(`Updated nameserver to delete ${peer_name}.`)
}
catch (err) {
console.error(`Failed to delete ns record`)
if (err) console.error(err)
return res.sendStatus(500)
}
console.log(`Updated nameserver to delete ${peer_name}.`)
return res.sendStatus(200)

View File

@ -38,8 +38,8 @@ module.exports = {
}
else if (line.includes('AllowedIPs = ')) {
const ips = line.split('=')[1].split(', ')
userpeer_obj.ipv4 = ips.filter( (ip) => ip.includes(env.IPV4_NET) )[0].trim()
userpeer_obj.ipv6 = ips.filter( (ip) => ip.includes(env.IPV6_NET) )[0].trim()
userpeer_obj.ipv4 = ips.filter( (ip) => ip.includes(env.IPV4_NET) )[0].trim().split('/')[0]
userpeer_obj.ipv6 = ips.filter( (ip) => ip.includes(env.IPV6_NET) )[0].trim().split('/')[0]
}
}
found_hosts.push(userpeer_obj)
@ -110,7 +110,7 @@ module.exports = {
})
nsupdate.on('exit', (status) => {
console.log(`nsupdate exited with status: ${status}`)
if (status===0) reject(errors)
if (status!==0) reject(errors)
else resolve()
})