diff options
Diffstat (limited to 'applications')
-rw-r--r-- | applications/luci-ffwizard-leipzig/luasrc/model/cbi/ffwizard.lua | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/applications/luci-ffwizard-leipzig/luasrc/model/cbi/ffwizard.lua b/applications/luci-ffwizard-leipzig/luasrc/model/cbi/ffwizard.lua index 8fad8e0c8..af67881d0 100644 --- a/applications/luci-ffwizard-leipzig/luasrc/model/cbi/ffwizard.lua +++ b/applications/luci-ffwizard-leipzig/luasrc/model/cbi/ffwizard.lua @@ -18,6 +18,7 @@ $Id$ local uci = require "luci.model.uci".cursor() local tools = require "luci.tools.ffwizard" local util = require "luci.util" +local sys = require "luci.sys" -------------------- View -------------------- @@ -222,7 +223,7 @@ function main.write(self, section, value) uci:save("firewall") - -- Crate network interface + -- Create network interface local netconfig = uci:get_all("freifunk", "interface") util.update(netconfig, uci:get_all(external, "interface") or {}) netconfig.proto = "static" @@ -232,6 +233,21 @@ function main.write(self, section, value) uci:save("network") tools.firewall_zone_add_interface("freifunk", device) + + + -- Set hostname + local new_hostname = ip:gsub("%.", "-") + local old_hostname = sys.hostname() + + if old_hostname == "OpenWrt" or old_hostname:match("^%d+-%d+-%d+-%d+$") then + uci:foreach("system", "system", + function(s) + uci:set("system", s['.name'], "hostname", new_hostname) + end) + + luci.fs.writefile( "/proc/sys/kernel/hostname", new_hostname.."\n" ) + uci:save("system") + end end @@ -246,6 +262,19 @@ function olsr.write(self, section, value) local community = net:formvalue(section) local external = community and uci:get("freifunk", community, "external") or "" + -- Configure nameservice + local hostname + uci:foreach("system", "system", function(s) hostname = s.hostname end) + + if hostname then + uci:foreach("olsrd", "LoadPlugin", + function(s) + if s.library == "olsrd_nameservice.so.0.3" then + uci:set("olsrd", s['.name'], "name", hostname) + end + end) + end + -- Delete old interface uci:delete_all("olsrd", "Interface", {interface=device}) |