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

Add Open/CloseDataStore call for replay in stand-alone GetTactics

Rod Hynes 5 лет назад
Родитель
Сommit
69351a629d
3 измененных файлов с 14 добавлено и 4 удалено
  1. 11 2
      psiphon/dataStore.go
  2. 2 1
      psiphon/dialParameters.go
  3. 1 1
      psiphon/exchange_test.go

+ 11 - 2
psiphon/dataStore.go

@@ -1817,13 +1817,22 @@ func SetDialParameters(serverIPAddress, networkID string, dialParams *DialParame
 
 // GetDialParameters fetches any dial parameters associated with the specified
 // server/network ID. Returns nil, nil when no record is found.
-func GetDialParameters(serverIPAddress, networkID string) (*DialParameters, error) {
+func GetDialParameters(
+	config *Config, serverIPAddress, networkID string) (*DialParameters, error) {
+
+	// Support stand-alone GetTactics operation. See TacticsStorer for more
+	// details.
+	err := OpenDataStoreWithoutReset(config)
+	if err != nil {
+		return nil, errors.Trace(err)
+	}
+	defer CloseDataStore()
 
 	key := makeDialParametersKey([]byte(serverIPAddress), []byte(networkID))
 
 	var dialParams *DialParameters
 
-	err := getBucketValue(
+	err = getBucketValue(
 		datastoreDialParametersBucket,
 		key,
 		func(value []byte) error {

+ 2 - 1
psiphon/dialParameters.go

@@ -174,7 +174,8 @@ func MakeDialParameters(
 
 	// Check for existing dial parameters for this server/network ID.
 
-	dialParams, err := GetDialParameters(serverEntry.IpAddress, networkID)
+	dialParams, err := GetDialParameters(
+		config, serverEntry.IpAddress, networkID)
 	if err != nil {
 		NoticeWarning("GetDialParameters failed: %s", err)
 		dialParams = nil

+ 1 - 1
psiphon/exchange_test.go

@@ -234,7 +234,7 @@ func TestServerEntryExchange(t *testing.T) {
 			}
 		}
 
-		dialParams, err := GetDialParameters(serverEntry.IpAddress, networkID)
+		dialParams, err := GetDialParameters(config, serverEntry.IpAddress, networkID)
 		if err != nil {
 			t.Fatalf("GetDialParameters failed: %s", err)
 		}