diff --git a/libwvdrmengine/cdm/core/src/cdm_session.cpp b/libwvdrmengine/cdm/core/src/cdm_session.cpp index 35f692fa..6924d0c7 100644 --- a/libwvdrmengine/cdm/core/src/cdm_session.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_session.cpp @@ -568,13 +568,12 @@ void CdmSession::OnTimerEvent(bool update_usage) { if (update_usage && has_decrypted_recently_) { policy_engine_->DecryptionEvent(); has_decrypted_recently_ = false; + if (is_offline_ && !is_release_) { + StoreLicense(DeviceFiles::kLicenseStateActive); + } } policy_engine_->OnTimerEvent(&event_occurred, &event); - if (is_offline_ && !is_release_) { - StoreLicense(DeviceFiles::kLicenseStateActive); - } - if (event_occurred) { for (CdmEventListenerIter iter = listeners_.begin(); iter != listeners_.end(); ++iter) { diff --git a/libwvdrmengine/cdm/src/file_store.cpp b/libwvdrmengine/cdm/src/file_store.cpp index 83f28f48..8b47dd5e 100644 --- a/libwvdrmengine/cdm/src/file_store.cpp +++ b/libwvdrmengine/cdm/src/file_store.cpp @@ -71,7 +71,9 @@ bool File::Open(const std::string& name, int flags) { } void File::Close() { - if (impl_->file_) { + if (impl_->file_){ + fflush(impl_->file_); + fsync(fileno(impl_->file_)); fclose(impl_->file_); impl_->file_ = NULL; }