set the LocalAddr that is used in the tls.ClientHelloInfo.Conn

This commit is contained in:
Marten Seemann
2020-02-16 14:10:30 +07:00
parent abf55af7e9
commit f034e8ba19
5 changed files with 31 additions and 6 deletions

View File

@@ -122,6 +122,7 @@ func NewCryptoSetupClient(
initialStream io.Writer,
handshakeStream io.Writer,
connID protocol.ConnectionID,
localAddr net.Addr,
remoteAddr net.Addr,
tp *TransportParameters,
runner handshakeRunner,
@@ -142,7 +143,7 @@ func NewCryptoSetupClient(
logger,
protocol.PerspectiveClient,
)
cs.conn = qtls.Client(newConn(remoteAddr), cs.tlsConf)
cs.conn = qtls.Client(newConn(localAddr, remoteAddr), cs.tlsConf)
return cs, clientHelloWritten
}
@@ -151,6 +152,7 @@ func NewCryptoSetupServer(
initialStream io.Writer,
handshakeStream io.Writer,
connID protocol.ConnectionID,
localAddr net.Addr,
remoteAddr net.Addr,
tp *TransportParameters,
runner handshakeRunner,
@@ -171,7 +173,7 @@ func NewCryptoSetupServer(
logger,
protocol.PerspectiveServer,
)
cs.conn = qtls.Server(newConn(remoteAddr), cs.tlsConf)
cs.conn = qtls.Server(newConn(localAddr, remoteAddr), cs.tlsConf)
return cs
}