narrow down what's causing compiler crashes

This commit is contained in:
Erik 2016-08-18 19:22:19 -04:00
parent 9acae3b154
commit 1232c34817
No known key found for this signature in database
GPG Key ID: 4930B7C5FBC1A69D

View File

@ -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.