mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
net/mail: more liberal parsing of Date headers.
Fixes #3639. R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/6243045
This commit is contained in:
parent
d6ac5b32d2
commit
132dbb61aa
2 changed files with 11 additions and 5 deletions
|
|
@ -69,11 +69,12 @@ var dateLayouts []string
|
||||||
func init() {
|
func init() {
|
||||||
// Generate layouts based on RFC 5322, section 3.3.
|
// Generate layouts based on RFC 5322, section 3.3.
|
||||||
|
|
||||||
dows := [...]string{"", "Mon, "} // day-of-week
|
dows := [...]string{"", "Mon, "} // day-of-week
|
||||||
days := [...]string{"2", "02"} // day = 1*2DIGIT
|
days := [...]string{"2", "02"} // day = 1*2DIGIT
|
||||||
years := [...]string{"2006", "06"} // year = 4*DIGIT / 2*DIGIT
|
years := [...]string{"2006", "06"} // year = 4*DIGIT / 2*DIGIT
|
||||||
seconds := [...]string{":05", ""} // second
|
seconds := [...]string{":05", ""} // second
|
||||||
zones := [...]string{"-0700", "MST"} // zone = (("+" / "-") 4DIGIT) / "GMT" / ...
|
// "-0700 (MST)" is not in RFC 5322, but is common.
|
||||||
|
zones := [...]string{"-0700", "MST", "-0700 (MST)"} // zone = (("+" / "-") 4DIGIT) / "GMT" / ...
|
||||||
|
|
||||||
for _, dow := range dows {
|
for _, dow := range dows {
|
||||||
for _, day := range days {
|
for _, day := range days {
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,11 @@ func TestDateParsing(t *testing.T) {
|
||||||
"21 Nov 97 09:55:06 GMT",
|
"21 Nov 97 09:55:06 GMT",
|
||||||
time.Date(1997, 11, 21, 9, 55, 6, 0, time.FixedZone("GMT", 0)),
|
time.Date(1997, 11, 21, 9, 55, 6, 0, time.FixedZone("GMT", 0)),
|
||||||
},
|
},
|
||||||
|
// Commonly found format not specified by RFC 5322.
|
||||||
|
{
|
||||||
|
"Fri, 21 Nov 1997 09:55:06 -0600 (MDT)",
|
||||||
|
time.Date(1997, 11, 21, 9, 55, 6, 0, time.FixedZone("", -6*60*60)),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
hdr := Header{
|
hdr := Header{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue