summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2025-12-29 20:38:40 -0800
committerRose Hogenson <rosehogenson@posteo.net>2025-12-29 20:38:40 -0800
commitad08d85855aba6a5fb88d9d5eb83c3a89e17420c (patch)
treed8d5c9a5b9efb54d914f96075291d12fd169c210
parent05a7cc0d72d26e834a0d54c2c9ae88eb9cf54805 (diff)
downloadroseh.moe-ad08d85855aba6a5fb88d9d5eb83c3a89e17420c.tar.zst
Fix clean hole
-rw-r--r--roseh.moe.go65
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)