Переглянути джерело

Remote close on ICE transport disconnection

Paul-Louis Ageneau 2 роки тому
батько
коміт
28f7790180
1 змінених файлів з 5 додано та 3 видалено
  1. 5 3
      src/impl/peerconnection.cpp

+ 5 - 3
src/impl/peerconnection.cpp

@@ -162,14 +162,16 @@ shared_ptr<IceTransport> PeerConnection::initIceTransport() {
 			    case IceTransport::State::Connecting:
 			    case IceTransport::State::Connecting:
 				    changeState(State::Connecting);
 				    changeState(State::Connecting);
 				    break;
 				    break;
-			    case IceTransport::State::Failed:
-				    changeState(State::Failed);
-				    break;
 			    case IceTransport::State::Connected:
 			    case IceTransport::State::Connected:
 				    initDtlsTransport();
 				    initDtlsTransport();
 				    break;
 				    break;
+			    case IceTransport::State::Failed:
+				    changeState(State::Failed);
+				    mProcessor.enqueue(&PeerConnection::remoteClose, shared_from_this());
+				    break;
 			    case IceTransport::State::Disconnected:
 			    case IceTransport::State::Disconnected:
 				    changeState(State::Disconnected);
 				    changeState(State::Disconnected);
+				    mProcessor.enqueue(&PeerConnection::remoteClose, shared_from_this());
 				    break;
 				    break;
 			    default:
 			    default:
 				    // Ignore
 				    // Ignore