Browse Source

Fix: don't wire up Shadowsocks prefix for other tunnel protocols

Rod Hynes 11 months ago
parent
commit
b0a6fcf2a1
1 changed files with 20 additions and 17 deletions
  1. 20 17
      psiphon/dialParameters.go

+ 20 - 17
psiphon/dialParameters.go

@@ -1143,27 +1143,30 @@ func MakeDialParameters(
 
 	}
 
-	if serverEntry.DisableShadowsocksPrefix {
+	if protocol.TunnelProtocolUsesShadowsocks(dialParams.TunnelProtocol) {
 
-		dialParams.ShadowsocksPrefixSpec = nil
+		if serverEntry.DisableShadowsocksPrefix {
 
-	} else if !isReplay || !replayShadowsocksPrefix {
+			dialParams.ShadowsocksPrefixSpec = nil
 
-		dialPortNumber, err := serverEntry.GetDialPortNumber(
-			dialParams.TunnelProtocol)
-		if err != nil {
-			return nil, errors.Trace(err)
-		}
-		prefixSpec, err := makeShadowsocksPrefixSpecParameters(
-			p, strconv.Itoa(dialPortNumber))
-		if err != nil {
-			return nil, errors.Trace(err)
-		}
+		} else if !isReplay || !replayShadowsocksPrefix {
 
-		if prefixSpec.Spec != nil {
-			dialParams.ShadowsocksPrefixSpec = prefixSpec
-		} else {
-			dialParams.ShadowsocksPrefixSpec = nil
+			dialPortNumber, err := serverEntry.GetDialPortNumber(
+				dialParams.TunnelProtocol)
+			if err != nil {
+				return nil, errors.Trace(err)
+			}
+			prefixSpec, err := makeShadowsocksPrefixSpecParameters(
+				p, strconv.Itoa(dialPortNumber))
+			if err != nil {
+				return nil, errors.Trace(err)
+			}
+
+			if prefixSpec.Spec != nil {
+				dialParams.ShadowsocksPrefixSpec = prefixSpec
+			} else {
+				dialParams.ShadowsocksPrefixSpec = nil
+			}
 		}
 	}