diff options
| -rw-r--r-- | roseh.moe.go | 65 |
1 files changed, 34 insertions, 31 deletions
diff --git a/roseh.moe.go b/roseh.moe.go index 7b5b953..59878c4 100644 --- a/roseh.moe.go +++ b/roseh.moe.go @@ -353,39 +353,36 @@ func wormholeDownload(w http.ResponseWriter, r *http.Request) { } } -func cleanHole() { - for range time.NewTicker(time.Hour).C { - log.Printf("Cleaning hole...") - holeDir, err := os.Open(*holeTempDir) - if err != nil { - log.Printf("Warning: clean hole: %s", err) - continue - } - defer holeDir.Close() - deadline := time.Now().Add(-time.Hour) - for { - files, err := holeDir.ReadDir(1024) - for _, file := range files { - stat, err := file.Info() - if err != nil { - log.Printf("Warning: clean hole: %s", err) - continue - } - if !stat.ModTime().Before(deadline) { - continue - } - if err := os.Remove(*holeTempDir + "/" + file.Name()); err != nil { - log.Printf("Warning: clean hole: %s", err) - continue - } - } +func cleanHole() error { + log.Printf("Cleaning hole...") + holeDir, err := os.Open(*holeTempDir) + if err != nil { + return err + } + defer holeDir.Close() + deadline := time.Now().Add(-time.Hour) + for { + files, err := holeDir.ReadDir(1024) + for _, file := range files { + stat, err := file.Info() if err != nil { - if err != io.EOF { - log.Printf("Warning: clean hole: %s", err) - } - break + log.Printf("Warning: clean hole: %s", err) + continue + } + if !stat.ModTime().Before(deadline) { + continue + } + if err := os.Remove(*holeTempDir + "/" + file.Name()); err != nil { + log.Printf("Warning: clean hole: %s", err) + continue } } + if err != nil { + if err != io.EOF { + return err + } + return nil + } } } @@ -669,7 +666,13 @@ func main() { log.Fatal(err) } - go cleanHole() + go func() { + for range time.NewTicker(time.Hour).C { + if err := cleanHole(); err != nil { + log.Printf("Warning: clean hole: %s", err) + } + } + }() mux := http.NewServeMux() mux.HandleFunc("GET /pong", pong) |
