aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/http
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 /src/pkg/http
parentcf201ed6a00223e1e6dd69e884f9bcd25ce2b62c (diff)
downloadgo-922ceaddd21289e90b35924b74cc6163a34ab40a.tar.xz
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
Diffstat (limited to 'src/pkg/http')
-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))
}