fix
This commit is contained in:
parent
bd10ea9b99
commit
5031835484
@ -18,6 +18,7 @@ import Punchnet
|
|||||||
|
|
||||||
class PacketTunnelProvider: NEPacketTunnelProvider {
|
class PacketTunnelProvider: NEPacketTunnelProvider {
|
||||||
var context: SDLContext?
|
var context: SDLContext?
|
||||||
|
private var rootTask: Task<Void, Error>?
|
||||||
|
|
||||||
override func startTunnel(options: [String : NSObject]?, completionHandler: @escaping (Error?) -> Void) {
|
override func startTunnel(options: [String : NSObject]?, completionHandler: @escaping (Error?) -> Void) {
|
||||||
// host: "192.168.0.101", port: 1265
|
// host: "192.168.0.101", port: 1265
|
||||||
@ -66,24 +67,27 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||||||
let rsaCipher = try! CCRSACipher(keySize: 1024)
|
let rsaCipher = try! CCRSACipher(keySize: 1024)
|
||||||
let aesChiper = CCAESChiper()
|
let aesChiper = CCAESChiper()
|
||||||
|
|
||||||
Task {
|
self.rootTask = Task {
|
||||||
do {
|
do {
|
||||||
self.context = SDLContext(provider: self, config: config, rsaCipher: rsaCipher, aesCipher: aesChiper, logger: SDLLogger(level: .debug))
|
self.context = SDLContext(provider: self, config: config, rsaCipher: rsaCipher, aesCipher: aesChiper, logger: SDLLogger(level: .debug))
|
||||||
try await self.context?.start()
|
try await self.context?.start()
|
||||||
completionHandler(nil)
|
|
||||||
} catch let err {
|
} catch let err {
|
||||||
completionHandler(err)
|
NSLog("[PacketTunnelProvider] exit with error: \(err)")
|
||||||
|
exit(-1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
completionHandler(nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
override func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
|
override func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
|
||||||
// Add code here to start the process of stopping the tunnel.
|
// Add code here to start the process of stopping the tunnel.
|
||||||
|
self.rootTask?.cancel()
|
||||||
Task {
|
Task {
|
||||||
await self.context?.stop()
|
await self.context?.stop()
|
||||||
self.context = nil
|
|
||||||
}
|
}
|
||||||
|
self.context = nil
|
||||||
|
self.rootTask = nil
|
||||||
|
|
||||||
completionHandler()
|
completionHandler()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -562,7 +562,7 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = com.jihe.punchnet;
|
PRODUCT_BUNDLE_IDENTIFIER = com.jihe.punchnet;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = jihe_punchnet_macos;
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = MacPunchnet;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
};
|
};
|
||||||
@ -594,7 +594,7 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = com.jihe.punchnet;
|
PRODUCT_BUNDLE_IDENTIFIER = com.jihe.punchnet;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = jihe_punchnet_macos;
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = MacPunchnet;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
};
|
};
|
||||||
@ -674,6 +674,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = Tun/Tun.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Tun/Tun.entitlements;
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
|
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
@ -694,7 +695,7 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = com.jihe.punchnet.tun;
|
PRODUCT_BUNDLE_IDENTIFIER = com.jihe.punchnet.tun;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = jihe_punchnet_tun_macos;
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = MacPunchnetTun;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@ -705,6 +706,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = Tun/Tun.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Tun/Tun.entitlements;
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
|
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
@ -725,7 +727,7 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = com.jihe.punchnet.tun;
|
PRODUCT_BUNDLE_IDENTIFIER = com.jihe.punchnet.tun;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = jihe_punchnet_tun_macos;
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = MacPunchnetTun;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
@ -788,7 +790,7 @@
|
|||||||
repositoryURL = "https://gitea.s5s8.com/anlicheng/swiftlib_sdlan.git";
|
repositoryURL = "https://gitea.s5s8.com/anlicheng/swiftlib_sdlan.git";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = exactVersion;
|
kind = exactVersion;
|
||||||
version = 2.2.0;
|
version = 2.2.2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
/* End XCRemoteSwiftPackageReference section */
|
/* End XCRemoteSwiftPackageReference section */
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"originHash" : "2c771b2bd4bccdc5777d69cc734485452a1e854c0123ba591d596b3f580f4cb8",
|
"originHash" : "f895c313fc3b8bbb6ccda8f228cf023bf2259c0a044d992827796f28685daa8c",
|
||||||
"pins" : [
|
"pins" : [
|
||||||
{
|
{
|
||||||
"identity" : "swift-atomics",
|
"identity" : "swift-atomics",
|
||||||
@ -51,8 +51,8 @@
|
|||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://gitea.s5s8.com/anlicheng/swiftlib_sdlan.git",
|
"location" : "https://gitea.s5s8.com/anlicheng/swiftlib_sdlan.git",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "2c05d71dbe3684e51e9de55910619156ebe360c6",
|
"revision" : "90939a68c10e52f327d2ad1e55c1a62f56f7928b",
|
||||||
"version" : "2.2.0"
|
"version" : "2.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@ -7,12 +7,25 @@
|
|||||||
<key>Tun.xcscheme_^#shared#^_</key>
|
<key>Tun.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>1</integer>
|
<integer>0</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>punchnet.xcscheme_^#shared#^_</key>
|
<key>punchnet.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>0</integer>
|
<integer>1</integer>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>SuppressBuildableAutocreation</key>
|
||||||
|
<dict>
|
||||||
|
<key>C8A77EF22DD1E6D000195617</key>
|
||||||
|
<dict>
|
||||||
|
<key>primary</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>C8A77F262DD1E77B00195617</key>
|
||||||
|
<dict>
|
||||||
|
<key>primary</key>
|
||||||
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
|||||||
@ -31,7 +31,6 @@ final class UDPNoticeCenterServer: ChannelInboundHandler {
|
|||||||
.channelInitializer { channel in
|
.channelInitializer { channel in
|
||||||
channel.pipeline.addHandler(self)
|
channel.pipeline.addHandler(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
self.channel = try! bootstrap.bind(host: "127.0.0.1", port: 50195).wait()
|
self.channel = try! bootstrap.bind(host: "127.0.0.1", port: 50195).wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user