Răsfoiți Sursa

Merge remote-tracking branch 'upstream/master'

Eugene Fryntov 10 ani în urmă
părinte
comite
c9d54cb8d4
2 a modificat fișierele cu 10 adăugiri și 1 ștergeri
  1. 9 0
      psiphon/dataStore.go
  2. 1 1
      psiphon/serverEntry.go

+ 9 - 0
psiphon/dataStore.go

@@ -25,6 +25,7 @@ import (
 	"errors"
 	"fmt"
 	"math/rand"
+	"os"
 	"path/filepath"
 	"strings"
 	"sync"
@@ -78,6 +79,14 @@ func InitDataStore(config *Config) (err error) {
 		filename := filepath.Join(config.DataStoreDirectory, DATA_STORE_FILENAME)
 		var db *bolt.DB
 		db, err = bolt.Open(filename, 0600, &bolt.Options{Timeout: 1 * time.Second})
+
+		// The datastore file may be corrupt, so attempt to delete and try again
+		if err != nil {
+			NoticeAlert("retry on initDataStore error: %s", err)
+			os.Remove(filename)
+			db, err = bolt.Open(filename, 0600, &bolt.Options{Timeout: 1 * time.Second})
+		}
+
 		if err != nil {
 			// Note: intending to set the err return value for InitDataStore
 			err = fmt.Errorf("initDataStore failed to open database: %s", err)

+ 1 - 1
psiphon/serverEntry.go

@@ -115,7 +115,7 @@ func (serverEntry *ServerEntry) GetDirectWebRequestPorts() []string {
 		// Server-side configuration quirk: there's a port forward from
 		// port 443 to the web server, which we can try, except on servers
 		// running FRONTED_MEEK, which listens on port 443.
-		if serverEntry.SupportsProtocol(TUNNEL_PROTOCOL_FRONTED_MEEK) {
+		if !serverEntry.SupportsProtocol(TUNNEL_PROTOCOL_FRONTED_MEEK) {
 			ports = append(ports, "443")
 		}
 		ports = append(ports, serverEntry.WebServerPort)