summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2012-12-19 00:35:30 +0000
committerJo-Philipp Wich <jow@openwrt.org>2012-12-19 00:35:30 +0000
commitd4987d7863baf1071d2c1579c8730cf44538fd45 (patch)
treec4d1c8a69f85bd54cba03592b416794c93e45a2c
parentffec6bd4516107205ec5af4c64d8018c36a5dafe (diff)
ccache not loading or storing cache files
I've noticed that there is nothing in my /tmp/luci-modulecache directory. Digging into it it looks like because both the expected uid and mode of the files doesn't match, so for security reasons they're long being loaded or saved by ccache.lua (from the luci-lib-core package). I'm not sure how far back this has been broken but I it appears to have been quite some time, possibly years? I've included a patch which updates the checks to use the right newer function name / structure name. It decreases page load times by about 10-15% on my bcm2708 (raspberrypi). I can create a ticket if you'd prefer. The patch is against the luci-0.11 branch but should apply to trunk as well. Signed-off-by: Bryan Mayland <bmayland@leoninedev.com>
-rw-r--r--libs/core/luasrc/ccache.lua4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/core/luasrc/ccache.lua b/libs/core/luasrc/ccache.lua
index c9771af21..56ccbc3ef 100644
--- a/libs/core/luasrc/ccache.lua
+++ b/libs/core/luasrc/ccache.lua
@@ -37,7 +37,7 @@ function cache_enable(cachepath, mode)
mode = mode or "r--r--r--"
local loader = package.loaders[2]
- local uid = nixio.getpid("uid")
+ local uid = nixio.getuid()
if not fs.stat(cachepath) then
fs.mkdir(cachepath)
@@ -53,7 +53,7 @@ function cache_enable(cachepath, mode)
local function _load_sane(file)
local stat = fs.stat(file)
- if stat and stat.uid == uid and stat.mode == mode then
+ if stat and stat.uid == uid and stat.modestr == mode then
return loadfile(file)
end
end