summaryrefslogtreecommitdiffstats
path: root/lib/connections/quic_misc.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/connections/quic_misc.go')
-rw-r--r--lib/connections/quic_misc.go21
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/connections/quic_misc.go b/lib/connections/quic_misc.go
index 37758f2e0..d00fb8158 100644
--- a/lib/connections/quic_misc.go
+++ b/lib/connections/quic_misc.go
@@ -9,6 +9,7 @@
package connections
import (
+ "crypto/tls"
"net"
"github.com/lucas-clemente/quic-go"
@@ -30,7 +31,7 @@ type quicTlsConn struct {
func (q *quicTlsConn) Close() error {
sterr := q.Stream.Close()
- seerr := q.Session.Close()
+ seerr := q.Session.CloseWithError(0, "closing")
var pcerr error
if q.createdConn != nil {
pcerr = q.createdConn.Close()
@@ -44,6 +45,24 @@ func (q *quicTlsConn) Close() error {
return pcerr
}
+func (q *quicTlsConn) ConnectionState() tls.ConnectionState {
+ qcs := q.Session.ConnectionState()
+ return tls.ConnectionState{
+ Version: qcs.Version,
+ HandshakeComplete: qcs.HandshakeComplete,
+ DidResume: qcs.DidResume,
+ CipherSuite: qcs.CipherSuite,
+ NegotiatedProtocol: qcs.NegotiatedProtocol,
+ NegotiatedProtocolIsMutual: qcs.NegotiatedProtocolIsMutual,
+ ServerName: qcs.ServerName,
+ PeerCertificates: qcs.PeerCertificates,
+ VerifiedChains: qcs.VerifiedChains,
+ SignedCertificateTimestamps: qcs.SignedCertificateTimestamps,
+ OCSPResponse: qcs.OCSPResponse,
+ TLSUnique: qcs.TLSUnique,
+ }
+}
+
// Sort available packet connections by ip address, preferring unspecified local address.
func packetConnLess(i interface{}, j interface{}) bool {
iIsUnspecified := false