Browse Source

Bug fixes
* Explicitly cast redis value to string
* Don't clobber "None" GeoIP value with empty string

Rod Hynes 10 years ago
parent
commit
28b2572706
2 changed files with 11 additions and 5 deletions
  1. 9 3
      psiphon/server/geoip.go
  2. 2 2
      psiphon/server/redis.go

+ 9 - 3
psiphon/server/geoip.go

@@ -67,12 +67,18 @@ func GeoIPLookup(ipAddress string) GeoIPData {
 		log.WithContextFields(LogFields{"error": err}).Warning("GeoIP lookup failed")
 	}
 
-	result.Country = geoIPFields.Country.ISOCode
+	if geoIPFields.Country.ISOCode != "" {
+		result.Country = geoIPFields.Country.ISOCode
+	}
+
 	name, ok := geoIPFields.City.Names["en"]
-	if ok {
+	if ok && name != "" {
 		result.City = name
 	}
-	result.ISP = geoIPFields.ISP
+
+	if geoIPFields.ISP != "" {
+		result.ISP = geoIPFields.ISP
+	}
 
 	return result
 }

+ 2 - 2
psiphon/server/redis.go

@@ -73,9 +73,9 @@ func UpdateRedisForLegacyPsiWeb(psiphonSessionID string, geoIPData GeoIPData) er
 
 	conn.Send("MULTI")
 	conn.Send("SELECT", redisSessionDBIndex)
-	conn.Send("SET", psiphonSessionID, sessionRecord, "NX", "EX", sessionExpireSeconds)
+	conn.Send("SET", psiphonSessionID, string(sessionRecord), "NX", "EX", sessionExpireSeconds)
 	conn.Send("SELECT", redisDiscoveryDBIndex)
-	conn.Send("SET", psiphonSessionID, discoveryRecord, "NX", "EX", discoveryExpireSeconds)
+	conn.Send("SET", psiphonSessionID, string(discoveryRecord), "NX", "EX", discoveryExpireSeconds)
 	_, err = conn.Do("EXEC")
 	if err != nil {
 		return psiphon.ContextError(err)