Browse Source

Fix upgrade download file migration regex

mirokuratczyk 6 years ago
parent
commit
0424f16984
2 changed files with 24 additions and 1 deletions
  1. 6 1
      psiphon/config.go
  2. 18 0
      psiphon/config_test.go

+ 6 - 1
psiphon/config.go

@@ -1123,7 +1123,12 @@ func (config *Config) Commit() error {
 
 			oldUpgradeDownloadFilename := filepath.Base(config.MigrateUpgradeDownloadFilename)
 
-			upgradeDownloadFileRegex, err := regexp.Compile(`^` + oldUpgradeDownloadFilename + `(\.part.*)*$`)
+			// Create regex for:
+			// <old_upgrade_download_filename>
+			// <old_upgrade_download_filename>.<client_version_number>
+			// <old_upgrade_download_filename>.<client_version_number>.part
+			// <old_upgrade_download_filename>.<client_version_number>.part.etag
+			upgradeDownloadFileRegex, err := regexp.Compile(`^` + oldUpgradeDownloadFilename + `(\.\d+(\.part(\.etag)?)?)?$`)
 			if err != nil {
 				return errors.TraceMsg(err, "failed to compile regex for upgrade files")
 			}

+ 18 - 0
psiphon/config_test.go

@@ -320,6 +320,15 @@ func (suite *ConfigTestSuite) Test_LoadConfig_Migrate() {
 			{
 				Name: oldUpgradeDownloadFilename,
 			},
+			{
+				Name: oldUpgradeDownloadFilename + ".1234",
+			},
+			{
+				Name: oldUpgradeDownloadFilename + ".1234.part",
+			},
+			{
+				Name: oldUpgradeDownloadFilename + ".1234.part.etag",
+			},
 			{
 				Name: "data_root_directory",
 				Children: []FileTree{
@@ -433,6 +442,15 @@ func (suite *ConfigTestSuite) Test_LoadConfig_Migrate() {
 					{
 						Name: "upgrade",
 					},
+					{
+						Name: "upgrade.1234",
+					},
+					{
+						Name: "upgrade.1234.part",
+					},
+					{
+						Name: "upgrade.1234.part.etag",
+					},
 					{
 						Name: "notices",
 					},