blob: 158e4641d57be035ec70354dd7e070b5e0fd3da3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// SPDX-License-Identifier: MIT
// Copyright © 2018-2023 WireGuard LLC. All Rights Reserved.
import Cocoa
class LaunchedAtLoginDetector {
static func isLaunchedAtLogin(openAppleEvent: NSAppleEventDescriptor) -> Bool {
let now = clock_gettime_nsec_np(CLOCK_UPTIME_RAW)
guard openAppleEvent.eventClass == kCoreEventClass && openAppleEvent.eventID == kAEOpenApplication else { return false }
guard let url = FileManager.loginHelperTimestampURL else { return false }
guard let data = try? Data(contentsOf: url) else { return false }
_ = FileManager.deleteFile(at: url)
guard data.count == 8 else { return false }
let then = data.withUnsafeBytes { ptr in
ptr.load(as: UInt64.self)
}
return now - then <= 20000000000
}
}
|