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