Browse Source

Cache errors as well

Lucas Stadler 9 years ago
parent
commit
c189810b61
1 changed files with 14 additions and 6 deletions
  1. 14 6
      go/favicon/favicon.go

+ 14 - 6
go/favicon/favicon.go

@ -71,18 +71,26 @@ func GetFaviconCached(u string) (string, error) {
71 71
	lock.RUnlock()
72 72
73 73
	if cached {
74
		return fu.(string), nil
74
		switch fu.(type) {
75
		case string:
76
			return fu.(string), nil
77
		case error:
78
			return "", fu.(error)
79
		default:
80
			panic("unexpected type")
81
		}
75 82
	}
76 83
77 84
	faviconUrl, err := GetFavicon(u)
78
	if err != nil {
79
		return faviconUrl, err
80
	}
81 85
82 86
	lock.Lock()
83
	faviconCache.Add(host, faviconUrl)
87
	if err != nil {
88
		faviconCache.Add(host, err)
89
	} else {
90
		faviconCache.Add(host, faviconUrl)
91
	}
84 92
	lock.Unlock()
85
	return faviconUrl, nil
93
	return faviconUrl, err
86 94
}
87 95
88 96
func GetFavicon(url string) (string, error) {