From: Brad Fitzpatrick Date: Mon, 20 Jun 2011 20:39:03 +0000 (-0700) Subject: http: permit handlers to explicitly remove the Date header X-Git-Tag: weekly.2011-06-23~37 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=922ceaddd21289e90b35924b74cc6163a34ab40a;p=gostls13.git 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 --- 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)) }