1. 06 Dec, 2016 1 commit
  2. 02 Dec, 2016 2 commits
  3. 16 Nov, 2016 5 commits
  4. 15 Nov, 2016 4 commits
  5. 14 Nov, 2016 4 commits
  6. 10 Nov, 2016 1 commit
  7. 09 Nov, 2016 1 commit
  8. 08 Nov, 2016 3 commits
  9. 07 Nov, 2016 1 commit
  10. 04 Nov, 2016 2 commits
  11. 03 Nov, 2016 1 commit
    • Brad Fitzpatrick's avatar
      http2: fix over-aggressive ignoring of frames while in "go away" mode · 569280fa
      Brad Fitzpatrick authored
      https://golang.org/cl/31727 made many of the Server Frame processors
      ignore incoming frames if the connection was in shutdown mode.
      
      The idea was that it's pointless to do work if we're about to hang up
      on them in 250ms anyway for violating a protocol error.
      
      But as of https://golang.org/cl/32412 (graceful shutdown) we can also
      be in "go away" mode for ErrCodeNo, which just means to nicely tell
      them to GOAWAY and because they did nothing wrong, we don't hang up in
      250ms (the value of which gave the peer time to read the error before
      the TCP close), but instead we keep the conn open until it's idle.
      
      The combination of the two CLs made TestTransportAndServerSharedBodyRace_h2
      flaky, since it was never seeing RST_STREAM on cancelation of requests,
      and then Handlers would block forever.
      
      Updates golang/go#17733 (fixes after bundle into std)
      
      Change-Id: I67491c1d7124bc3cb554f9246ea7683f20b6a4e3
      Reviewed-on: https://go-review.googlesource.com/32583
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
      569280fa
  12. 02 Nov, 2016 2 commits
  13. 01 Nov, 2016 1 commit
    • Daniel Theophanes's avatar
      webdav: add Context argument to FileSystem interface · 4bb47a10
      Daniel Theophanes authored
      Currently there is no way to pass request scoped information from
      the handler to the FileSytem interface. This can be important
      to pass credentials or timeout parameters to the FileSystem
      operations. Pipe context through the request from
      http.Request.Context(). With pre-go1.7 use context.Background().
      
      Custom FileSystem implementations will need to change, but it will
      only require a new argument in each of the FileSystem methods.
      The change will be trivial to update to.
      
      Fixes golang/go#17658
      
      Change-Id: I7491faf3467ad55db793a68081e074a9b3f9624d
      Reviewed-on: https://go-review.googlesource.com/32421Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      4bb47a10
  14. 31 Oct, 2016 2 commits
  15. 30 Oct, 2016 2 commits
  16. 29 Oct, 2016 3 commits
  17. 28 Oct, 2016 1 commit
  18. 27 Oct, 2016 3 commits
    • Brad Fitzpatrick's avatar
      http2: initialize Server.IdleTimeout from http.Server as http1 does · b336a971
      Brad Fitzpatrick authored
      This makes ConfigureServer initialize the http2 Server's IdleTimeout
      from the http1 Server configuration, using the same rules as
      IdleTimeout in Go 1.8: first use IdleTimeout if specified, else fall
      back to the old ReadTimeout.
      
      Updates golang/go#14204
      
      Change-Id: I4dee971f8416ef0cbf99335a199c46355f9ab09d
      Reviewed-on: https://go-review.googlesource.com/32230
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarTom Bergan <tombergan@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      b336a971
    • Brad Fitzpatrick's avatar
      http2: fix optimized write scheduling · b626cca9
      Brad Fitzpatrick authored
      Fixes regression from https://golang.org/cl/31495 which generated
      massive stacks like:
      
      net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bc70, 0x18c26050, 0x1897c1c0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3664 +0x34a
      net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114
      net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8
      net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f
      net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114
      net/http.(*http2serverConn).writeFrame(0x1890e7e0, 0x859bb50, 0x18c26060, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3648 +0x6b
      net/http.(*http2serverConn).resetStream(0x1890e7e0, 0x1, 0x8, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3815 +0x91
      net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859b6d0, 0x1890db00, 0x1897c1c0, 0x18ede040, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3736 +0x124
      net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859b6d0, 0x1890db00, 0x1897c1c0, 0x18ede040)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f
      net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114
      net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859bc70, 0x18c26018, 0x0, 0x0, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8
      net/http.(*http2serverConn).startFrameWrite(0x1890e7e0, 0x859bc70, 0x18c26018, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3689 +0x23f
      net/http.(*http2serverConn).scheduleFrameWrite(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3779 +0x114
      net/http.(*http2serverConn).wroteFrame(0x1890e7e0, 0x859b730, 0x18ede000, 0x1897c1c0, 0x0, 0x0, 0x0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3742 +0xc8
      net/http.(*http2serverConn).serve(0x1890e7e0)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3504 +0x50d
      net/http.(*http2Server).ServeConn(0x18ab49a0, 0x859e040, 0x18df2000, 0x1894ae18)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3152 +0x6d9
      net/http.http2ConfigureServer.func1(0x18d364e0, 0x18df2000, 0x859a1b0, 0x18ab2308)
          /tmp/workdir/go/src/net/http/h2_bundle.go:3033 +0x70
      net/http.(*conn).serve(0x18ad60f0, 0x859cbc0, 0x18aa42a0)
          /tmp/workdir/go/src/net/http/server.go:1633 +0xf03
      
      This changes it to be a loop instead.
      
      This also fixes the "internal error: attempt to send frame on
      half-closed-local stream" crash from golang/go#17627 because
      wroteFrame set stateHalfClosedLocal temporarily while calling
      resetStream which itself does a write in some cases. Prior to CL 31495
      those writes were processed breadth-first. CL 31495 made the writes
      generated from resetStream (like the window updates returning unused
      flow-control) more aggressive and scheduled immediately. This loop
      restores the old write scheduling.
      
      Fixes golang/go#17627
      
      Change-Id: I9651568e4105791d24d46819499efc7e018c86c3
      Reviewed-on: https://go-review.googlesource.com/32217Reviewed-by: 's avatarTom Bergan <tombergan@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      b626cca9
    • Tom Bergan's avatar
      http2: implement support for server push · c46f265c
      Tom Bergan authored
      This makes x/net/http2's ResponseWriter implement the new interface,
      http.Pusher. This new interface requires Go 1.8. When compiled against
      older versions of Go, the ResponseWriter does not have a Push method.
      
      Fixes golang/go#13443
      
      Change-Id: I8486ffe4bb5562a94270ace21e90e8c9a4653da0
      Reviewed-on: https://go-review.googlesource.com/29439Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      c46f265c
  19. 24 Oct, 2016 1 commit