12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/usr/bin/lua
- local site = require 'gluon.site_config'
- local sysconfig = require 'gluon.sysconfig'
- local util = require 'gluon.util'
- local ip = require 'luci.ip'
- local lutil = require 'luci.util'
- local uci = require('simple-uci').cursor()
- local ip4, netmask, ip6
- if site.next_node.ip4 then
- ip4 = site.next_node.ip4
- netmask = ip.IPv4(site.prefix4):mask():string()
- end
- if site.next_node.ip6 then
- ip6 = site.next_node.ip6 .. '/128'
- end
- uci:section('network', 'interface', 'client',
- {
- type = 'bridge',
- proto = 'static',
- macaddr = site.next_node.mac,
- ipaddr = ip4,
- netmask = netmask,
- ip6addr = ip6,
- }
- )
- uci:delete('network', 'client', 'reqprefix')
- uci:delete('network', 'client', 'peerdns')
- uci:delete('network', 'client', 'sourcefilter')
- local interfaces = uci:get('network', 'client', 'ifname') or {}
- if type(interfaces) == 'string' then
- local ifname = interfaces
- interfaces = {}
- for iface in ifname:gmatch("[^%s]+") do
- util.add_to_set(interfaces, iface)
- end
- end
- if sysconfig.lan_ifname and not ifname and not uci:get_bool('network', 'mesh_lan', 'auto') then
- for _, lanif in ipairs(lutil.split(sysconfig.lan_ifname, ' ')) do
- util.add_to_set(interfaces, lanif)
- end
- end
- uci:set_list('network', 'client', 'ifname', interfaces)
- uci:save('network')
- local dnsmasq = uci:get_first('dhcp', 'dnsmasq')
- uci:set('dhcp', dnsmasq, 'boguspriv', false)
- uci:set('dhcp', dnsmasq, 'localise_queries', false)
- uci:set('dhcp', dnsmasq, 'rebind_protection', false)
- uci:delete('dhcp', 'client')
- uci:section('dhcp', 'dhcp', 'client',
- {
- interface = 'client',
- ignore = true,
- }
- )
- uci:save('dhcp')
|