Respond to CR.

pull/1/head
Matthew Chen 7 years ago
parent 918abb02a1
commit 735b4e07b1

@ -380,7 +380,10 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
let handle = self.handle
let (promise, fulfill, reject) = Promise<HardenedRTCSessionDescription>.pending()
let completion: ((RTCSessionDescription?, Error?) -> Void) = { [weak self] (sdp, error) in
guard let strongSelf = handle.get() else { return }
guard let strongSelf = handle.get() else {
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}
strongSelf.assertOnSignalingQueue()
guard strongSelf.peerConnection != nil else {
Logger.debug("\(strongSelf.logTag) \(#function) Ignoring obsolete event in terminated client")
@ -403,7 +406,10 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
}
PeerConnectionClient.signalingQueue.async { [weak self] in
guard let strongSelf = handle.get() else { return }
guard let strongSelf = handle.get() else {
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}
strongSelf.assertOnSignalingQueue()
guard let peerConnection = strongSelf.peerConnection else {
Logger.debug("\(strongSelf.logTag) \(#function) Ignoring obsolete event in terminated client")
@ -423,18 +429,30 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
public func setLocalSessionDescriptionInternal(_ sessionDescription: HardenedRTCSessionDescription) -> Promise<Void> {
let handle = self.handle
return PromiseKit.wrap { [weak self] resolve in
guard let strongSelf = handle.get() else { return }
let (promise, fulfill, reject) = Promise<Void>.pending()
PeerConnectionClient.signalingQueue.async { [weak self] in
guard let strongSelf = handle.get() else {
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}
strongSelf.assertOnSignalingQueue()
guard let peerConnection = peerConnection else {
guard let peerConnection = strongSelf.peerConnection else {
Logger.debug("\(strongSelf.logTag) \(#function) Ignoring obsolete event in terminated client")
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}
Logger.verbose("\(strongSelf.logTag) setting local session description: \(sessionDescription)")
peerConnection.setLocalDescription(sessionDescription.rtcSessionDescription, completionHandler: resolve)
peerConnection.setLocalDescription(sessionDescription.rtcSessionDescription, completionHandler: { (error) in
if let error = error {
reject(error)
} else {
fulfill()
}
})
}
return promise
}
public func setLocalSessionDescription(_ sessionDescription: HardenedRTCSessionDescription) -> Promise<Void> {
@ -442,7 +460,10 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
let handle = self.handle
let (promise, fulfill, reject) = Promise<Void>.pending()
PeerConnectionClient.signalingQueue.async { [weak self] in
guard let strongSelf = handle.get() else { return }
guard let strongSelf = handle.get() else {
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}
strongSelf.assertOnSignalingQueue()
guard let peerConnection = strongSelf.peerConnection else {
Logger.debug("\(strongSelf.logTag) \(#function) Ignoring obsolete event in terminated client")
@ -470,9 +491,7 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
return setRemoteSessionDescription(remoteDescription)
.then(on: PeerConnectionClient.signalingQueue) { [weak self] in
guard let strongSelf = handle.get() else {
return Promise { _, reject in
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
}
return Promise(error: NSError(domain: "Obsolete client", code: 0, userInfo: nil))
}
return strongSelf.negotiateAnswerSessionDescription(constraints: constraints)
}
@ -483,7 +502,10 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
let handle = self.handle
let (promise, fulfill, reject) = Promise<Void>.pending()
PeerConnectionClient.signalingQueue.async { [weak self] in
guard let strongSelf = handle.get() else { return }
guard let strongSelf = handle.get() else {
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}
strongSelf.assertOnSignalingQueue()
guard let peerConnection = strongSelf.peerConnection else {
Logger.debug("\(strongSelf.logTag) \(#function) Ignoring obsolete event in terminated client")
@ -508,7 +530,10 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
let handle = self.handle
let (promise, fulfill, reject) = Promise<HardenedRTCSessionDescription>.pending()
let completion: ((RTCSessionDescription?, Error?) -> Void) = { [weak self] (sdp, error) in
guard let strongSelf = handle.get() else { return }
guard let strongSelf = handle.get() else {
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}
strongSelf.assertOnSignalingQueue()
guard strongSelf.peerConnection != nil else {
Logger.debug("\(strongSelf.logTag) \(#function) Ignoring obsolete event in terminated client")
@ -538,11 +563,15 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD
}
PeerConnectionClient.signalingQueue.async { [weak self] in
guard let strongSelf = handle.get() else { return }
guard let strongSelf = handle.get() else {
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}
strongSelf.assertOnSignalingQueue()
guard let peerConnection = strongSelf.peerConnection else {
Logger.debug("\(strongSelf.logTag) \(#function) Ignoring obsolete event in terminated client")
reject(NSError(domain: "Obsolete client", code: 0, userInfo: nil))
return
}

Loading…
Cancel
Save