Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8da7901

Browse files
committed
feat: add enrichment of StartRequest with OS, device ID, version
1 parentf53a99f commit8da7901

File tree

5 files changed

+602
-0
lines changed

5 files changed

+602
-0
lines changed

‎Coder-Desktop/VPN/Manager.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import VPNLib
66
actorManager{
77
letptp:PacketTunnelProvider
88
letcfg:ManagerConfig
9+
lettelemetryEnricher:TelemetryEnricher
910

1011
lettunnelHandle:TunnelHandle
1112
letspeaker:Speaker<Vpn_ManagerMessage,Vpn_TunnelMessage>
@@ -19,6 +20,7 @@ actor Manager {
1920
init(with:PacketTunnelProvider, cfg:ManagerConfig)asyncthrows(ManagerError){
2021
ptp= with
2122
self.cfg= cfg
23+
telemetryEnricher=TelemetryEnricher()
2224
#if arch(arm64)
2325
letdylibPath= cfg.serverUrl.appending(path:"bin/coder-vpn-darwin-arm64.dylib")
2426
#elseif arch(x86_64)
@@ -176,6 +178,7 @@ actor Manager {
176178
req.value= header.value
177179
}
178180
}
181+
req= telemetryEnricher.enrich(req)
179182
}
180183
})
181184
}catch{
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import Foundation
2+
3+
publicstructTelemetryEnricher{
4+
privateletdeviceID:String
5+
privateletversion:String?
6+
7+
publicinit(){
8+
version=Bundle.main.infoDictionary?["CFBundleShortVersionString"]as?String
9+
10+
letuserDefaults=UserDefaults.standard
11+
letkey="deviceID"
12+
13+
iflet existingID= userDefaults.string(forKey: key){
14+
deviceID= existingID
15+
}else{
16+
letnewID=UUID().uuidString
17+
userDefaults.set(newID, forKey: key)
18+
deviceID= newID
19+
}
20+
}
21+
22+
publicfunc enrich(_ original:Vpn_StartRequest)->Vpn_StartRequest{
23+
varreq= original
24+
req.deviceOs="macOS"
25+
req.deviceID= deviceID
26+
if version!=nil{
27+
req.coderDesktopVersion= version!
28+
}
29+
return req
30+
}
31+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp