Kaynağa Gözat

Merge pull request #341 from rod-hynes/master

Fix: invalid partial download failed to reset on Windows
Rod Hynes 9 yıl önce
ebeveyn
işleme
e1d20f81e7
1 değiştirilmiş dosya ile 14 ekleme ve 2 silme
  1. 14 2
      psiphon/net.go

+ 14 - 2
psiphon/net.go

@@ -440,8 +440,20 @@ func ResumeDownload(
 		// that the controller's upgradeDownloader will shortly call DownloadUpgrade
 		// again.
 		if err != nil {
-			os.Remove(partialFilename)
-			os.Remove(partialETagFilename)
+
+			// On Windows, file must be closed before it can be deleted
+			file.Close()
+
+			tempErr := os.Remove(partialFilename)
+			if tempErr != nil && !os.IsNotExist(tempErr) {
+				NoticeAlert("reset partial download failed: %s", tempErr)
+			}
+
+			tempErr = os.Remove(partialETagFilename)
+			if tempErr != nil && !os.IsNotExist(tempErr) {
+				NoticeAlert("reset partial download ETag failed: %s", tempErr)
+			}
+
 			return 0, "", common.ContextError(
 				fmt.Errorf("failed to load partial download ETag: %s", err))
 		}