macOS: include node hardware identifiers
This commit is contained in:
@@ -8,6 +8,8 @@ struct BridgeNodeInfo: Sendable {
|
|||||||
var displayName: String?
|
var displayName: String?
|
||||||
var platform: String?
|
var platform: String?
|
||||||
var version: String?
|
var version: String?
|
||||||
|
var deviceFamily: String?
|
||||||
|
var modelIdentifier: String?
|
||||||
var remoteAddress: String?
|
var remoteAddress: String?
|
||||||
var caps: [String]?
|
var caps: [String]?
|
||||||
}
|
}
|
||||||
@@ -145,6 +147,8 @@ actor BridgeConnectionHandler {
|
|||||||
displayName: hello.displayName,
|
displayName: hello.displayName,
|
||||||
platform: hello.platform,
|
platform: hello.platform,
|
||||||
version: hello.version,
|
version: hello.version,
|
||||||
|
deviceFamily: hello.deviceFamily,
|
||||||
|
modelIdentifier: hello.modelIdentifier,
|
||||||
remoteAddress: self.remoteAddressString(),
|
remoteAddress: self.remoteAddressString(),
|
||||||
caps: hello.caps))
|
caps: hello.caps))
|
||||||
}
|
}
|
||||||
@@ -178,6 +182,8 @@ actor BridgeConnectionHandler {
|
|||||||
displayName: enriched.displayName,
|
displayName: enriched.displayName,
|
||||||
platform: enriched.platform,
|
platform: enriched.platform,
|
||||||
version: enriched.version,
|
version: enriched.version,
|
||||||
|
deviceFamily: enriched.deviceFamily,
|
||||||
|
modelIdentifier: enriched.modelIdentifier,
|
||||||
remoteAddress: enriched.remoteAddress,
|
remoteAddress: enriched.remoteAddress,
|
||||||
caps: enriched.caps))
|
caps: enriched.caps))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -403,7 +403,29 @@ actor BridgeServer {
|
|||||||
guard let token = hello.token, token == paired.token else {
|
guard let token = hello.token, token == paired.token else {
|
||||||
return .unauthorized
|
return .unauthorized
|
||||||
}
|
}
|
||||||
do { try await store.touchSeen(nodeId: nodeId) } catch { /* ignore */ }
|
|
||||||
|
do {
|
||||||
|
var updated = paired
|
||||||
|
let name = hello.displayName?.trimmingCharacters(in: .whitespacesAndNewlines).nonEmpty
|
||||||
|
let platform = hello.platform?.trimmingCharacters(in: .whitespacesAndNewlines).nonEmpty
|
||||||
|
let version = hello.version?.trimmingCharacters(in: .whitespacesAndNewlines).nonEmpty
|
||||||
|
let deviceFamily = hello.deviceFamily?.trimmingCharacters(in: .whitespacesAndNewlines).nonEmpty
|
||||||
|
let modelIdentifier = hello.modelIdentifier?.trimmingCharacters(in: .whitespacesAndNewlines).nonEmpty
|
||||||
|
|
||||||
|
if updated.displayName != name { updated.displayName = name }
|
||||||
|
if updated.platform != platform { updated.platform = platform }
|
||||||
|
if updated.version != version { updated.version = version }
|
||||||
|
if updated.deviceFamily != deviceFamily { updated.deviceFamily = deviceFamily }
|
||||||
|
if updated.modelIdentifier != modelIdentifier { updated.modelIdentifier = modelIdentifier }
|
||||||
|
|
||||||
|
if updated != paired {
|
||||||
|
try await store.upsert(updated)
|
||||||
|
} else {
|
||||||
|
try await store.touchSeen(nodeId: nodeId)
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
return .ok
|
return .ok
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -429,6 +451,8 @@ actor BridgeServer {
|
|||||||
displayName: request.displayName,
|
displayName: request.displayName,
|
||||||
platform: request.platform,
|
platform: request.platform,
|
||||||
version: request.version,
|
version: request.version,
|
||||||
|
deviceFamily: request.deviceFamily,
|
||||||
|
modelIdentifier: request.modelIdentifier,
|
||||||
token: token,
|
token: token,
|
||||||
createdAtMs: nowMs,
|
createdAtMs: nowMs,
|
||||||
lastSeenAtMs: nowMs)
|
lastSeenAtMs: nowMs)
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ struct PairedNode: Codable, Equatable {
|
|||||||
var displayName: String?
|
var displayName: String?
|
||||||
var platform: String?
|
var platform: String?
|
||||||
var version: String?
|
var version: String?
|
||||||
|
var deviceFamily: String?
|
||||||
|
var modelIdentifier: String?
|
||||||
var token: String
|
var token: String
|
||||||
var createdAtMs: Int
|
var createdAtMs: Int
|
||||||
var lastSeenAtMs: Int?
|
var lastSeenAtMs: Int?
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ enum ControlRequestHandler {
|
|||||||
var displayName: String?
|
var displayName: String?
|
||||||
var platform: String?
|
var platform: String?
|
||||||
var version: String?
|
var version: String?
|
||||||
|
var deviceFamily: String?
|
||||||
|
var modelIdentifier: String?
|
||||||
var remoteAddress: String?
|
var remoteAddress: String?
|
||||||
var connected: Bool
|
var connected: Bool
|
||||||
var capabilities: [String]?
|
var capabilities: [String]?
|
||||||
@@ -434,6 +436,8 @@ enum ControlRequestHandler {
|
|||||||
displayName: (live?.displayName ?? p.displayName),
|
displayName: (live?.displayName ?? p.displayName),
|
||||||
platform: (live?.platform ?? p.platform),
|
platform: (live?.platform ?? p.platform),
|
||||||
version: (live?.version ?? p.version),
|
version: (live?.version ?? p.version),
|
||||||
|
deviceFamily: (live?.deviceFamily ?? p.deviceFamily),
|
||||||
|
modelIdentifier: (live?.modelIdentifier ?? p.modelIdentifier),
|
||||||
remoteAddress: live?.remoteAddress,
|
remoteAddress: live?.remoteAddress,
|
||||||
connected: live != nil,
|
connected: live != nil,
|
||||||
capabilities: live?.caps)
|
capabilities: live?.caps)
|
||||||
@@ -445,6 +449,8 @@ enum ControlRequestHandler {
|
|||||||
displayName: c.displayName,
|
displayName: c.displayName,
|
||||||
platform: c.platform,
|
platform: c.platform,
|
||||||
version: c.version,
|
version: c.version,
|
||||||
|
deviceFamily: c.deviceFamily,
|
||||||
|
modelIdentifier: c.modelIdentifier,
|
||||||
remoteAddress: c.remoteAddress,
|
remoteAddress: c.remoteAddress,
|
||||||
connected: true,
|
connected: true,
|
||||||
capabilities: c.caps)
|
capabilities: c.caps)
|
||||||
|
|||||||
Reference in New Issue
Block a user