tls support

This commit is contained in:
eskimo
2024-10-03 13:55:00 -04:00
parent 7e77833452
commit 3280dfaa58
4 changed files with 38 additions and 4 deletions

View File

@@ -28,7 +28,20 @@ public class Socket: NSObject {
}
public func connect() {
let connection = NWConnection(host: NWEndpoint.Host(self.host), port: NWEndpoint.Port(String(self.port))!, using: .tcp)
let parameters = NWParameters.tcp
if self.useTLS {
let tls = NWProtocolTLS.Options()
if (self.acceptInvalidCertificates) {
sec_protocol_options_set_verify_block(tls.securityProtocolOptions, { (sec_protocol_metadata, sec_trust, sec_protocol_verify_complete) in
sec_protocol_verify_complete(true)
}, DispatchQueue.global())
}
parameters.defaultProtocolStack.applicationProtocols.insert(tls, at: 0)
}
let connection = NWConnection(host: NWEndpoint.Host(self.host), port: NWEndpoint.Port(String(self.port))!, using: parameters)
connection.stateUpdateHandler = self.stateDidChange(to:)
self.receive(on: connection)
connection.start(queue: .main)
@@ -84,7 +97,10 @@ public class Socket: NSObject {
self.delegate?.didReceiveMessage(socket: self.id, message: message)
}
}
self.receive(on: connection)
if (connection.state == .ready) {
self.receive(on: connection)
}
}
}