72 lines
1.4 KiB
JavaScript
72 lines
1.4 KiB
JavaScript
function service(target, domain, host, alias) {
|
|
return {
|
|
target: target,
|
|
domain: domain,
|
|
host: hosts[host],
|
|
alias: alias,
|
|
record: function() {
|
|
return my_host_record(this.target, this.resolve_host());
|
|
},
|
|
resolve_host: function() {
|
|
if (this.alias) {
|
|
return services[this.alias].resolve_host();
|
|
}
|
|
return this.host;
|
|
}
|
|
};
|
|
}
|
|
|
|
function collect_services(domain) {
|
|
var result = [];
|
|
for (var key in services) {
|
|
var s = services[key];
|
|
if (s.domain == domain) {
|
|
result.push(s.record());
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function my_host_record(target, host) {
|
|
switch (target) {
|
|
case "db":
|
|
return [
|
|
A(target, host.ipv4_address_vpn),
|
|
AAAA(target, host.ipv6_address_vpn)
|
|
];
|
|
default:
|
|
return [
|
|
A(target, host.ipv4_address),
|
|
AAAA(target, host.ipv6_address)
|
|
];
|
|
}
|
|
}
|
|
|
|
function verify_amazon_ses(dkims) {
|
|
var result = [];
|
|
for (var i in dkims) {
|
|
var my_dkim = dkims[i] + "._domainkey";
|
|
var ses_dkim = dkims[i] + ".dkim.amazonses.com.";
|
|
result.push(CNAME(my_dkim, ses_dkim));
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function acme_challenge(subd, target) {
|
|
var final_subd = "_acme-challenge";
|
|
if (subd) {
|
|
final_subd += "." + subd;
|
|
}
|
|
|
|
final_target = target + ".acme.serguzim.me.";
|
|
|
|
return CNAME(final_subd, final_target);
|
|
}
|
|
|
|
function verify_dmarc_reports(domains) {
|
|
var result = [];
|
|
for (d in domains) {
|
|
result.push(TXT(d + "._report._dmarc", "v=DMARC1"));
|
|
}
|
|
return result;
|
|
}
|