narrow down what's causing compiler crashes
This commit is contained in:
parent
9acae3b154
commit
1232c34817
@ -296,72 +296,72 @@ public class WebSocket: NSObject, StreamDelegate {
|
|||||||
//higher level API we will cut over to at some point
|
//higher level API we will cut over to at some point
|
||||||
//NSStream.getStreamsToHostWithName(url.host, port: url.port.integerValue, inputStream: &inputStream, outputStream: &outputStream)
|
//NSStream.getStreamsToHostWithName(url.host, port: url.port.integerValue, inputStream: &inputStream, outputStream: &outputStream)
|
||||||
|
|
||||||
// var readStream: Unmanaged<CFReadStream>?
|
var readStream: Unmanaged<CFReadStream>?
|
||||||
// var writeStream: Unmanaged<CFWriteStream>?
|
var writeStream: Unmanaged<CFWriteStream>?
|
||||||
// let h = url.host!
|
let h = url.host!
|
||||||
// CFStreamCreatePairWithSocketToHost(nil, h as NSString, UInt32(port), &readStream, &writeStream)
|
CFStreamCreatePairWithSocketToHost(nil, h as NSString, UInt32(port), &readStream, &writeStream)
|
||||||
// inputStream = readStream!.takeRetainedValue()
|
inputStream = readStream!.takeRetainedValue()
|
||||||
// outputStream = writeStream!.takeRetainedValue()
|
outputStream = writeStream!.takeRetainedValue()
|
||||||
// guard let inStream = inputStream, let outStream = outputStream else { return }
|
guard let inStream = inputStream, let outStream = outputStream else { return }
|
||||||
// inStream.delegate = self
|
inStream.delegate = self
|
||||||
// outStream.delegate = self
|
outStream.delegate = self
|
||||||
// if supportedSSLSchemes.contains(url.scheme!) {
|
if supportedSSLSchemes.contains(url.scheme!) {
|
||||||
// inStream.setProperty(StreamSocketSecurityLevel.negotiatedSSL, forKey: Stream.PropertyKey.socketSecurityLevelKey)
|
// inStream.setProperty(StreamSocketSecurityLevel.negotiatedSSL, forKey: Stream.PropertyKey.socketSecurityLevelKey)
|
||||||
// outStream.setProperty(StreamSocketSecurityLevel.negotiatedSSL, forKey: Stream.PropertyKey.socketSecurityLevelKey)
|
// outStream.setProperty(StreamSocketSecurityLevel.negotiatedSSL, forKey: Stream.PropertyKey.socketSecurityLevelKey)
|
||||||
// } else {
|
} else {
|
||||||
// certValidated = true //not a https session, so no need to check SSL pinning
|
certValidated = true //not a https session, so no need to check SSL pinning
|
||||||
// }
|
}
|
||||||
// if voipEnabled {
|
if voipEnabled {
|
||||||
// inStream.setProperty(StreamNetworkServiceTypeValue.voIP as NSString, forKey: Stream.PropertyKey(rawValue: Stream.PropertyKey.networkServiceType.rawValue))
|
inStream.setProperty(StreamNetworkServiceTypeValue.voIP as NSString, forKey: Stream.PropertyKey(rawValue: Stream.PropertyKey.networkServiceType.rawValue))
|
||||||
// outStream.setProperty(StreamNetworkServiceTypeValue.voIP as NSString, forKey: Stream.PropertyKey(rawValue: Stream.PropertyKey.networkServiceType.rawValue))
|
outStream.setProperty(StreamNetworkServiceTypeValue.voIP as NSString, forKey: Stream.PropertyKey(rawValue: Stream.PropertyKey.networkServiceType.rawValue))
|
||||||
// }
|
}
|
||||||
// if selfSignedSSL {
|
if selfSignedSSL {
|
||||||
// let settings: [NSObject: NSObject] = [kCFStreamSSLValidatesCertificateChain: NSNumber(value: false), kCFStreamSSLPeerName: kCFNull]
|
let settings: [NSObject: NSObject] = [kCFStreamSSLValidatesCertificateChain: NSNumber(value: false), kCFStreamSSLPeerName: kCFNull]
|
||||||
// inStream.setProperty(settings, forKey: kCFStreamPropertySSLSettings as Stream.PropertyKey)
|
inStream.setProperty(settings, forKey: kCFStreamPropertySSLSettings as Stream.PropertyKey)
|
||||||
// outStream.setProperty(settings, forKey: kCFStreamPropertySSLSettings as Stream.PropertyKey)
|
outStream.setProperty(settings, forKey: kCFStreamPropertySSLSettings as Stream.PropertyKey)
|
||||||
// }
|
}
|
||||||
// if let cipherSuites = self.enabledSSLCipherSuites {
|
if let cipherSuites = self.enabledSSLCipherSuites {
|
||||||
// if let sslContextIn = CFReadStreamCopyProperty(inputStream, CFStreamPropertyKey(rawValue: kCFStreamPropertySSLContext)) as! SSLContext?,
|
if let sslContextIn = CFReadStreamCopyProperty(inputStream, CFStreamPropertyKey(rawValue: kCFStreamPropertySSLContext)) as! SSLContext?,
|
||||||
// let sslContextOut = CFWriteStreamCopyProperty(outputStream, CFStreamPropertyKey(rawValue: kCFStreamPropertySSLContext)) as! SSLContext? {
|
let sslContextOut = CFWriteStreamCopyProperty(outputStream, CFStreamPropertyKey(rawValue: kCFStreamPropertySSLContext)) as! SSLContext? {
|
||||||
// let resIn = SSLSetEnabledCiphers(sslContextIn, cipherSuites, cipherSuites.count)
|
let resIn = SSLSetEnabledCiphers(sslContextIn, cipherSuites, cipherSuites.count)
|
||||||
// let resOut = SSLSetEnabledCiphers(sslContextOut, cipherSuites, cipherSuites.count)
|
let resOut = SSLSetEnabledCiphers(sslContextOut, cipherSuites, cipherSuites.count)
|
||||||
// if resIn != errSecSuccess {
|
if resIn != errSecSuccess {
|
||||||
// let error = self.errorWithDetail(detail: "Error setting ingoing cypher suites", code: UInt16(resIn))
|
let error = self.errorWithDetail(detail: "Error setting ingoing cypher suites", code: UInt16(resIn))
|
||||||
// disconnectStream(error: error)
|
disconnectStream(error: error)
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
// if resOut != errSecSuccess {
|
if resOut != errSecSuccess {
|
||||||
// let error = self.errorWithDetail(detail: "Error setting outgoing cypher suites", code: UInt16(resOut))
|
let error = self.errorWithDetail(detail: "Error setting outgoing cypher suites", code: UInt16(resOut))
|
||||||
// disconnectStream(error: error)
|
disconnectStream(error: error)
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// CFReadStreamSetDispatchQueue(inStream, WebSocket.sharedWorkQueue)
|
CFReadStreamSetDispatchQueue(inStream, WebSocket.sharedWorkQueue)
|
||||||
// CFWriteStreamSetDispatchQueue(outStream, WebSocket.sharedWorkQueue)
|
CFWriteStreamSetDispatchQueue(outStream, WebSocket.sharedWorkQueue)
|
||||||
// inStream.open()
|
inStream.open()
|
||||||
// outStream.open()
|
outStream.open()
|
||||||
//
|
|
||||||
// self.mutex.lock()
|
self.mutex.lock()
|
||||||
// self.readyToWrite = true
|
self.readyToWrite = true
|
||||||
// self.mutex.unlock()
|
self.mutex.unlock()
|
||||||
//
|
|
||||||
// let bytes = UnsafeRawPointer(data.bytes).assumingMemoryBound(to: UInt8.self)
|
let bytes = UnsafeRawPointer(data.bytes).assumingMemoryBound(to: UInt8.self)
|
||||||
// var out = timeout * 1000000 // wait 5 seconds before giving up
|
var out = timeout * 1000000 // wait 5 seconds before giving up
|
||||||
// writeQueue.addOperation { [weak self] in
|
writeQueue.addOperation { [weak self] in
|
||||||
// while !outStream.hasSpaceAvailable {
|
while !outStream.hasSpaceAvailable {
|
||||||
// usleep(100) // wait until the socket is ready
|
usleep(100) // wait until the socket is ready
|
||||||
// out -= 100
|
out -= 100
|
||||||
// if out < 0 {
|
if out < 0 {
|
||||||
// self?.cleanupStream()
|
self?.cleanupStream()
|
||||||
// self?.doDisconnect(error: self?.errorWithDetail(detail: "write wait timed out", code: 2))
|
self?.doDisconnect(error: self?.errorWithDetail(detail: "write wait timed out", code: 2))
|
||||||
// return
|
return
|
||||||
// } else if outStream.streamError != nil {
|
} else if outStream.streamError != nil {
|
||||||
// return // disconnectStream will be called.
|
return // disconnectStream will be called.
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// outStream.write(bytes, maxLength: data.length)
|
outStream.write(bytes, maxLength: data.length)
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delegate for the stream methods. Processes incoming bytes.
|
// Delegate for the stream methods. Processes incoming bytes.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user