mirror of
https://github.com/mumble-voip/grumble.git
synced 2025-12-20 06:10:00 -08:00
Use Server.FreezeToFile for the timer
This commit is contained in:
parent
bee3327e0f
commit
eb4c442be0
1 changed files with 3 additions and 28 deletions
31
grumble.go
31
grumble.go
|
|
@ -10,8 +10,6 @@ import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"gob"
|
"gob"
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"log"
|
"log"
|
||||||
|
|
@ -190,33 +188,10 @@ func main() {
|
||||||
select {
|
select {
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
for sid, server := range servers {
|
for sid, server := range servers {
|
||||||
r := server.FreezeServer()
|
err := server.FreezeToFile(filepath.Join(*datadir, fmt.Sprintf("%v", sid)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panicf("Unable to freeze server %v", sid)
|
log.Printf("Unable to freeze server %v: %s", sid, err.String())
|
||||||
}
|
continue
|
||||||
f, err := ioutil.TempFile(*datadir, fmt.Sprintf("%v_", sid))
|
|
||||||
if err != nil {
|
|
||||||
log.Panicf("Unable to open file: %", err.String())
|
|
||||||
}
|
|
||||||
nwritten, err := io.Copy(f, r)
|
|
||||||
if err != nil {
|
|
||||||
log.Panicf("Unable to copy frozen server data: %v bytes, err=%v", nwritten, err)
|
|
||||||
}
|
|
||||||
err = r.Close()
|
|
||||||
if err != nil {
|
|
||||||
log.Panicf("Unable to freeze server: %v", err)
|
|
||||||
}
|
|
||||||
err = f.Sync()
|
|
||||||
if err != nil {
|
|
||||||
log.Panicf("Unable to sync frozen file: %v", err)
|
|
||||||
}
|
|
||||||
err = f.Close()
|
|
||||||
if err != nil {
|
|
||||||
log.Panicf("Unable to freeze server: %v", err)
|
|
||||||
}
|
|
||||||
err = os.Rename(f.Name(), filepath.Join(*datadir, fmt.Sprintf("%v", sid)))
|
|
||||||
if err != nil {
|
|
||||||
log.Panicf("Unable to freeze server: %v", err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue