Add iPad support, auto-pinning, and comprehensive logging
- Adaptive iPhone/iPad layout with NavigationSplitView sidebar - Auto-detect SSL-pinned domains, fall back to passthrough - Certificate install via local HTTP server (Safari profile flow) - App Group-backed CA, per-domain leaf cert LRU cache - DB-backed config repository, Darwin notification throttling - Rules engine, breakpoint rules, pinned domain tracking - os.Logger instrumentation across tunnel/proxy/mitm/capture/cert/rules/db/ipc/ui - Fix dyld framework embed, race conditions, thread safety
This commit is contained in:
24
ProxyCore/Sources/DataLayer/Models/PinnedDomain.swift
Normal file
24
ProxyCore/Sources/DataLayer/Models/PinnedDomain.swift
Normal file
@@ -0,0 +1,24 @@
|
||||
import Foundation
|
||||
import GRDB
|
||||
|
||||
/// A domain detected as using SSL pinning. MITM will automatically skip these
|
||||
/// and fall back to passthrough mode.
|
||||
public struct PinnedDomain: Codable, FetchableRecord, MutablePersistableRecord, Identifiable, Sendable {
|
||||
public var id: Int64?
|
||||
public var domain: String
|
||||
public var reason: String?
|
||||
public var detectedAt: Double
|
||||
|
||||
public static let databaseTableName = "pinned_domains"
|
||||
|
||||
public mutating func didInsert(_ inserted: InsertionSuccess) {
|
||||
id = inserted.rowID
|
||||
}
|
||||
|
||||
public init(id: Int64? = nil, domain: String, reason: String? = nil, detectedAt: Double = Date().timeIntervalSince1970) {
|
||||
self.id = id
|
||||
self.domain = domain
|
||||
self.reason = reason
|
||||
self.detectedAt = detectedAt
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user