http.TimeFormat requires a time in UTC for a proper Last-Modified
header. Previously, the time was in CEST (my local timezone) which
caused all Last-Modified headers to have an offset of two hours. This
also hid a bug in the If-Modified-Since header handling: The last change
time must be truncated to seconds as the If-Modified-Since header has
only a second precision.
These bugs did not affect the current test cases. However, it affects
the test case which will be added in the next commit.
t.Fatalf("invalid If-Modified-Since %v",
modified)
}
- if !x.Before(lastChange) {
+ if !x.Before(lastChange.Truncate(time.Second)) {
w.WriteHeader(http.StatusNotModified)
return
}
}
w.Header().Add("Last-Modified",
- lastChange.Format(http.TimeFormat))
+ lastChange.UTC().Format(http.TimeFormat))
fmt.Fprintln(w, "root:x:0:0:root:/root:/bin/bash")
fmt.Fprintln(w, "daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin")
}