]> Cypherpunks repositories - gostls13.git/commitdiff
http: permit handlers to explicitly remove the Date header
authorBrad Fitzpatrick <bradfitz@golang.org>
Mon, 20 Jun 2011 20:39:03 +0000 (13:39 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 20 Jun 2011 20:39:03 +0000 (13:39 -0700)
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
src/pkg/http/server.go

index dc4594a7908aec8aa6585d675c44c85bdbc87ae2..40de54747d64fe9f64638a75a303046b6943b37e 100644 (file)
@@ -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
 }
index bb47430260606c6131f7023062471fa7fb92fc61..7f1b8a2bcc8879215e652d4f65dd78ee0e3fd293 100644 (file)
@@ -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))
        }