mirror of
https://github.com/golang/go
synced 2024-11-17 03:04:44 -07:00
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: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
4559d58ced
commit
048de7b1fd
@ -288,14 +288,23 @@ func LoadLocation(name string) (*Location, error) {
|
||||
env, _ := syscall.Getenv("ZONEINFO")
|
||||
zoneinfo = &env
|
||||
})
|
||||
var firstErr error
|
||||
if *zoneinfo != "" {
|
||||
if zoneData, err := loadTzinfoFromDirOrZip(*zoneinfo, name); err == nil {
|
||||
if z, err := LoadLocationFromTZData(name, zoneData); err == 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 "..".
|
||||
|
Loading…
Reference in New Issue
Block a user