From: Jo-Philipp Wich <jow@openwrt.org>
Date: Sat, 9 May 2009 15:52:23 +0000 (+0000)
Subject: luci-0.8: merge r4218 and r4221
X-Git-Tag: 0.8.7~43
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6067bc9f526157960241aca86736672f3c70975b;p=oweals%2Fluci.git

luci-0.8: merge r4218 and r4221
---

diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua
index a2c9a3111..1ecd5d25a 100644
--- a/libs/sys/luasrc/sys.lua
+++ b/libs/sys/luasrc/sys.lua
@@ -35,7 +35,8 @@ luci.util   = require "luci.util"
 luci.fs     = require "luci.fs"
 luci.ip     = require "luci.ip"
 
-local tonumber, ipairs, pairs, pcall = tonumber, ipairs, pairs, pcall
+local tonumber, ipairs, pairs, pcall, type =
+	tonumber, ipairs, pairs, pcall, type
 
 
 --- LuCI Linux and POSIX system utilities.
@@ -129,10 +130,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.