fix: set RequestTimeout in earlyConn

This commit is contained in:
wwqgtxx 2022-11-27 16:38:41 +08:00
parent a58234f0cd
commit cd53e2d4a7

View file

@ -291,10 +291,7 @@ func (t *Client) DialContext(ctx context.Context, metadata *C.Metadata) (net.Con
return nil, err
}
if t.RequestTimeout > 0 {
_ = stream.SetReadDeadline(time.Now().Add(time.Duration(t.RequestTimeout) * time.Millisecond))
}
conn := &earlyConn{BufferedConn: N.NewBufferedConn(stream)}
conn := &earlyConn{BufferedConn: N.NewBufferedConn(stream), RequestTimeout: t.RequestTimeout}
if !t.FastOpen {
err = conn.Response()
if err != nil {
@ -308,9 +305,14 @@ type earlyConn struct {
*N.BufferedConn
resOnce sync.Once
resErr error
RequestTimeout int
}
func (conn *earlyConn) response() error {
if conn.RequestTimeout > 0 {
_ = conn.SetReadDeadline(time.Now().Add(time.Duration(conn.RequestTimeout) * time.Millisecond))
}
response, err := ReadResponse(conn)
if err != nil {
_ = conn.Close()