aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2011-06-20 13:39:03 -0700
committerBrad Fitzpatrick <bradfitz@golang.org>2011-06-20 13:39:03 -0700
commit922ceaddd21289e90b35924b74cc6163a34ab40a (patch)
treefadd5d542b7ad549149a648c505c97018317ea83
parentcf201ed6a00223e1e6dd69e884f9bcd25ce2b62c (diff)
downloadgo-922ceaddd21289e90b35924b74cc6163a34ab40a.tar.gz
go-922ceaddd21289e90b35924b74cc6163a34ab40a.zip
http: permit handlers to explicitly remove the Date header
We'll do the right thing by default, but people wanting minimal response sizes can explicitly remove the Date header. (empty fields aren't written out) R=rsc CC=golang-dev https://golang.org/cl/4634048
-rw-r--r--src/pkg/http/serve_test.go15
-rw-r--r--src/pkg/http/server.go2
2 files changed, 16 insertions, 1 deletions
diff --git a/src/pkg/http/serve_test.go b/src/pkg/http/serve_test.go
index dc4594a790..40de54747d 100644
--- a/src/pkg/http/serve_test.go
+++ b/src/pkg/http/serve_test.go
@@ -781,6 +781,21 @@ func TestHandlerPanic(t *testing.T) {
}
}
+func TestNoDate(t *testing.T) {
+ ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
+ w.Header()["Date"] = nil
+ }))
+ defer ts.Close()
+ res, err := Get(ts.URL)
+ if err != nil {
+ t.Fatal(err)
+ }
+ _, present := res.Header["Date"]
+ if present {
+ t.Fatalf("Expected no Date header; got %v", res.Header["Date"])
+ }
+}
+
type errorListener struct {
errs []os.Error
}
diff --git a/src/pkg/http/server.go b/src/pkg/http/server.go
index bb47430260..7f1b8a2bcc 100644
--- a/src/pkg/http/server.go
+++ b/src/pkg/http/server.go
@@ -254,7 +254,7 @@ func (w *response) WriteHeader(code int) {
}
}
- if w.header.Get("Date") == "" {
+ if _, ok := w.header["Date"]; !ok {
w.Header().Set("Date", time.UTC().Format(TimeFormat))
}