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