Commit 048de7b1 authored by Florian Uekermann's avatar Florian Uekermann Committed by Brad Fitzpatrick

time: return first error in unsuccessful calls to LoadLocation

Unsuccessful calls to LoadLocation previously returned the first
error encountered while traversing the default list of sources, but
ignored errors from sources specified by ZONEINFO. Whether errors
indicating missing zones or sources were ignored in this process
differed between kinds of sources.
With this change, unsuccessful calls to LoadLocation always return
the first error, not counting errors indicating missing zones or
sources.

Change-Id: Ief2c088f1df53d974b837e6565e784c2b9928ef4
Reviewed-on: https://go-review.googlesource.com/c/81595
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 4559d58c
...@@ -288,14 +288,23 @@ func LoadLocation(name string) (*Location, error) { ...@@ -288,14 +288,23 @@ func LoadLocation(name string) (*Location, error) {
env, _ := syscall.Getenv("ZONEINFO") env, _ := syscall.Getenv("ZONEINFO")
zoneinfo = &env zoneinfo = &env
}) })
var firstErr error
if *zoneinfo != "" { if *zoneinfo != "" {
if zoneData, err := loadTzinfoFromDirOrZip(*zoneinfo, name); err == nil { if zoneData, err := loadTzinfoFromDirOrZip(*zoneinfo, name); err == nil {
if z, err := LoadLocationFromTZData(name, zoneData); err == nil { if z, err := LoadLocationFromTZData(name, zoneData); err == nil {
return z, nil return z, nil
} }
firstErr = err
} else if err != syscall.ENOENT {
firstErr = err
} }
} }
return loadLocation(name, zoneSources) if z, err := loadLocation(name, zoneSources); err == nil {
return z, nil
} else if firstErr == nil {
firstErr = err
}
return nil, firstErr
} }
// containsDotDot reports whether s contains "..". // containsDotDot reports whether s contains "..".
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment