isOk to check whether the file is latest

This commit is contained in:
JessonChan 2015-11-16 14:05:05 +08:00
parent d963bb79bd
commit 5d01afe3a6
1 changed files with 11 additions and 6 deletions

View File

@ -100,15 +100,13 @@ var (
func openFile(filePath string, fi os.FileInfo, acceptEncoding string) (bool, string, *serveContentHolder, error) {
mapKey := acceptEncoding + ":" + filePath
mapFile, ok := staticFileMap[mapKey]
if ok {
if mapFile.modTime == fi.ModTime() && mapFile.size == fi.Size() {
return mapFile.encoding != "", mapFile.encoding, mapFile, nil
}
mapFile, _ := staticFileMap[mapKey]
if isOk(mapFile, fi) {
return mapFile.encoding != "", mapFile.encoding, mapFile, nil
}
mapLock.Lock()
defer mapLock.Unlock()
if mapFile, ok = staticFileMap[mapKey]; !ok {
if mapFile, _ = staticFileMap[mapKey]; !isOk(mapFile, fi) {
file, err := os.Open(filePath)
if err != nil {
return false, "", nil, err
@ -126,6 +124,13 @@ func openFile(filePath string, fi os.FileInfo, acceptEncoding string) (bool, str
return mapFile.encoding != "", mapFile.encoding, mapFile, nil
}
func isOk(s *serveContentHolder, fi os.FileInfo) bool {
if s == nil {
return false
}
return s.modTime == fi.ModTime() && s.size == fi.Size()
}
// isStaticCompress detect static files
func isStaticCompress(filePath string) bool {