Avoid panic in QUIC error handling (#129)

* Add debugging for #127

* Fix panic
This commit is contained in:
Frank Olbricht
2021-01-31 08:15:21 -07:00
committed by GitHub
parent 6233f5d3f2
commit a6f2f1a07c

View File

@@ -301,11 +301,12 @@ func (s *quicSession) OpenStreamSync(ctx context.Context) (quic.Stream, error) {
stream, err := s.Session.OpenStreamSync(ctx)
if err != nil {
_ = s.Session.CloseWithError(quic.ErrorCode(DOQNoError), "")
s.Session, err = quicDial(s.hostname, s.rAddr, s.lAddr, s.tlsConfig, s.config)
var session quic.Session
session, err = quicDial(s.hostname, s.rAddr, s.lAddr, s.tlsConfig, s.config)
if err != nil {
return nil, err
}
s.Session = session
stream, err = s.Session.OpenStreamSync(ctx)
}
return stream, err
@@ -317,10 +318,12 @@ func (s *quicSession) OpenStream() (quic.Stream, error) {
stream, err := s.Session.OpenStream()
if err != nil {
_ = s.Session.CloseWithError(quic.ErrorCode(DOQNoError), "")
s.Session, err = quicDial(s.hostname, s.rAddr, s.lAddr, s.tlsConfig, s.config)
var session quic.Session
session, err = quicDial(s.hostname, s.rAddr, s.lAddr, s.tlsConfig, s.config)
if err != nil {
return nil, err
}
s.Session = session
stream, err = s.Session.OpenStream()
}
return stream, err