From d0283ab62ab692ee4c28e31d85740a5804b5540a Mon Sep 17 00:00:00 2001 From: Joakim Sernbrant Date: Wed, 19 Dec 2012 16:24:38 -0800 Subject: [PATCH] net/http: only call client SetCookie when needed R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6968049 --- src/pkg/net/http/client.go | 4 +++- src/pkg/net/http/client_test.go | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pkg/net/http/client.go b/src/pkg/net/http/client.go index d0e50f6082..5ee0804c7d 100644 --- a/src/pkg/net/http/client.go +++ b/src/pkg/net/http/client.go @@ -98,7 +98,9 @@ func (c *Client) send(req *Request) (*Response, error) { return nil, err } if c.Jar != nil { - c.Jar.SetCookies(req.URL, resp.Cookies()) + if rc := resp.Cookies(); len(rc) > 0 { + c.Jar.SetCookies(req.URL, rc) + } } return resp, err } diff --git a/src/pkg/net/http/client_test.go b/src/pkg/net/http/client_test.go index c2a836c948..9514a4b961 100644 --- a/src/pkg/net/http/client_test.go +++ b/src/pkg/net/http/client_test.go @@ -418,6 +418,9 @@ func matchReturnedCookies(t *testing.T, expected, given []*Cookie) { func TestJarCalls(t *testing.T) { ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) { pathSuffix := r.RequestURI[1:] + if r.RequestURI == "/nosetcookie" { + return // dont set cookies for this path + } SetCookie(w, &Cookie{Name: "name" + pathSuffix, Value: "val" + pathSuffix}) if r.RequestURI == "/" { Redirect(w, r, "http://secondhost.fake/secondpath", 302) @@ -437,11 +440,16 @@ func TestJarCalls(t *testing.T) { if err != nil { t.Fatal(err) } + _, err = c.Get("http://firsthost.fake/nosetcookie") + if err != nil { + t.Fatal(err) + } got := jar.log.String() want := `Cookies("http://firsthost.fake/") SetCookie("http://firsthost.fake/", [name=val]) Cookies("http://secondhost.fake/secondpath") SetCookie("http://secondhost.fake/secondpath", [namesecondpath=valsecondpath]) +Cookies("http://firsthost.fake/nosetcookie") ` if got != want { t.Errorf("Got Jar calls:\n%s\nWant:\n%s", got, want) -- 2.48.1