diff --git a/src/config.js b/src/config.js index 6142c1955..4caa0b933 100644 --- a/src/config.js +++ b/src/config.js @@ -29,7 +29,6 @@ exports = module.exports = { sysadminOrigin: sysadminOrigin, // localhost routes adminFqdn: adminFqdn, mailFqdn: mailFqdn, - hasIPv6: hasIPv6, isDemo: isDemo, @@ -195,9 +194,3 @@ function isDemo() { function provider() { return get('provider'); } - -function hasIPv6() { - const IPV6_PROC_FILE = '/proc/net/if_inet6'; - // on contabo, /proc/net/if_inet6 is an empty file. so just exists is not enough - return fs.existsSync(IPV6_PROC_FILE) && fs.readFileSync(IPV6_PROC_FILE, 'utf8').trim().length !== 0; -} diff --git a/src/reverseproxy.js b/src/reverseproxy.js index ad58b0980..d5a7392ea 100644 --- a/src/reverseproxy.js +++ b/src/reverseproxy.js @@ -52,6 +52,7 @@ var acme2 = require('./cert/acme2.js'), rimraf = require('rimraf'), safe = require('safetydance'), shell = require('./shell.js'), + sysinfo = require('./sysinfo.js'), users = require('./users.js'), util = require('util'); @@ -388,7 +389,7 @@ function writeAdminNginxConfig(bundle, configFileName, vhost, callback) { sourceDir: path.resolve(__dirname, '..'), adminOrigin: config.adminOrigin(), vhost: vhost, // if vhost is empty it will become the default_server - hasIPv6: config.hasIPv6(), + hasIPv6: sysinfo.hasIPv6(), endpoint: 'admin', certFilePath: bundle.certFilePath, keyFilePath: bundle.keyFilePath, @@ -451,7 +452,7 @@ function writeAppNginxConfig(app, bundle, callback) { sourceDir: sourceDir, adminOrigin: config.adminOrigin(), vhost: app.fqdn, - hasIPv6: config.hasIPv6(), + hasIPv6: sysinfo.hasIPv6(), port: app.httpPort, endpoint: endpoint, certFilePath: bundle.certFilePath, @@ -481,7 +482,7 @@ function writeAppRedirectNginxConfig(app, fqdn, bundle, callback) { sourceDir: path.resolve(__dirname, '..'), vhost: fqdn, redirectTo: app.fqdn, - hasIPv6: config.hasIPv6(), + hasIPv6: sysinfo.hasIPv6(), endpoint: 'redirect', certFilePath: bundle.certFilePath, keyFilePath: bundle.keyFilePath, diff --git a/src/sysinfo.js b/src/sysinfo.js index 323b7193d..9942d2368 100644 --- a/src/sysinfo.js +++ b/src/sysinfo.js @@ -3,12 +3,15 @@ exports = module.exports = { SysInfoError: SysInfoError, - getPublicIp: getPublicIp + getPublicIp: getPublicIp, + + hasIPv6: hasIPv6 }; var assert = require('assert'), config = require('./config.js'), ec2 = require('./sysinfo/ec2.js'), + fs = require('fs'), generic = require('./sysinfo/generic.js'), scaleway = require('./sysinfo/scaleway.js'), util = require('util'); @@ -56,3 +59,9 @@ function getPublicIp(callback) { api.getPublicIp(callback); }); } + +function hasIPv6() { + const IPV6_PROC_FILE = '/proc/net/if_inet6'; + // on contabo, /proc/net/if_inet6 is an empty file. so just exists is not enough + return fs.existsSync(IPV6_PROC_FILE) && fs.readFileSync(IPV6_PROC_FILE, 'utf8').trim().length !== 0; +} diff --git a/src/test/config-test.js b/src/test/config-test.js index 369bb62ce..67e1528e5 100644 --- a/src/test/config-test.js +++ b/src/test/config-test.js @@ -79,8 +79,4 @@ describe('config', function () { done(); }); - - it('test machine has IPv6 support', function () { - expect(config.hasIPv6()).to.equal(true); - }); }); diff --git a/src/test/sysinfo-test.js b/src/test/sysinfo-test.js new file mode 100644 index 000000000..beee4a307 --- /dev/null +++ b/src/test/sysinfo-test.js @@ -0,0 +1,24 @@ +/* global it:false */ +/* global describe:false */ +/* global after:false */ +/* global before:false */ + +'use strict'; + +var config = require('../config.js'), + expect = require('expect.js'), + sysinfo = require('../sysinfo.js'); + +describe('config', function () { + before(function () { + config._reset(); + }); + + after(function () { + config._reset(); + }); + + it('test machine has IPv6 support', function () { + expect(sysinfo.hasIPv6()).to.equal(true); + }); +});