From 4ebe1a0cc36061541d3a414a6a8b7a7aacc68ed5 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 5 Dec 2018 11:11:41 +0100 Subject: Simplify setProxy logic / use system defaults unless overwritten --- src/features/serviceProxy/index.js | 47 +++++++++++++++----------------------- 1 file changed, 18 insertions(+), 29 deletions(-) (limited to 'src/features/serviceProxy') diff --git a/src/features/serviceProxy/index.js b/src/features/serviceProxy/index.js index e7e6e16d7..ee0b4e79c 100644 --- a/src/features/serviceProxy/index.js +++ b/src/features/serviceProxy/index.js @@ -1,7 +1,7 @@ import { autorun, observable } from 'mobx'; import { remote } from 'electron'; -import { DEFAULT_FEATURES_CONFIG, HEALTHCHECK_URL } from '../../config'; +import { DEFAULT_FEATURES_CONFIG } from '../../config'; const { session } = remote; @@ -15,41 +15,30 @@ export const config = observable({ export default function init(stores) { debug('Initializing `serviceProxy` feature'); - const { defaultSession } = session; - defaultSession.resolveProxy(HEALTHCHECK_URL, (proxy) => { - debug('Resolve proxy', proxy); + autorun(() => { + const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features; - let systemProxy = 'direct://'; - const proxyMatch = proxy.match(/PROXY (.*)/i); - if (proxyMatch.length) { - systemProxy = proxyMatch[1].trim(); - } + config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled; + config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature; - autorun(() => { - const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features; + const services = stores.services.enabled; + const isPremiumUser = stores.user.data.isPremium; - config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled; - config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature; + services.forEach((service) => { + const s = session.fromPartition(`persist:service-${service.id}`); - const services = stores.services.enabled; - const isPremiumUser = stores.user.data.isPremium; + if (config.isEnabled && (isPremiumUser || !config.isPremium)) { + const serviceProxyConfig = stores.settings.proxy[service.id]; - services.forEach((service) => { - let proxyHost = systemProxy; - const s = session.fromPartition(`persist:service-${service.id}`); + if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { + const proxyHost = serviceProxyConfig.host; + debug(`Setting proxy config from service settings for "${service.name}" (${service.id}) to`, proxyHost); - if (config.isEnabled && (isPremiumUser || !config.isPremium)) { - const serviceProxyConfig = stores.settings.proxy[service.id]; - - if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { - proxyHost = serviceProxyConfig.host; - } + s.setProxy({ proxyRules: proxyHost }, () => { + debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`); + }); } - - s.setProxy({ proxyRules: proxyHost }, () => { - debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`); - }); - }); + } }); }); } -- cgit v1.2.3-54-g00ecf