Przeglądaj źródła

Support setting LimitQUICVersions in config

Rod Hynes 7 lat temu
rodzic
commit
7c157e015d
1 zmienionych plików z 10 dodań i 0 usunięć
  1. 10 0
      psiphon/config.go

+ 10 - 0
psiphon/config.go

@@ -154,6 +154,12 @@ type Config struct {
 	// For the default, 0, InitialLimitTunnelProtocols is off.
 	InitialLimitTunnelProtocolsCandidateCount int
 
+	// LimitQUICVersions indicates which QUIC versions to select from. Valid
+	// values are listed in protocols.SupportedQUICVersions.
+	// For the default, an empty list, all versions are candidates for
+	// selection.
+	LimitQUICVersions []string
+
 	// EstablishTunnelTimeoutSeconds specifies a time limit after which to
 	// halt the core tunnel controller if no tunnel has been established. The
 	// default is parameters.EstablishTunnelTimeoutSeconds.
@@ -819,6 +825,10 @@ func (config *Config) makeConfigParameters() map[string]interface{} {
 		applyParameters[parameters.InitialLimitTunnelProtocolsCandidateCount] = config.InitialLimitTunnelProtocolsCandidateCount
 	}
 
+	if len(config.LimitQUICVersions) > 0 {
+		applyParameters[parameters.LimitQUICVersions] = protocol.QUICVersions(config.LimitQUICVersions)
+	}
+
 	if config.EstablishTunnelTimeoutSeconds != nil {
 		applyParameters[parameters.EstablishTunnelTimeout] = fmt.Sprintf("%ds", *config.EstablishTunnelTimeoutSeconds)
 	}