Skip to content

Commit dfe8a65

Browse files
authored
Merge pull request #164 from knoxfighter/Bugfix/windows-filelock
added missing file closing
2 parents f713161 + e7f3ce9 commit dfe8a65

File tree

5 files changed

+32
-3
lines changed

5 files changed

+32
-3
lines changed

src/factorio_save.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ func OpenArchiveFile(path string, name string) (r io.ReadCloser, err error) {
4646
}
4747
}
4848

49+
archive.Close()
4950
return nil, errors.New("file not found")
5051
}
5152

src/factorio_server.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ func initFactorio() (f *FactorioServer, err error) {
7676
if err != nil {
7777
return nil, fmt.Errorf("failed to copy example server settings: %v", err)
7878
}
79+
80+
err = example.Close()
81+
if err != nil {
82+
return nil, fmt.Errorf("failed to close example server settings: %s", err)
83+
}
7984
} else {
8085
// otherwise, open file normally
8186
settings, err = os.Open(settingsPath)

src/mod_modInfo.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ func (modInfoList *ModInfoList) listInstalledMods() error {
6565
log.Fatalln(err)
6666
return err
6767
}
68+
defer zipFile.Close()
6869

6970
var modInfo ModInfo
7071
err = modInfo.getModInfo(&zipFile.Reader)
@@ -171,11 +172,15 @@ func (modInfo *ModInfo) getModInfo(reader *zip.Reader) error {
171172
}
172173

173174
byteArray, err := ioutil.ReadAll(rc)
174-
rc.Close()
175175
if err != nil {
176176
log.Fatal(err)
177177
return err
178178
}
179+
err = rc.Close()
180+
if err != nil {
181+
log.Printf("Error closing singleFile: %s", err)
182+
return err
183+
}
179184

180185
err = json.Unmarshal(byteArray, modInfo)
181186
if err != nil {

src/mods.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,12 @@ func modStartUp() {
307307
log.Printf("error reading mod_file_rc: %s", err)
308308
return err
309309
}
310-
modFileRc.Close()
310+
311+
err = modFileRc.Close()
312+
if err != nil {
313+
log.Printf("error closing mod_file_rc: %s", err)
314+
return err
315+
}
311316

312317
modFileByteReader := bytes.NewReader(modFileBuffer)
313318
modFileZipReader, err := zip.NewReader(modFileByteReader, int64(len(modFileBuffer)))

src/mods_handler.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,12 @@ func DownloadModsHandler(w http.ResponseWriter, r *http.Request) {
548548
log.Printf("error on copying file into zip: %s", err)
549549
return err
550550
}
551+
552+
err = file.Close()
553+
if err != nil {
554+
log.Printf("error closing file: %s", err)
555+
return err
556+
}
551557
}
552558

553559
return nil
@@ -703,7 +709,14 @@ func DownloadModPackHandler(w http.ResponseWriter, r *http.Request) {
703709
log.Printf("error on opening modfile: %s", err)
704710
return err
705711
}
706-
defer file.Close()
712+
// Close file, when function returns
713+
defer func() {
714+
err2 := file.Close()
715+
if err == nil && err2 != nil {
716+
log.Printf("Error closing file: %s", err2)
717+
err = err2
718+
}
719+
}()
707720

708721
_, err = io.Copy(writer, file)
709722
if err != nil {

0 commit comments

Comments
 (0)