Merge pull request #1473 from Computroniks/#1059-specify-dns-resolver-port
Added #1059: Allow to specify Resolver Port for DNS Monitor
This commit is contained in:
commit
35b8e89457
|
@ -330,7 +330,7 @@ class Monitor extends BeanModel {
|
||||||
let startTime = dayjs().valueOf();
|
let startTime = dayjs().valueOf();
|
||||||
let dnsMessage = "";
|
let dnsMessage = "";
|
||||||
|
|
||||||
let dnsRes = await dnsResolve(this.hostname, this.dns_resolve_server, this.dns_resolve_type);
|
let dnsRes = await dnsResolve(this.hostname, this.dns_resolve_server, this.port, this.dns_resolve_type);
|
||||||
bean.ping = dayjs().valueOf() - startTime;
|
bean.ping = dayjs().valueOf() - startTime;
|
||||||
|
|
||||||
if (this.dns_resolve_type === "A" || this.dns_resolve_type === "AAAA" || this.dns_resolve_type === "TXT") {
|
if (this.dns_resolve_type === "A" || this.dns_resolve_type === "AAAA" || this.dns_resolve_type === "TXT") {
|
||||||
|
|
|
@ -176,12 +176,16 @@ exports.mqttAsync = function (hostname, topic, okMessage, options = {}) {
|
||||||
* Resolves a given record using the specified DNS server
|
* Resolves a given record using the specified DNS server
|
||||||
* @param {string} hostname The hostname of the record to lookup
|
* @param {string} hostname The hostname of the record to lookup
|
||||||
* @param {string} resolverServer The DNS server to use
|
* @param {string} resolverServer The DNS server to use
|
||||||
|
* @param {string} resolverPort Port the DNS server is listening on
|
||||||
* @param {string} rrtype The type of record to request
|
* @param {string} rrtype The type of record to request
|
||||||
* @returns {Promise<(string[]|Object[]|Object)>}
|
* @returns {Promise<(string[]|Object[]|Object)>}
|
||||||
*/
|
*/
|
||||||
exports.dnsResolve = function (hostname, resolverServer, rrtype) {
|
exports.dnsResolve = function (hostname, resolverServer, resolverPort, rrtype) {
|
||||||
const resolver = new Resolver();
|
const resolver = new Resolver();
|
||||||
resolver.setServers([ resolverServer ]);
|
// Remove brackets from IPv6 addresses so we can re-add them to
|
||||||
|
// prevent issues with ::1:5300 (::1 port 5300)
|
||||||
|
resolverServer = resolverServer.replace("[", "").replace("]", "");
|
||||||
|
resolver.setServers([`[${resolverServer}]:${resolverPort}`]);
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (rrtype === "PTR") {
|
if (rrtype === "PTR") {
|
||||||
resolver.reverse(hostname, (err, records) => {
|
resolver.reverse(hostname, (err, records) => {
|
||||||
|
|
|
@ -13,6 +13,7 @@ export default {
|
||||||
pauseDashboardHome: "Pause",
|
pauseDashboardHome: "Pause",
|
||||||
deleteMonitorMsg: "Are you sure want to delete this monitor?",
|
deleteMonitorMsg: "Are you sure want to delete this monitor?",
|
||||||
deleteNotificationMsg: "Are you sure want to delete this notification for all monitors?",
|
deleteNotificationMsg: "Are you sure want to delete this notification for all monitors?",
|
||||||
|
dnsPortDescription: "DNS server port. Defaults to 53. You can change the port at any time.",
|
||||||
resolverserverDescription: "Cloudflare is the default server. You can change the resolver server anytime.",
|
resolverserverDescription: "Cloudflare is the default server. You can change the resolver server anytime.",
|
||||||
rrtypeDescription: "Select the RR type you want to monitor",
|
rrtypeDescription: "Select the RR type you want to monitor",
|
||||||
pauseMonitorMsg: "Are you sure want to pause?",
|
pauseMonitorMsg: "Are you sure want to pause?",
|
||||||
|
|
|
@ -94,6 +94,15 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Port -->
|
||||||
|
<div class="my-3">
|
||||||
|
<label for="port" class="form-label">{{ $t("Port") }}</label>
|
||||||
|
<input id="port" v-model="monitor.port" type="number" class="form-control" required min="0" max="65535" step="1">
|
||||||
|
<div class="form-text">
|
||||||
|
{{ $t("dnsPortDescription") }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="my-3">
|
<div class="my-3">
|
||||||
<label for="dns_resolve_type" class="form-label">{{ $t("Resource Record Type") }}</label>
|
<label for="dns_resolve_type" class="form-label">{{ $t("Resource Record Type") }}</label>
|
||||||
|
|
||||||
|
@ -469,6 +478,15 @@ export default {
|
||||||
this.monitor.pushToken = genSecret(10);
|
this.monitor.pushToken = genSecret(10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set default port for DNS if not already defined
|
||||||
|
if (! this.monitor.port || this.monitor.port === "53") {
|
||||||
|
if (this.monitor.type === "dns") {
|
||||||
|
this.monitor.port = "53";
|
||||||
|
} else {
|
||||||
|
this.monitor.port = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue