diff --git a/migrations/20220107015249-settings-sysinfo-ip-to-ipv4.js b/migrations/20220107015249-settings-sysinfo-ip-to-ipv4.js new file mode 100644 index 000000000..20a87b676 --- /dev/null +++ b/migrations/20220107015249-settings-sysinfo-ip-to-ipv4.js @@ -0,0 +1,17 @@ +'use strict'; + +exports.up = function(db, callback) { + db.runSql('SELECT value FROM settings WHERE name=?', [ 'sysinfo_config' ], function (error, result) { + if (error || result.length === 0) return callback(error); + const sysinfoConfig = JSON.parse(result[0].value); + if (sysinfoConfig.provider !== 'fixed' || !sysinfoConfig.ip) return callback(); + sysinfoConfig.ipv4 = sysinfoConfig.ip; + delete sysinfoConfig.ip; + + db.runSql('REPLACE INTO settings (name, value) VALUES(?, ?)', [ 'sysinfo_config', JSON.stringify(sysinfoConfig) ], callback); + }); +}; + +exports.down = function(db, callback) { + callback(); +}; diff --git a/src/sysinfo/fixed.js b/src/sysinfo/fixed.js index d9020ef7e..5d94b72a4 100644 --- a/src/sysinfo/fixed.js +++ b/src/sysinfo/fixed.js @@ -13,7 +13,7 @@ const assert = require('assert'), async function getServerIPv4(config) { assert.strictEqual(typeof config, 'object'); - return config.ip; + return config.ipv4; } async function getServerIPv6(config) { @@ -27,12 +27,12 @@ async function getServerIPv6(config) { async function testConfig(config) { assert.strictEqual(typeof config, 'object'); - if (typeof config.ip !== 'string') return new BoxError(BoxError.BAD_FIELD, 'ipv4 must be a string'); - if (!net.isIPv4(config.ip)) return new BoxError(BoxError.BAD_FIELD, 'ip is not a valid ipv4'); + if (typeof config.ipv4 !== 'string') return new BoxError(BoxError.BAD_FIELD, 'ipv4 must be a string'); + if (!net.isIPv4(config.ipv4)) return new BoxError(BoxError.BAD_FIELD, 'invalid IPv4'); if ('ipv6' in config) { if (typeof config.ipv6 !== 'string') return new BoxError(BoxError.BAD_FIELD, 'ipv6 must be a string'); - if (!net.isIPv6(config.ipv6)) return new BoxError(BoxError.BAD_FIELD, 'ipv6 is not a valid ipv6'); + if (!net.isIPv6(config.ipv6)) return new BoxError(BoxError.BAD_FIELD, 'invalid IPv6'); } return null;