diff --git a/APIs/extra_mime.lua b/APIs/extra_mime.lua index b30b505..9b4a4ee 100644 --- a/APIs/extra_mime.lua +++ b/APIs/extra_mime.lua @@ -60,12 +60,20 @@ function std.sendFile(m) std.header("Content-Transfer-Encoding", "binary") std.header("Cache-Control", "no-cache, no-store") std.header("Connection", "Keep-Alive") - std.header("Etag", "a404b-c3f-47c3a14937c80") + std.header_flush() + std.f(m) else - std.status(200) - std.header("Content-Type", mime) - std.header("Content-Length", len) + if HEADER['If-Modified-Since'] and HEADER['If-Modified-Since'] == finfo.ctime then + std.status(304) + std.header_flush() + else + std.status(200) + std.header("Content-Type", mime) + --std.header("Content-Length", len) + std.header("Cache-Control", "no-cache") + std.header("Last-Modified", finfo.ctime) + std.header_flush() + std.f(m) + end end - std.header_flush() - std.f(m) end diff --git a/dist/lua-0.5.2b.tar.gz b/dist/lua-0.5.2b.tar.gz index fbd10ab..dacff87 100644 Binary files a/dist/lua-0.5.2b.tar.gz and b/dist/lua-0.5.2b.tar.gz differ diff --git a/lib/asl/ulib.c b/lib/asl/ulib.c index dbff3be..8a20000 100644 --- a/lib/asl/ulib.c +++ b/lib/asl/ulib.c @@ -255,13 +255,13 @@ static int l_file_stat(lua_State* L, const char* path) //ctime lua_pushstring(L,"ctime"); - strftime(date, sizeof(date), "%Y-%m-%dT%H:%M:%S", localtime(&(st.st_ctime))); + timestr(st.st_ctime,date,sizeof(date),"%a, %d %b %Y %H:%M:%S GMT",1); lua_pushstring(L,date); lua_settable(L,-3); //mtime lua_pushstring(L,"mtime"); - strftime(date, sizeof(date), "%Y-%m-%dT%H:%M:%S", localtime(&(st.st_mtime))); + timestr(st.st_mtime,date,sizeof(date),"%a, %d %b %Y %H:%M:%S GMT",1); lua_pushstring(L,date); lua_settable(L,-3);