settings: move ipv6/ipv4 config into network

this also rename sysinfo_config to ipv4_config
This commit is contained in:
Girish Ramakrishnan
2023-08-03 06:05:29 +05:30
parent f2e56cbdd8
commit 92a103d635
14 changed files with 144 additions and 139 deletions

View File

@@ -6,6 +6,12 @@ exports = module.exports = {
getDynamicDns,
setDynamicDns,
getIPv4Config,
setIPv4Config,
getIPv6Config,
setIPv6Config,
};
const assert = require('assert'),
@@ -17,6 +23,7 @@ const assert = require('assert'),
safe = require('safetydance'),
settings = require('./settings.js'),
shell = require('./shell.js'),
sysinfo = require('./sysinfo.js'),
validator = require('validator');
const SET_BLOCKLIST_CMD = path.join(__dirname, 'scripts/setblocklist.sh');
@@ -69,3 +76,35 @@ async function setDynamicDns(enabled) {
await settings.set(settings.DYNAMIC_DNS_KEY, enabled ? 'enabled' : ''); // db holds string values only
cron.dynamicDnsChanged(enabled);
}
async function getIPv4Config() {
const value = await settings.get(settings.IPV4_CONFIG_KEY);
return value ? JSON.parse(value) : { provider: 'generic' };
}
async function setIPv4Config(ipv4Config) {
assert.strictEqual(typeof ipv4Config, 'object');
if (settings.isDemo()) throw new BoxError(BoxError.BAD_FIELD, 'Not allowed in demo mode');
const error = await sysinfo.testIPv4Config(ipv4Config);
if (error) throw error;
await settings.set(settings.IPV4_CONFIG_KEY, JSON.stringify(ipv4Config));
}
async function getIPv6Config() {
const value = await settings.get(settings.IPV6_CONFIG_KEY);
return value ? JSON.parse(value) : { provider: 'noop' };
}
async function setIPv6Config(ipv6Config) {
assert.strictEqual(typeof ipv6Config, 'object');
if (settings.isDemo()) throw new BoxError(BoxError.BAD_FIELD, 'Not allowed in demo mode');
const error = await sysinfo.testIPv6Config(ipv6Config);
if (error) throw error;
await settings.set(settings.IPV6_CONFIG_KEY, JSON.stringify(ipv6Config));
}