From 00429aeee093e17e0b43db16a8df9ec7676fa664 Mon Sep 17 00:00:00 2001 From: mrFq1 <1xxbx0il0@mozmail.com> Date: Tue, 12 Jul 2022 19:02:13 +0800 Subject: [PATCH] flushFakeipCache. --- ClashX/AppDelegate.swift | 7 +++++++ ClashX/Base.lproj/Main.storyboard | 7 +++++++ ClashX/General/ApiRequest.swift | 10 ++++++++++ 3 files changed, 24 insertions(+) diff --git a/ClashX/AppDelegate.swift b/ClashX/AppDelegate.swift index 596df95..7856b95 100644 --- a/ClashX/AppDelegate.swift +++ b/ClashX/AppDelegate.swift @@ -52,6 +52,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { @IBOutlet var proxyProvidersMenuItem: NSMenuItem! @IBOutlet var ruleProvidersMenuItem: NSMenuItem! @IBOutlet var snifferMenuItem: NSMenuItem! + @IBOutlet var flushFakeipCacheMenuItem: NSMenuItem! var disposeBag = DisposeBag() var statusItemView: StatusItemView! @@ -855,6 +856,12 @@ extension AppDelegate { } } + @IBAction func flushFakeipCache(_ sender: NSMenuItem) { + ApiRequest.flushFakeipCache() { + NSUserNotificationCenter.default.post(title: "Flush fake-ip cache", info: $0 ? "Success" : "Failed") + } + } + @IBAction func updateSniffing(_ sender: NSMenuItem) { let enable = sender.state != .on ApiRequest.updateSniffing(enable: enable) { diff --git a/ClashX/Base.lproj/Main.storyboard b/ClashX/Base.lproj/Main.storyboard index d6addf7..9379c03 100644 --- a/ClashX/Base.lproj/Main.storyboard +++ b/ClashX/Base.lproj/Main.storyboard @@ -182,6 +182,7 @@ + @@ -376,6 +377,12 @@ + + + + + + diff --git a/ClashX/General/ApiRequest.swift b/ClashX/General/ApiRequest.swift index 27b432f..90a8a0e 100644 --- a/ClashX/General/ApiRequest.swift +++ b/ClashX/General/ApiRequest.swift @@ -388,6 +388,16 @@ extension ApiRequest { completeHandler?() } } + + static func flushFakeipCache(completeHandler: ((Bool) -> Void)? = nil) { + Logger.log("FlushFakeipCache") + req("/cache/fakeip/flush", + method: .post).response { + let re = $0.response?.statusCode == 204 + completeHandler?(re) + Logger.log("FlushFakeipCache \(re ? "success" : "failed")") + } + } } // MARK: - Stream Apis