* libs/http: removed caching in http.protocol.date

This commit is contained in:
Jo-Philipp Wich 2008-06-27 20:48:11 +00:00
parent 289b8fc1b6
commit 3eefe8a8e2

View file

@ -15,10 +15,6 @@ $Id$
module("luci.http.protocol.date", package.seeall) module("luci.http.protocol.date", package.seeall)
local ucache = { }
local hcache = { }
MONTHS = { MONTHS = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec" "Sep", "Oct", "Nov", "Dec"
@ -155,46 +151,40 @@ end
-- Convert a HTTP date to unixtime -- Convert a HTTP date to unixtime
function to_unix(date) function to_unix(date)
if not ucache[date] then local wd, day, mon, yr, hr, min, sec, tz = date:match(
local wd, day, mon, yr, hr, min, sec, tz = date:match( "([A-Z][a-z][a-z]), ([0-9]+) " ..
"([A-Z][a-z][a-z]), ([0-9]+) " .. "([A-Z][a-z][a-z]) ([0-9]+) " ..
"([A-Z][a-z][a-z]) ([0-9]+) " .. "([0-9]+):([0-9]+):([0-9]+) " ..
"([0-9]+):([0-9]+):([0-9]+) " .. "([A-Z0-9%+%-]+)"
"([A-Z0-9%+%-]+)" )
)
if day and mon and yr and hr and min and sec then if day and mon and yr and hr and min and sec then
-- find month -- find month
local month = 1 local month = 1
for i = 1, 12 do for i = 1, 12 do
if MONTHS[i] == mon then if MONTHS[i] == mon then
month = i month = i
break break
end
end end
-- convert to epoch time
ucache[date] = tz_offset(tz) + os.time( {
year = yr,
month = month,
day = day,
hour = hr,
min = min,
sec = sec
} )
end end
-- convert to epoch time
return tz_offset(tz) + os.time( {
year = yr,
month = month,
day = day,
hour = hr,
min = min,
sec = sec
} )
end end
return ucache[date] or 0 return 0
end end
-- Convert a unixtime to HTTP date -- Convert a unixtime to HTTP date
function to_http(time) function to_http(time)
if not hcache[time] then return os.date( "%a, %d %b %Y %H:%M:%S GMT", time )
hcache[time] = os.date( "%a, %d %b %Y %H:%M:%S GMT", time )
end
return hcache[time]
end end
-- Compare two dates -- Compare two dates