File tree Expand file tree Collapse file tree 2 files changed +17
-4
lines changed Expand file tree Collapse file tree 2 files changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -2821,9 +2821,9 @@ func (w *responseWriter) SetReadDeadline(deadline time.Time) error {
28212821 if deadline .IsZero () {
28222822 st .readDeadline = nil
28232823 } else if st .readDeadline == nil {
2824- st .readDeadline = sc .srv .afterFunc (deadline .Sub (w . rws . conn .srv .now ()), st .onReadTimeout )
2824+ st .readDeadline = sc .srv .afterFunc (deadline .Sub (sc .srv .now ()), st .onReadTimeout )
28252825 } else {
2826- st .readDeadline .Reset (deadline .Sub (w . rws . conn .srv .now ()))
2826+ st .readDeadline .Reset (deadline .Sub (sc .srv .now ()))
28272827 }
28282828 })
28292829 return nil
@@ -2847,9 +2847,9 @@ func (w *responseWriter) SetWriteDeadline(deadline time.Time) error {
28472847 if deadline .IsZero () {
28482848 st .writeDeadline = nil
28492849 } else if st .writeDeadline == nil {
2850- st .writeDeadline = sc .srv .afterFunc (deadline .Sub (w . rws . conn .srv .now ()), st .onWriteTimeout )
2850+ st .writeDeadline = sc .srv .afterFunc (deadline .Sub (sc .srv .now ()), st .onWriteTimeout )
28512851 } else {
2852- st .writeDeadline .Reset (deadline .Sub (w . rws . conn .srv .now ()))
2852+ st .writeDeadline .Reset (deadline .Sub (sc .srv .now ()))
28532853 }
28542854 })
28552855 return nil
Original file line number Diff line number Diff line change @@ -4661,3 +4661,16 @@ func TestServerRequestCancelOnError(t *testing.T) {
46614661 })
46624662 <- donec
46634663}
4664+
4665+ func TestServerSetReadWriteDeadlineRace (t * testing.T ) {
4666+ ts := newTestServer (t , func (w http.ResponseWriter , r * http.Request ) {
4667+ ctl := http .NewResponseController (w )
4668+ ctl .SetReadDeadline (time .Now ().Add (3600 * time .Second ))
4669+ ctl .SetWriteDeadline (time .Now ().Add (3600 * time .Second ))
4670+ })
4671+ resp , err := ts .Client ().Get (ts .URL )
4672+ if err != nil {
4673+ t .Fatal (err )
4674+ }
4675+ resp .Body .Close ()
4676+ }
You can’t perform that action at this time.
0 commit comments