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

Commite96075e

Browse files
committed
renames
1 parentd80d709 commite96075e

File tree

10 files changed

+127
-128
lines changed

10 files changed

+127
-128
lines changed

‎Coder-Desktop/Coder-Desktop/XPCInterface.swift‎renamed to ‎Coder-Desktop/Coder-Desktop/AppHelperXPCClient.swift‎

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ import NetworkExtension
33
import os
44
import VPNLib
55

6-
@objcfinalclassAppXPCListener:NSObject,AppXPCInterface,@uncheckedSendable{
6+
// This is the client for the app to communicate with the privileged helper.
7+
@objcfinalclassHelperXPCClient:NSObject,@uncheckedSendable{
78
privatevarsvc:CoderVPNService
8-
privateletlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"AppXPCListener")
9+
privateletlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"HelperXPCClient")
910
privatevarconnection:NSXPCConnection?
1011

1112
init(vpn:CoderVPNService){
@@ -41,25 +42,7 @@ import VPNLib
4142
return connection
4243
}
4344

44-
func onPeerUpdate(_ diff:Data, reply:@escaping()->Void){
45-
letreply=CompletionWrapper(reply)
46-
Task{@MainActorin
47-
svc.onExtensionPeerUpdate(diff)
48-
reply()
49-
}
50-
}
51-
52-
func onProgress(stage:ProgressStage, downloadProgress:DownloadProgress?, reply:@escaping()->Void){
53-
letreply=CompletionWrapper(reply)
54-
Task{@MainActorin
55-
svc.onProgress(stage: stage, downloadProgress: downloadProgress)
56-
reply()
57-
}
58-
}
59-
}
60-
61-
// These methods are called to request updatess from the Helper.
62-
extensionAppXPCListener{
45+
// Establishes a connection to the Helper, so it can send messages back.
6346
func ping()asyncthrows{
6447
letconn=connect()
6548
returntryawaitwithCheckedThrowingContinuation{ continuationin
@@ -98,3 +81,22 @@ extension AppXPCListener {
9881
}
9982
}
10083
}
84+
85+
// These methods by the Helper over XPC
86+
extensionHelperXPCClient:AppXPCInterface{
87+
func onPeerUpdate(_ diff:Data, reply:@escaping()->Void){
88+
letreply=CompletionWrapper(reply)
89+
Task{@MainActorin
90+
svc.onExtensionPeerUpdate(diff)
91+
reply()
92+
}
93+
}
94+
95+
func onProgress(stage:ProgressStage, downloadProgress:DownloadProgress?, reply:@escaping()->Void){
96+
letreply=CompletionWrapper(reply)
97+
Task{@MainActorin
98+
svc.onProgress(stage: stage, downloadProgress: downloadProgress)
99+
reply()
100+
}
101+
}
102+
}

‎Coder-Desktop/Coder-Desktop/VPN/VPNService.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ enum VPNServiceError: Error, Equatable {
5454
@MainActor
5555
finalclassCoderVPNService:NSObject,VPNService{
5656
varlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"vpn")
57-
lazyvarxpc:AppXPCListener=.init(vpn:self)
57+
lazyvarxpc:HelperXPCClient=.init(vpn:self)
5858

5959
@PublishedvartunnelState:VPNServiceState=.disabled{
6060
didSet{

‎Coder-Desktop/Coder-Desktop/Views/LoginForm.swift‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ struct LoginForm: View {
9090
return
9191
}
9292
// x.compare(y) is .orderedDescending if x > y
93-
guardSignatureValidator.minimumCoderVersion.compare(semver, options:.numeric)!=.orderedDescendingelse{
93+
guardValidator.minimumCoderVersion.compare(semver, options:.numeric)!=.orderedDescendingelse{
9494
loginError=.outdatedCoderVersion
9595
return
9696
}
@@ -221,7 +221,7 @@ enum LoginError: Error {
221221
"Invalid URL"
222222
case.outdatedCoderVersion:
223223
"""
224-
The Coder deployment must be version\(SignatureValidator.minimumCoderVersion)
224+
The Coder deployment must be version\(Validator.minimumCoderVersion)
225225
or higher to use Coder Desktop.
226226
"""
227227
caselet.failedAuth(err):

‎Coder-Desktop/Coder-DesktopHelper/HelperXPCListeners.swift‎

Lines changed: 56 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import VPNLib
55

66
// This listener handles XPC connections from the Coder Desktop System Network
77
// Extension (`com.coder.Coder-Desktop.VPN`).
8-
classHelperNEXPCListener:NSObject,NSXPCListenerDelegate,HelperNEXPCInterface,@uncheckedSendable{
9-
privatevarlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"HelperNEXPCListener")
8+
classHelperNEXPCServer:NSObject,NSXPCListenerDelegate,@uncheckedSendable{
9+
privatevarlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"HelperNEXPCServer")
1010
privatevarconns:[NSXPCConnection]=[]
1111

1212
// Hold a reference to the tun file handle
@@ -37,6 +37,43 @@ class HelperNEXPCListener: NSObject, NSXPCListenerDelegate, HelperNEXPCInterface
3737
returntrue
3838
}
3939

40+
func cancelProvider(error:Error?)asyncthrows{
41+
tryawaitwithCheckedThrowingContinuation{ continuationin
42+
guardlet proxy= conns.last?.remoteObjectProxyWithErrorHandler({ errin
43+
self.logger.error("failed to connect to HelperNEXPC\(err.localizedDescription, privacy:.public)")
44+
continuation.resume(throwing: err)
45+
})as?NEXPCInterfaceelse{
46+
self.logger.error("failed to get proxy for HelperNEXPCInterface")
47+
continuation.resume(throwing:XPCError.wrongProxyType)
48+
return
49+
}
50+
proxy.cancelProvider(error: error){
51+
self.logger.info("provider cancelled")
52+
continuation.resume()
53+
}
54+
}asVoid
55+
}
56+
57+
func applyTunnelNetworkSettings(diff:Vpn_NetworkSettingsRequest)asyncthrows{
58+
letbytes=try diff.serializedData()
59+
returntryawaitwithCheckedThrowingContinuation{ continuationin
60+
guardlet proxy= conns.last?.remoteObjectProxyWithErrorHandler({ errin
61+
self.logger.error("failed to connect to HelperNEXPC\(err.localizedDescription, privacy:.public)")
62+
continuation.resume(throwing: err)
63+
})as?NEXPCInterfaceelse{
64+
self.logger.error("failed to get proxy for HelperNEXPCInterface")
65+
continuation.resume(throwing:XPCError.wrongProxyType)
66+
return
67+
}
68+
proxy.applyTunnelNetworkSettings(diff: bytes){
69+
self.logger.info("applied tunnel network setting")
70+
continuation.resume()
71+
}
72+
}
73+
}
74+
}
75+
76+
extensionHelperNEXPCServer:HelperNEXPCInterface{
4077
func startDaemon(
4178
accessURL:URL,
4279
token:String,
@@ -88,49 +125,10 @@ class HelperNEXPCListener: NSObject, NSXPCListenerDelegate, HelperNEXPCInterface
88125
}
89126
}
90127

91-
// These methods are called to send updates to the Coder Desktop System Network
92-
// Extension.
93-
extensionHelperNEXPCListener{
94-
func cancelProvider(error:Error?)asyncthrows{
95-
tryawaitwithCheckedThrowingContinuation{ continuationin
96-
guardlet proxy= conns.last?.remoteObjectProxyWithErrorHandler({ errin
97-
self.logger.error("failed to connect to HelperNEXPC\(err.localizedDescription, privacy:.public)")
98-
continuation.resume(throwing: err)
99-
})as?NEXPCInterfaceelse{
100-
self.logger.error("failed to get proxy for HelperNEXPCInterface")
101-
continuation.resume(throwing:XPCError.wrongProxyType)
102-
return
103-
}
104-
proxy.cancelProvider(error: error){
105-
self.logger.info("provider cancelled")
106-
continuation.resume()
107-
}
108-
}asVoid
109-
}
110-
111-
func applyTunnelNetworkSettings(diff:Vpn_NetworkSettingsRequest)asyncthrows{
112-
letbytes=try diff.serializedData()
113-
returntryawaitwithCheckedThrowingContinuation{ continuationin
114-
guardlet proxy= conns.last?.remoteObjectProxyWithErrorHandler({ errin
115-
self.logger.error("failed to connect to HelperNEXPC\(err.localizedDescription, privacy:.public)")
116-
continuation.resume(throwing: err)
117-
})as?NEXPCInterfaceelse{
118-
self.logger.error("failed to get proxy for HelperNEXPCInterface")
119-
continuation.resume(throwing:XPCError.wrongProxyType)
120-
return
121-
}
122-
proxy.applyTunnelNetworkSettings(diff: bytes){
123-
self.logger.info("applied tunnel network setting")
124-
continuation.resume()
125-
}
126-
}
127-
}
128-
}
129-
130128
// This listener handles XPC connections from the Coder Desktop App
131129
// (`com.coder.Coder-Desktop`).
132-
classHelperAppXPCListener:NSObject,NSXPCListenerDelegate,HelperAppXPCInterface,@uncheckedSendable{
133-
privatevarlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"HelperAppXPCListener")
130+
classHelperAppXPCServer:NSObject,NSXPCListenerDelegate,@uncheckedSendable{
131+
privatevarlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"HelperAppXPCServer")
134132
privatevarconns:[NSXPCConnection]=[]
135133

136134
overrideinit(){
@@ -152,22 +150,6 @@ class HelperAppXPCListener: NSObject, NSXPCListenerDelegate, HelperAppXPCInterfa
152150
returntrue
153151
}
154152

155-
func getPeerState(with reply:@escaping(Data?)->Void){
156-
logger.info("getPeerState called")
157-
letreply=CallbackWrapper(reply)
158-
Task{@MainActorin
159-
letdata=try?await globalManager?.getPeerState().serializedData()
160-
reply(data)
161-
}
162-
}
163-
164-
func ping(reply:@escaping()->Void){
165-
reply()
166-
}
167-
}
168-
169-
// These methods are called to send updates to the Coder Desktop App.
170-
extensionHelperAppXPCListener{
171153
func onPeerUpdate(update:Vpn_PeerUpdate)asyncthrows{
172154
letbytes=try update.serializedData()
173155
returntryawaitwithCheckedThrowingContinuation{ continuationin
@@ -203,3 +185,18 @@ extension HelperAppXPCListener {
203185
}asVoid
204186
}
205187
}
188+
189+
extensionHelperAppXPCServer:HelperAppXPCInterface{
190+
func getPeerState(with reply:@escaping(Data?)->Void){
191+
logger.info("getPeerState called")
192+
letreply=CallbackWrapper(reply)
193+
Task{@MainActorin
194+
letdata=try?await globalManager?.getPeerState().serializedData()
195+
reply(data)
196+
}
197+
}
198+
199+
func ping(reply:@escaping()->Void){
200+
reply()
201+
}
202+
}

‎Coder-Desktop/Coder-DesktopHelper/Manager.swift‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ actor Manager {
5656
throw.serverInfo("invalid version:\(buildInfo.version)")
5757
}
5858
do{
59-
trySignatureValidator.validate(path: dest, expectedVersion: semver)
59+
tryValidator.validate(path: dest, expectedVersion: semver)
6060
}catch{
6161
throw.validation(error)
6262
}
@@ -100,14 +100,14 @@ actor Manager {
100100
}catch{
101101
logger.error("tunnel read loop failed:\(error.localizedDescription, privacy:.public)")
102102
tryawait tunnelHandle.close()
103-
tryawaitNEXPCListenerDelegate.cancelProvider(error:
103+
tryawaitNEXPCServerDelegate.cancelProvider(error:
104104
makeNSError(suffix:"Manager", desc:"Tunnel read loop failed:\(error.localizedDescription)")
105105
)
106106
return
107107
}
108108
logger.info("tunnel read loop exited")
109109
tryawait tunnelHandle.close()
110-
tryawaitNEXPCListenerDelegate.cancelProvider(error:nil)
110+
tryawaitNEXPCServerDelegate.cancelProvider(error:nil)
111111
}
112112

113113
func handleMessage(_ msg:Vpn_TunnelMessage){
@@ -117,7 +117,7 @@ actor Manager {
117117
}
118118
switch msgType{
119119
case.peerUpdate:
120-
Task{try?awaitappXPCListenerDelegate.onPeerUpdate(update: msg.peerUpdate)}
120+
Task{try?awaitappXPCServerDelegate.onPeerUpdate(update: msg.peerUpdate)}
121121
caselet.log(logMsg):
122122
writeVpnLog(logMsg)
123123
case.networkSettings,.start,.stop:
@@ -133,7 +133,7 @@ actor Manager {
133133
switch msgType{
134134
caselet.networkSettings(ns):
135135
do{
136-
tryawaitNEXPCListenerDelegate.applyTunnelNetworkSettings(diff: ns)
136+
tryawaitNEXPCServerDelegate.applyTunnelNetworkSettings(diff: ns)
137137
try?await rpc.sendReply(.with{ respin
138138
resp.networkSettings=.with{ settingsin
139139
settings.success=true
@@ -227,7 +227,7 @@ actor Manager {
227227
}
228228

229229
func pushProgress(stage:ProgressStage, downloadProgress:DownloadProgress?=nil){
230-
Task{try?awaitappXPCListenerDelegate.onProgress(stage: stage, downloadProgress: downloadProgress)}
230+
Task{try?awaitappXPCServerDelegate.onProgress(stage: stage, downloadProgress: downloadProgress)}
231231
}
232232

233233
structManagerConfig{

‎Coder-Desktop/Coder-DesktopHelper/main.swift‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import VPNLib
55

66
varglobalManager:Manager?
77

8-
letNEXPCListenerDelegate=HelperNEXPCListener()
9-
letNEXPCListener=NSXPCListener(machServiceName: helperNEMachServiceName)
10-
NEXPCListener.delegate=NEXPCListenerDelegate
11-
NEXPCListener.resume()
8+
letNEXPCServerDelegate=HelperNEXPCServer()
9+
letNEXPCServer=NSXPCListener(machServiceName: helperNEMachServiceName)
10+
NEXPCServer.delegate=NEXPCServerDelegate
11+
NEXPCServer.resume()
1212

13-
letappXPCListenerDelegate=HelperAppXPCListener()
14-
letappXPCListener=NSXPCListener(machServiceName: helperAppMachServiceName)
15-
appXPCListener.delegate=appXPCListenerDelegate
16-
appXPCListener.resume()
13+
letappXPCServerDelegate=HelperAppXPCServer()
14+
letappXPCServer=NSXPCListener(machServiceName: helperAppMachServiceName)
15+
appXPCServer.delegate=appXPCServerDelegate
16+
appXPCServer.resume()
1717

1818
RunLoop.main.run()

‎Coder-Desktop/VPN/HelperXPCSpeaker.swift‎renamed to ‎Coder-Desktop/VPN/NEHelperXPCClient.swift‎

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Foundation
22
import os
33
import VPNLib
44

5-
finalclassHelperXPCSpeaker:NEXPCInterface,@uncheckedSendable{
5+
finalclassHelperXPCClient:@uncheckedSendable{
66
varptp:PacketTunnelProvider?
77
privatevarlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"HelperXPCSpeaker")
88
privatevarconnection:NSXPCConnection?
@@ -34,29 +34,6 @@ final class HelperXPCSpeaker: NEXPCInterface, @unchecked Sendable {
3434
return connection
3535
}
3636

37-
func applyTunnelNetworkSettings(diff:Data, reply:@escaping()->Void){
38-
letreply=CompletionWrapper(reply)
39-
guardlet diff=try?Vpn_NetworkSettingsRequest(serializedBytes: diff)else{
40-
reply()
41-
return
42-
}
43-
Task{
44-
try?await ptp?.applyTunnelNetworkSettings(diff)
45-
reply()
46-
}
47-
}
48-
49-
func cancelProvider(error:Error?, reply:@escaping()->Void){
50-
letreply=CompletionWrapper(reply)
51-
Task{
52-
ptp?.cancelTunnelWithError(error)
53-
reply()
54-
}
55-
}
56-
}
57-
58-
// These methods are called to start and stop the daemon run by the Helper.
59-
extensionHelperXPCSpeaker{
6037
func startDaemon(accessURL:URL, token:String, tun:FileHandle, headers:Data?)asyncthrows{
6138
letconn=connect()
6239
returntryawaitwithCheckedThrowingContinuation{ continuationin
@@ -103,3 +80,26 @@ extension HelperXPCSpeaker {
10380
}
10481
}
10582
}
83+
84+
// These methods are called over XPC by the helper.
85+
extensionHelperXPCClient:NEXPCInterface{
86+
func applyTunnelNetworkSettings(diff:Data, reply:@escaping()->Void){
87+
letreply=CompletionWrapper(reply)
88+
guardlet diff=try?Vpn_NetworkSettingsRequest(serializedBytes: diff)else{
89+
reply()
90+
return
91+
}
92+
Task{
93+
try?await ptp?.applyTunnelNetworkSettings(diff)
94+
reply()
95+
}
96+
}
97+
98+
func cancelProvider(error:Error?, reply:@escaping()->Void){
99+
letreply=CompletionWrapper(reply)
100+
Task{
101+
ptp?.cancelTunnelWithError(error)
102+
reply()
103+
}
104+
}
105+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp