ソースを参照

Merge pull request #81 from rod-hynes/master

Fix: backwards compatibility with legacy server entries in TargetServerE...
Rod Hynes 11 年 前
コミット
0043f03bd4
1 ファイル変更7 行追加3 行削除
  1. 7 3
      psiphon/dataStore.go

+ 7 - 3
psiphon/dataStore.go

@@ -410,7 +410,7 @@ func (iterator *ServerEntryIterator) Next() (serverEntry *ServerEntry, err error
 	if iterator.isTargetServerEntryIterator {
 		if iterator.hasNextTargetServerEntry {
 			iterator.hasNextTargetServerEntry = false
-			return iterator.targetServerEntry, nil
+			return makeCompatibleServerEntry(iterator.targetServerEntry), nil
 		}
 		return nil, nil
 	}
@@ -435,17 +435,21 @@ func (iterator *ServerEntryIterator) Next() (serverEntry *ServerEntry, err error
 		return nil, ContextError(err)
 	}
 
+	return makeCompatibleServerEntry(serverEntry), nil
+}
+
+func makeCompatibleServerEntry(serverEntry *ServerEntry) *ServerEntry {
+
 	// 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
+	return serverEntry
 }
 
 func makeServerEntryWhereClause(