Przeglądaj źródła

Add DisableHTTPTransforms

mirokuratczyk 3 lat temu
rodzic
commit
cbef418ecf
2 zmienionych plików z 18 dodań i 10 usunięć
  1. 1 0
      psiphon/common/protocol/serverEntry.go
  2. 17 10
      psiphon/dialParameters.go

+ 1 - 0
psiphon/common/protocol/serverEntry.go

@@ -75,6 +75,7 @@ type ServerEntry struct {
 	TacticsRequestObfuscatedKey   string   `json:"tacticsRequestObfuscatedKey"`
 	ConfigurationVersion          int      `json:"configurationVersion"`
 	Signature                     string   `json:"signature"`
+	DisableHTTPTransforms         bool     `json:"disableHTTPTransforms"`
 
 	// These local fields are not expected to be present in downloaded server
 	// entries. They are added by the client to record and report stats about

+ 17 - 10
psiphon/dialParameters.go

@@ -776,19 +776,26 @@ func MakeDialParameters(
 
 	}
 
-	if (!isReplay || !replayHTTPTransformerParameters) && protocol.TunnelProtocolUsesMeekHTTP(dialParams.TunnelProtocol) {
+	if protocol.TunnelProtocolUsesMeekHTTP(dialParams.TunnelProtocol) {
 
-		isFronted := protocol.TunnelProtocolUsesFrontedMeek(dialParams.TunnelProtocol)
+		if serverEntry.DisableHTTPTransforms {
 
-		params, err := makeHTTPTransformerParameters(config.GetParameters().Get(), serverEntry.FrontingProviderID, isFronted)
-		if err != nil {
-			return nil, errors.Trace(err)
-		}
-
-		if params.ProtocolTransformSpec != nil {
-			dialParams.HTTPTransformerParameters = params
-		} else {
 			dialParams.HTTPTransformerParameters = nil
+
+		} else if !isReplay || !replayHTTPTransformerParameters {
+
+			isFronted := protocol.TunnelProtocolUsesFrontedMeek(dialParams.TunnelProtocol)
+
+			params, err := makeHTTPTransformerParameters(config.GetParameters().Get(), serverEntry.FrontingProviderID, isFronted)
+			if err != nil {
+				return nil, errors.Trace(err)
+			}
+
+			if params.ProtocolTransformSpec != nil {
+				dialParams.HTTPTransformerParameters = params
+			} else {
+				dialParams.HTTPTransformerParameters = nil
+			}
 		}
 	}