+ if not id or #id == 0 then
+ return
+ end
+ if not id:match("^%w+$") then
+ error("Session ID is not sane!")
+ end
+ clean()
+ if not sane(sessionpath .. "/" .. id) then
+ return
+ end
+ fs.utimes(sessionpath .. "/" .. id)
+ return fs.readfile(sessionpath .. "/" .. id)
+end
+
+
+--- Check whether Session environment is sane.
+-- @return Boolean status
+function sane(file)
+ return luci.sys.process.info("uid")
+ == fs.stat(file or sessionpath, "uid")
+ and fs.stat(file or sessionpath, "modestr")
+ == (file and "rw-------" or "rwx------")