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

Commiteebf562

Browse files
committed
renames
1 parente32d7de commiteebf562

File tree

8 files changed

+122
-123
lines changed

8 files changed

+122
-123
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
@@ -57,7 +57,7 @@ enum VPNServiceError: Error, Equatable {
5757
@MainActor
5858
finalclassCoderVPNService:NSObject,VPNService{
5959
varlogger=Logger(subsystem:Bundle.main.bundleIdentifier!, category:"vpn")
60-
lazyvarxpc:AppXPCListener=.init(vpn:self)
60+
lazyvarxpc:HelperXPCClient=.init(vpn:self)
6161

6262
@PublishedvartunnelState:VPNServiceState=.disabled{
6363
didSet{

‎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: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
}

‎Coder-Desktop/VPN/PacketTunnelProvider.swift‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, @unchecked Sendable {
4646
overridefunc startTunnel(
4747
options _:[String:NSObject]?
4848
)asyncthrows{
49-
globalHelperXPCSpeaker.ptp=self
49+
globalHelperXPCClient.ptp=self
5050
guardlet proto= protocolConfigurationas?NETunnelProviderProtocol,
5151
let baseAccessURL= proto.serverAddress
5252
else{
@@ -64,7 +64,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider, @unchecked Sendable {
6464
logger.error("startTunnel called with nil tunnelFileDescriptor")
6565
throwmakeNSError(suffix:"PTP", desc:"Missing Tunnel File Descriptor")
6666
}
67-
tryawaitglobalHelperXPCSpeaker.startDaemon(
67+
tryawaitglobalHelperXPCClient.startDaemon(
6868
accessURL:.init(string: baseAccessURL)!,
6969
token: token,
7070
tun:FileHandle(fileDescriptor: tunFd),
@@ -76,9 +76,9 @@ class PacketTunnelProvider: NEPacketTunnelProvider, @unchecked Sendable {
7676
with _:NEProviderStopReason
7777
)async{
7878
logger.debug("stopping tunnel")
79-
try?awaitglobalHelperXPCSpeaker.stopDaemon()
79+
try?awaitglobalHelperXPCClient.stopDaemon()
8080
logger.info("tunnel stopped")
81-
globalHelperXPCSpeaker.ptp=nil
81+
globalHelperXPCClient.ptp=nil
8282
}
8383

8484
overridefunc handleAppMessage(_ messageData:Data, completionHandler:((Data?)->Void)?){

‎Coder-Desktop/VPN/main.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ autoreleasepool {
99
NEProvider.startSystemExtensionMode()
1010
}
1111

12-
letglobalHelperXPCSpeaker=HelperXPCSpeaker()
12+
letglobalHelperXPCClient=HelperXPCClient()
1313

1414
dispatchMain()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp