summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)