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

Merge pull request #80 from rod-hynes/master

Re-enable support for the meekFrontingDomain server entry field
Rod Hynes 11 лет назад
Родитель
Сommit
cbdd06c403
2 измененных файлов с 14 добавлено и 1 удалено
  1. 11 0
      psiphon/dataStore.go
  2. 3 1
      psiphon/serverEntry.go

+ 11 - 0
psiphon/dataStore.go

@@ -434,6 +434,17 @@ func (iterator *ServerEntryIterator) Next() (serverEntry *ServerEntry, err error
 	if err != nil {
 		return nil, ContextError(err)
 	}
+
+	// Backwards compatibility: old server entries have a single meekFrontingDomain
+	// and not a meekFrontingAddresses array. By copying this one meekFrontingDomain
+	// into meekFrontingAddresses, this client effectively uses that single value
+	// as legacy clients do.
+
+	if len(serverEntry.MeekFrontingAddresses) == 0 && serverEntry.MeekFrontingDomain != "" {
+		serverEntry.MeekFrontingAddresses =
+			append(serverEntry.MeekFrontingAddresses, serverEntry.MeekFrontingDomain)
+	}
+
 	return serverEntry, nil
 }
 

+ 3 - 1
psiphon/serverEntry.go

@@ -50,7 +50,8 @@ type ServerEntry struct {
 	MeekCookieEncryptionPublicKey string   `json:"meekCookieEncryptionPublicKey"`
 	MeekObfuscatedKey             string   `json:"meekObfuscatedKey"`
 	MeekFrontingHost              string   `json:"meekFrontingHost"`
-	MeekFrontingAddresses         []string `json:"MeekFrontingAddresses"`
+	MeekFrontingDomain            string   `json:"meekFrontingDomain"`
+	MeekFrontingAddresses         []string `json:"meekFrontingAddresses"`
 }
 
 // DecodeServerEntry extracts server entries from the encoding
@@ -70,6 +71,7 @@ func DecodeServerEntry(encodedServerEntry string) (serverEntry *ServerEntry, err
 	if err != nil {
 		return nil, ContextError(err)
 	}
+
 	return serverEntry, nil
 }