diff --git a/.eslintrc.js b/.eslintrc.js index 3283fa5a..943e19e9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -36,22 +36,7 @@ module.exports = { }], "curly": "error", "object-curly-spacing": ["error", "always"], - "object-curly-newline": ["error", { - "ObjectExpression": { - "minProperties": 1, - }, - "ObjectPattern": { - "multiline": true, - "minProperties": 2, - }, - "ImportDeclaration": { - "multiline": true, - }, - "ExportDeclaration": { - "multiline": true, - //'minProperties': 2, - }, - }], + "object-curly-newline": "off", "object-property-newline": "error", "comma-spacing": "error", "brace-style": "error", diff --git a/server/model/monitor.js b/server/model/monitor.js index 1d25df93..4ff0b4cb 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -6,22 +6,12 @@ dayjs.extend(utc) dayjs.extend(timezone) const axios = require("axios"); const { Prometheus } = require("../prometheus"); -const { - debug, UP, DOWN, PENDING, -} = require("../../src/util"); -const { - tcping, ping, checkCertificate, -} = require("../util-server"); +const { debug, UP, DOWN, PENDING } = require("../../src/util"); +const { tcping, ping, checkCertificate } = require("../util-server"); const { R } = require("redbean-node"); const { BeanModel } = require("redbean-node/dist/bean-model"); const { Notification } = require("../notification") -// Use Custom agent to disable session reuse -// https://github.com/nodejs/node/issues/3940 -const customAgent = new https.Agent({ - maxCachedSessions: 0, -}); - /** * status: * 0 = DOWN @@ -53,12 +43,28 @@ class Monitor extends BeanModel { type: this.type, interval: this.interval, keyword: this.keyword, - ignoreTls: Boolean(this.ignoreTls), - upsideDown: Boolean(this.upsideDown), + ignoreTls: this.getIgnoreTls(), + upsideDown: this.getUpsideDown(), notificationIDList, }; } + /** + * Parse to boolean + * @returns {boolean} + */ + getIgnoreTls() { + return Boolean(this.ignoreTls) + } + + /** + * Parse to boolean + * @returns {boolean} + */ + getUpsideDown() { + return Boolean(this.upsideDown); + } + start(io) { let previousBeat = null; let retries = 0; @@ -90,11 +96,17 @@ class Monitor extends BeanModel { try { if (this.type === "http" || this.type === "keyword") { let startTime = dayjs().valueOf(); + + // Use Custom agent to disable session reuse + // https://github.com/nodejs/node/issues/3940 let res = await axios.get(this.url, { headers: { "User-Agent": "Uptime-Kuma", }, - httpsAgent: customAgent, + httpsAgent: new https.Agent({ + maxCachedSessions: 0, + rejectUnauthorized: ! this.getIgnoreTls(), + }), }); bean.msg = `${res.status} - ${res.statusText}` bean.ping = dayjs().valueOf() - startTime;