diff --git a/resume.go b/resume.go index 4ce81d2..3926896 100644 --- a/resume.go +++ b/resume.go @@ -84,10 +84,15 @@ func SaveTask(od *OD) (err error) { err = os.Mkdir(dir, 0777) if err != nil { return err } + // Open pause file pausedF, err := os.OpenFile(fPath, os.O_CREATE | os.O_WRONLY | os.O_TRUNC, 0666) if err != nil { return err } defer pausedF.Close() + // Write pause file version + _, err = pausedF.Write([]byte("ODPAUSE-")) + if err != nil { return err } + // Create save state paused := PausedOD { Task: &od.Task, @@ -144,6 +149,13 @@ func resumeQueue(id uint64) (od *OD, err error) { BaseUri: &od.BaseUri, } + var version [8]byte + _, err = io.ReadFull(pausedF, version[:]) + if err != nil { return nil, err } + if !bytes.Equal(version[:], []byte("ODPAUSE-")) { + return nil, fmt.Errorf("unsupported pause file") + } + // Read pause settings pauseDec := gob.NewDecoder(pausedF) err = pauseDec.Decode(&paused)