From 92c2b613185cf21ca5745f182b56a50c365957c4 Mon Sep 17 00:00:00 2001 From: si458 Date: Fri, 20 Jun 2025 20:18:21 +0100 Subject: [PATCH] disable compression by default and dont compress webrelays #4369 Signed-off-by: si458 --- meshcentral-config-schema.json | 4 ++-- monitoring.js | 1 - sample-config-advanced.json | 2 +- webrelayserver.js | 1 - webserver.js | 3 ++- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/meshcentral-config-schema.json b/meshcentral-config-schema.json index dfab1e81..86ae7911 100644 --- a/meshcentral-config-schema.json +++ b/meshcentral-config-schema.json @@ -536,8 +536,8 @@ }, "compression": { "type": "boolean", - "default": true, - "description": "Enables GZIP compression for web requests." + "default": false, + "description": "Enables GZIP compression for web requests. Disabled by default." }, "wsCompression": { "type": "boolean", diff --git a/monitoring.js b/monitoring.js index 12a8f6c8..d552af23 100644 --- a/monitoring.js +++ b/monitoring.js @@ -14,7 +14,6 @@ module.exports.CreateMonitoring = function (parent, args) { obj.express = require('express'); obj.app = obj.express(); obj.prometheus = null; - if (args.compression !== false) { obj.app.use(require('compression')()); } obj.app.disable('x-powered-by'); obj.counterMetrics = { // Counter Metrics always start at 0 and increase but never decrease RelayErrors: { description: "Relay Errors" }, // parent.webserver.relaySessionErrorCount diff --git a/sample-config-advanced.json b/sample-config-advanced.json index 7ee214a2..58fb5ed6 100644 --- a/sample-config-advanced.json +++ b/sample-config-advanced.json @@ -65,7 +65,7 @@ "_agentIdleTimeout": 150, "_webPageLengthRandomization": false, "_compression": true, - "_wsCompression": false, + "_wsCompression": true, "_agentWsCompression": true, "_noAgentUpdate": 1, "_agentUpdateSystem": 1, diff --git a/webrelayserver.js b/webrelayserver.js index 66ab2761..9db29f37 100644 --- a/webrelayserver.js +++ b/webrelayserver.js @@ -23,7 +23,6 @@ module.exports.CreateWebRelayServer = function (parent, db, args, certificates, obj.tlsServer = null; obj.net = require('net'); obj.app = obj.express(); - if (args.compression !== false) { obj.app.use(require('compression')()); } obj.app.disable('x-powered-by'); obj.webRelayServer = null; obj.port = 0; diff --git a/webserver.js b/webserver.js index e1ac80ec..3fe22892 100644 --- a/webserver.js +++ b/webserver.js @@ -65,9 +65,10 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF obj.db = db; obj.app = obj.express(); if (obj.args.agentport) { obj.agentapp = obj.express(); } - if (args.compression !== false) { + if (args.compression === true) { obj.app.use(require('compression')({ filter: function (req, res) { if (req.path == '/devicefile.ashx') return false; // Don't compress device file transfers to show file sizes + if ((args.relaydns != null) && (obj.args.relaydns.indexOf(req.hostname) >= 0)) return false; // Don't compress DNS relay requests return require('compression').filter(req, res); }})); }