diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2025-12-29 20:38:40 -0800 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2025-12-29 20:38:40 -0800 |
| commit | ad08d85855aba6a5fb88d9d5eb83c3a89e17420c (patch) | |
| tree | d8d5c9a5b9efb54d914f96075291d12fd169c210 | |
| parent | 05a7cc0d72d26e834a0d54c2c9ae88eb9cf54805 (diff) | |
| download | roseh.moe-ad08d85855aba6a5fb88d9d5eb83c3a89e17420c.tar.zst | |
Fix clean hole
| -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) |
