diff --git a/src/settings.js b/src/settings.js index a83c8b0a7..3a078b8a3 100644 --- a/src/settings.js +++ b/src/settings.js @@ -378,6 +378,7 @@ async function getIPv6Config() { async function setIPv6Config(enabled) { assert.strictEqual(typeof enabled, 'boolean'); + if (enabled) await sysinfo.getServerIPv6(); await set(exports.IPV6_KEY, enabled ? 'enabled' : ''); // db holds string values only notifyChange(exports.IPV6_KEY, enabled); } diff --git a/src/sysinfo/generic.js b/src/sysinfo/generic.js index 8f7c683f3..9d0f9b785 100644 --- a/src/sysinfo/generic.js +++ b/src/sysinfo/generic.js @@ -9,7 +9,6 @@ exports = module.exports = { const assert = require('assert'), BoxError = require('../boxerror.js'), debug = require('debug')('box:sysinfo/generic'), - promiseRetry = require('../promise-retry.js'), safe = require('safetydance'), superagent = require('superagent'); @@ -27,7 +26,7 @@ async function getServerIPv4(config) { if (networkError || response.status !== 200) { debug('getServerIPv4: Error getting IP', networkError); - throw new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to detect IPv4. API server unreachable'); + throw new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to detect IPv4. API server (ipv4.api.cloudron.io) unreachable'); } if (!response.body && !response.body.ip) { @@ -52,7 +51,7 @@ async function getServerIPv6(config) { if (networkError || response.status !== 200) { debug('getServerIPv6: Error getting IP', networkError); - throw new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to detect IPv6. API server unreachable'); + throw new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to detect IPv6. API server (ipv6.api.cloudron.io) unreachable'); } if (!response.body && !response.body.ip) {