cache.go 690 B

123456789101112131415161718192021222324252627282930
  1. package clashapi
  2. import (
  3. "net/http"
  4. "github.com/sagernet/sing-box/adapter"
  5. "github.com/go-chi/chi/v5"
  6. "github.com/go-chi/render"
  7. )
  8. func cacheRouter(router adapter.Router) http.Handler {
  9. r := chi.NewRouter()
  10. r.Post("/fakeip/flush", flushFakeip(router))
  11. return r
  12. }
  13. func flushFakeip(router adapter.Router) func(w http.ResponseWriter, r *http.Request) {
  14. return func(w http.ResponseWriter, r *http.Request) {
  15. if cacheFile := router.ClashServer().CacheFile(); cacheFile != nil {
  16. err := cacheFile.FakeIPReset()
  17. if err != nil {
  18. render.Status(r, http.StatusInternalServerError)
  19. render.JSON(w, r, newError(err.Error()))
  20. return
  21. }
  22. }
  23. render.NoContent(w, r)
  24. }
  25. }