Quellcode durchsuchen

Cache errors as well

Lucas Stadler vor 9 Jahren
Ursprung
Commit
c189810b61
1 geänderte Dateien mit 14 neuen und 6 gelöschten Zeilen
  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) {