void CTlsSocket::OnRead() { m_pOwner->LogMessage(MessageType::Debug_Debug, _T("CTlsSocket::OnRead()")); m_canReadFromSocket = true; if (!m_session) return; const int direction = gnutls_record_get_direction(m_session); if (direction && !m_lastReadFailed) { m_pOwner->LogMessage(MessageType::Debug_Debug, _T("CTlsSocket::Postponing read")); return; } if (m_tlsState == TlsState::handshake) ContinueHandshake(); if (m_tlsState == TlsState::closing) ContinueShutdown(); else if (m_tlsState == TlsState::conn) { CheckResumeFailedReadWrite(); TriggerEvents(); } }
nsRefPtr<ShutdownPromise> MediaSourceReader::Shutdown() { mSeekPromise.RejectIfExists(NS_ERROR_FAILURE, __func__); MOZ_ASSERT(mMediaSourceShutdownPromise.IsEmpty()); nsRefPtr<ShutdownPromise> p = mMediaSourceShutdownPromise.Ensure(__func__); ContinueShutdown(); return p; }
nsRefPtr<ShutdownPromise> MediaSourceReader::Shutdown() { mSeekPromise.RejectIfExists(NS_ERROR_FAILURE, __func__); // Any previous requests we've been waiting on are now unwanted. mAudioRequest.DisconnectIfExists(); mVideoRequest.DisconnectIfExists(); // Additionally, reject any outstanding promises _we_ made that we might have // been waiting on the above to fulfill. mAudioPromise.RejectIfExists(CANCELED, __func__); mVideoPromise.RejectIfExists(CANCELED, __func__); MOZ_ASSERT(mMediaSourceShutdownPromise.IsEmpty()); nsRefPtr<ShutdownPromise> p = mMediaSourceShutdownPromise.Ensure(__func__); ContinueShutdown(); return p; }
void CTlsSocket::OnSend() { m_pOwner->LogMessage(Debug_Debug, _T("CTlsSocket::OnSend()")); m_canWriteToSocket = true; if (!m_session) return; if (!gnutls_record_get_direction(m_session)) return; if (m_tlsState == handshake) Handshake(); else if (m_tlsState == closing) ContinueShutdown(); else if (m_tlsState == conn) { CheckResumeFailedWrite(); TriggerEvents(); } }