Jelajahi Sumber

Don't use Redis commands not available on older Redis servers

Rod Hynes 10 tahun lalu
induk
melakukan
4462e400d4
1 mengubah file dengan 10 tambahan dan 2 penghapusan
  1. 10 2
      psiphon/server/redis.go

+ 10 - 2
psiphon/server/redis.go

@@ -69,10 +69,18 @@ func UpdateRedisForLegacyPsiWeb(psiphonSessionID string, geoIPData GeoIPData) er
 	// meek server). We allow expiry deadline extension unconditionally.
 
 	conn.Send("MULTI")
+
 	conn.Send("SELECT", redisSessionDBIndex)
-	conn.Send("SET", psiphonSessionID, string(sessionRecord), "NX", "EX", sessionExpireSeconds)
+	// http://redis.io/commands/set -- NX/EX options require Redis 2.6.12
+	//conn.Send("SET", psiphonSessionID, string(sessionRecord), "NX", "EX", sessionExpireSeconds)
+	conn.Send("SETNX", psiphonSessionID, string(sessionRecord))
+	conn.Send("EXPIRE", psiphonSessionID, sessionExpireSeconds)
+
 	conn.Send("SELECT", redisDiscoveryDBIndex)
-	conn.Send("SET", psiphonSessionID, string(discoveryRecord), "NX", "EX", discoveryExpireSeconds)
+	//conn.Send("SET", psiphonSessionID, string(discoveryRecord), "NX", "EX", discoveryExpireSeconds)
+	conn.Send("SETNX", psiphonSessionID, string(discoveryRecord))
+	conn.Send("EXPIRE", psiphonSessionID, discoveryExpireSeconds)
+
 	_, err = conn.Do("EXEC")
 	if err != nil {
 		return psiphon.ContextError(err)