gluon-wan-dnsmasq: allow configuring static DNS servers
This commit is contained in:
parent
488ed1bdd7
commit
d8f0c531c9
@ -0,0 +1,2 @@
|
||||
config 'static'
|
||||
# list 'server' '192.168.0.1' # Example
|
@ -16,7 +16,7 @@ RESOLV_CONF=$RESOLV_CONF_DIR/resolv.conf
|
||||
|
||||
start() {
|
||||
mkdir -p $RESOLV_CONF_DIR
|
||||
touch $RESOLV_CONF
|
||||
/lib/gluon/wan-dnsmasq/update.lua
|
||||
|
||||
LD_PRELOAD=libpacketmark.so LIBPACKETMARK_MARK=$PACKET_MARK service_start /usr/sbin/dnsmasq -x $SERVICE_PID_FILE -u root -i lo -p $PORT -h -r $RESOLV_CONF
|
||||
}
|
||||
|
@ -5,21 +5,31 @@ local RESOLV_CONF = RESOLV_CONF_DIR .. '/resolv.conf'
|
||||
|
||||
|
||||
local ubus = require('ubus').connect()
|
||||
local uci = require('luci.model.uci').cursor()
|
||||
local fs = require 'nixio.fs'
|
||||
|
||||
|
||||
local function write_servers(f, iface)
|
||||
local servers = ubus:call('network.interface.' .. iface, 'status', {}).inactive['dns-server']
|
||||
local function write_servers(f, servers)
|
||||
for _, server in ipairs(servers) do
|
||||
f:write('nameserver ', server, '\n')
|
||||
end
|
||||
end
|
||||
|
||||
local function write_interface_servers(f, iface)
|
||||
write_servers(f, ubus:call('network.interface.' .. iface, 'status', {}).inactive['dns-server'])
|
||||
end
|
||||
|
||||
|
||||
fs.mkdirr(RESOLV_CONF_DIR)
|
||||
local f = io.open(RESOLV_CONF, 'w+')
|
||||
|
||||
pcall(write_servers, f, 'wan6')
|
||||
pcall(write_servers, f, 'wan')
|
||||
local static = uci:get_first('gluon-wan-dnsmasq', 'static', 'server')
|
||||
|
||||
if type(static) == 'table' and #static > 0 then
|
||||
write_servers(f, static)
|
||||
else
|
||||
pcall(write_interface_servers, f, 'wan6')
|
||||
pcall(write_interface_servers, f, 'wan')
|
||||
end
|
||||
|
||||
f:close()
|
||||
|
Loading…
Reference in New Issue
Block a user