From 922ceaddd21289e90b35924b74cc6163a34ab40a Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Mon, 20 Jun 2011 13:39:03 -0700 Subject: [PATCH] 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 --- src/pkg/http/serve_test.go | 15 +++++++++++++++ src/pkg/http/server.go | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) 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)) } -- 2.50.0