summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2009-02-01 17:08:40 +0000
committerJo-Philipp Wich <jow@openwrt.org>2009-02-01 17:08:40 +0000
commit4b9f7db1cea69524ca46098b446b0fe51e87091b (patch)
tree13b2078e06fa466c76aaf09ca7c7320733f8f5f1
parentd7d27ffe6adfb42be253bf2a62e7cc4e209affaf (diff)
libs/sys: extend luci.sys.hostname() to allow setting a new name
modules/admin-{full,mini}: update the hostname at runtime
-rw-r--r--libs/sys/luasrc/sys.lua12
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_system/system.lua18
-rw-r--r--modules/admin-mini/luasrc/model/cbi/mini/system.lua20
3 files changed, 34 insertions, 16 deletions
diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua
index a2c9a3111..3e2ce7f31 100644
--- a/libs/sys/luasrc/sys.lua
+++ b/libs/sys/luasrc/sys.lua
@@ -129,10 +129,16 @@ end
-- @return Table containing all variables if no variable name is given
getenv = posix.getenv
---- Determine the current hostname.
+--- Get or set the current hostname.
+-- @param String containing a new hostname to set (optional)
-- @return String containing the system hostname
-function hostname()
- return posix.uname("%n")
+function hostname(newname)
+ if type(newname) == "string" and #newname > 0 then
+ luci.fs.writefile( "/proc/sys/kernel/hostname", newname .. "\n" )
+ return newname
+ else
+ return posix.uname("%n")
+ end
end
--- Returns the contents of a documented referred by an URL.
diff --git a/modules/admin-full/luasrc/model/cbi/admin_system/system.lua b/modules/admin-full/luasrc/model/cbi/admin_system/system.lua
index 9820cceb2..681468064 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_system/system.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_system/system.lua
@@ -28,10 +28,10 @@ s:option(DummyValue, "_system", translate("system")).value = system
s:option(DummyValue, "_cpu", translate("m_i_processor")).value = model
local load1, load5, load15 = luci.sys.loadavg()
-s:option(DummyValue, "_la", translate("load")).value =
+s:option(DummyValue, "_la", translate("load")).value =
string.format("%.2f, %.2f, %.2f", load1, load5, load15)
-
-s:option(DummyValue, "_memtotal", translate("m_i_memory")).value =
+
+s:option(DummyValue, "_memtotal", translate("m_i_memory")).value =
string.format("%.2f MB (%.0f%% %s, %.0f%% %s, %.0f%% %s)",
tonumber(memtotal) / 1024,
100 * memcached / memtotal,
@@ -43,11 +43,17 @@ s:option(DummyValue, "_memtotal", translate("m_i_memory")).value =
s:option(DummyValue, "_systime", translate("m_i_systemtime")).value =
os.date("%c")
-
-s:option(DummyValue, "_uptime", translate("m_i_uptime")).value =
+
+s:option(DummyValue, "_uptime", translate("m_i_uptime")).value =
luci.tools.webadmin.date_format(tonumber(uptime))
-s:option(Value, "hostname", translate("hostname"))
+hn = s:option(Value, "hostname", translate("hostname"))
+
+function hn.write(self, section, value)
+ Value.write(self, section, value)
+ luci.sys.hostname(value)
+end
+
tz = s:option(ListValue, "zonename", translate("timezone"))
tz:value("UTC")
diff --git a/modules/admin-mini/luasrc/model/cbi/mini/system.lua b/modules/admin-mini/luasrc/model/cbi/mini/system.lua
index 5c06a0fbe..fa23b7c13 100644
--- a/modules/admin-mini/luasrc/model/cbi/mini/system.lua
+++ b/modules/admin-mini/luasrc/model/cbi/mini/system.lua
@@ -31,10 +31,10 @@ s:option(DummyValue, "_system", translate("system")).value = system
s:option(DummyValue, "_cpu", translate("m_i_processor")).value = model
local load1, load5, load15 = luci.sys.loadavg()
-s:option(DummyValue, "_la", translate("load")).value =
+s:option(DummyValue, "_la", translate("load")).value =
string.format("%.2f, %.2f, %.2f", load1, load5, load15)
-
-s:option(DummyValue, "_memtotal", translate("m_i_memory")).value =
+
+s:option(DummyValue, "_memtotal", translate("m_i_memory")).value =
string.format("%.2f MB (%.0f%% %s, %.0f%% %s, %.0f%% %s)",
tonumber(memtotal) / 1024,
100 * memcached / memtotal,
@@ -46,11 +46,17 @@ s:option(DummyValue, "_memtotal", translate("m_i_memory")).value =
s:option(DummyValue, "_systime", translate("m_i_systemtime")).value =
os.date("%c")
-
-s:option(DummyValue, "_uptime", translate("m_i_uptime")).value =
+
+s:option(DummyValue, "_uptime", translate("m_i_uptime")).value =
luci.tools.webadmin.date_format(tonumber(uptime))
-
-s:option(Value, "hostname", translate("hostname"))
+
+hn = s:option(Value, "hostname", translate("hostname"))
+
+function hn.write(self, section, value)
+ Value.write(self, section, value)
+ luci.sys.hostname(value)
+end
+
tz = s:option(ListValue, "zonename", translate("timezone"))
tz:value("UTC")