Просмотр исходного кода

Strip port from QUIC SNI address

Amir Khan 2 лет назад
Родитель
Сommit
988f4c145c
3 измененных файлов с 4 добавлено и 8 удалено
  1. 2 0
      psiphon/common/quic/quic.go
  2. 1 4
      psiphon/dialParameters.go
  3. 1 4
      psiphon/meekConn.go

+ 2 - 0
psiphon/common/quic/quic.go

@@ -1049,6 +1049,8 @@ func dialQUIC(
 			quicConfig.HandshakeIdleTimeout = time.Until(deadline)
 		}
 
+		// Legacy replay values might include a port. If so, strip it.
+		// This was a requirement of legacy quic-go API, but is no longer required.
 		sni, _, err := net.SplitHostPort(quicSNIAddress)
 		if err != nil {
 			sni = quicSNIAddress

+ 1 - 4
psiphon/dialParameters.go

@@ -721,10 +721,7 @@ func MakeDialParameters(
 					hostname, strconv.Itoa(serverEntry.MeekServerPort))
 			}
 		} else if protocol.TunnelProtocolUsesQUIC(dialParams.TunnelProtocol) {
-
-			dialParams.QUICDialSNIAddress = net.JoinHostPort(
-				selectHostName(dialParams.TunnelProtocol, p),
-				strconv.Itoa(serverEntry.SshObfuscatedQUICPort))
+			dialParams.QUICDialSNIAddress = selectHostName(dialParams.TunnelProtocol, p)
 		}
 	}
 

+ 1 - 4
psiphon/meekConn.go

@@ -374,9 +374,6 @@ func DialMeek(
 			return packetConn, remoteAddr, nil
 		}
 
-		_, port, _ := net.SplitHostPort(meekConfig.DialAddress)
-		quicDialSNIAddress := fmt.Sprintf("%s:%s", meekConfig.SNIServerName, port)
-
 		var err error
 		transport, err = quic.NewQUICTransporter(
 			ctx,
@@ -384,7 +381,7 @@ func DialMeek(
 				NoticeInfo(message)
 			},
 			udpDialer,
-			quicDialSNIAddress,
+			meekConfig.SNIServerName,
 			meekConfig.QUICVersion,
 			meekConfig.QUICClientHelloSeed,
 			meekConfig.QUICDisablePathMTUDiscovery)