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

Make steering IP support default disabled

- Don't log "invalid steering IP" warning when header is absent
Rod Hynes 2 лет назад
Родитель
Сommit
50a446484a
3 измененных файлов с 14 добавлено и 5 удалено
  1. 3 0
      psiphon/server/config.go
  2. 7 5
      psiphon/server/meek.go
  3. 4 0
      psiphon/server/server_test.go

+ 3 - 0
psiphon/server/config.go

@@ -445,6 +445,9 @@ type Config struct {
 	// for testing.
 	AllowBogons bool
 
+	// EnableSteeringIPs enables meek server steering IP support.
+	EnableSteeringIPs bool
+
 	// OwnEncodedServerEntries is a list of the server's own encoded server
 	// entries, idenfified by server entry tag. These values are used in the
 	// handshake API to update clients that don't yet have a signed copy of these

+ 7 - 5
psiphon/server/meek.go

@@ -757,12 +757,14 @@ func (server *MeekServer) getSessionOrEndpoint(
 	// in order to be recorded here and relayed to the client.
 
 	var steeringIP string
-	if server.isFronted {
+	if server.isFronted && server.support.Config.EnableSteeringIPs {
 		steeringIP = request.Header.Get("X-Psiphon-Steering-Ip")
-		IP := net.ParseIP(steeringIP)
-		if IP == nil || common.IsBogon(IP) {
-			steeringIP = ""
-			log.WithTraceFields(LogFields{"steeringIP": steeringIP}).Warning("invalid steering IP")
+		if steeringIP != "" {
+			IP := net.ParseIP(steeringIP)
+			if IP == nil || common.IsBogon(IP) {
+				steeringIP = ""
+				log.WithTraceFields(LogFields{"steeringIP": steeringIP}).Warning("invalid steering IP")
+			}
 		}
 	}
 

+ 4 - 0
psiphon/server/server_test.go

@@ -855,6 +855,10 @@ func runServer(t *testing.T, runConfig *runServerConfig) {
 		serverConfig["HostProvider"] = "example-host-provider"
 	}
 
+	if runConfig.doSteeringIP {
+		serverConfig["EnableSteeringIPs"] = true
+	}
+
 	serverConfigJSON, _ = json.Marshal(serverConfig)
 
 	uniqueUserLog := make(chan map[string]interface{}, 1)