mirror of
https://github.com/terorie/od-database-crawler.git
synced 2025-04-18 01:46:43 +00:00
resume len
This commit is contained in:
parent
4ef4ab13a8
commit
f3be76e001
20
resume.go
20
resume.go
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"encoding/gob"
|
||||
"fmt"
|
||||
"github.com/beeker1121/goque"
|
||||
@ -193,13 +194,18 @@ func writePauseFile(od *OD, w io.Writer) (err error) {
|
||||
InProgress: atomic.LoadInt64(&od.InProgress),
|
||||
}
|
||||
|
||||
// Write pause settings
|
||||
pauseEnc := gob.NewEncoder(w)
|
||||
// Prepare pause settings
|
||||
var b bytes.Buffer
|
||||
pauseEnc := gob.NewEncoder(&b)
|
||||
err = pauseEnc.Encode(&paused)
|
||||
if err != nil { return err }
|
||||
|
||||
// Save mark
|
||||
_, err = w.Write([]byte("--------"))
|
||||
// Write length of pause settings
|
||||
err = binary.Write(w, binary.LittleEndian, uint64(b.Len()))
|
||||
if err != nil { return err }
|
||||
|
||||
// Write pause settings
|
||||
_, err = w.Write(b.Bytes())
|
||||
if err != nil { return err }
|
||||
|
||||
// Write pause scan state
|
||||
@ -229,8 +235,12 @@ func readPauseFile(od *OD, r io.Reader) (err error) {
|
||||
return fmt.Errorf("unsupported pause file")
|
||||
}
|
||||
|
||||
// Read pause settings len
|
||||
var pauseSettingsLen uint64
|
||||
err = binary.Read(r, binary.LittleEndian, &pauseSettingsLen)
|
||||
|
||||
// Read pause settings
|
||||
pauseDec := gob.NewDecoder(r)
|
||||
pauseDec := gob.NewDecoder(io.LimitReader(r, int64(pauseSettingsLen)))
|
||||
err = pauseDec.Decode(&paused)
|
||||
if err != nil { return err }
|
||||
atomic.StoreInt64(&od.InProgress, paused.InProgress)
|
||||
|
Loading…
x
Reference in New Issue
Block a user