diff --git a/main.go b/main.go index 12df585..c07f6f8 100644 --- a/main.go +++ b/main.go @@ -586,11 +586,13 @@ func start(asDaemon, firstCall bool) { } }() for range RESTART { + println("got it too!") ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) defer cancel() if err := SRV.Shutdown(ctx); err != nil { app.err.Fatalf("Server shutdown error: %s", err) } + app.info.Println("Server shut down.") return } } @@ -608,6 +610,7 @@ func (app *appContext) shutdown() { if err := SRV.Shutdown(cntx); err != nil { app.err.Fatalf("Server shutdown error: %s", err) } + os.Exit(1) } } diff --git a/pwreset.go b/pwreset.go index 255c9e2..12e26ac 100644 --- a/pwreset.go +++ b/pwreset.go @@ -40,13 +40,13 @@ func (app *appContext) StartPWR() { } defer watcher.Close() - done := make(chan bool) go pwrMonitor(app, watcher) err = watcher.Add(path) if err != nil { app.err.Printf("Failed to start password reset daemon: %s", err) } - <-done + + <-RESTART } // PasswordReset represents a passwordreset-xyz.json file generated by Jellyfin. @@ -77,7 +77,7 @@ func pwrMonitor(app *appContext, watcher *fsnotify.Watcher) { err = json.Unmarshal(data, &pwr) if len(pwr.Pin) == 0 || err != nil { app.debug.Printf("PWR: Failed to read PIN: %v", err) - return + continue } app.info.Printf("New password reset for user \"%s\"", pwr.Username) if currentTime := time.Now(); pwr.Expiry.After(currentTime) {