Initialize renewal request time
The `time_of_renewal_request` field in the clock_values struct was not being initialized. With this CL, we use a value of 0 to indicate a renewal has not been requested yet. We also modify the check in `ODK_ParseRenewal` to use a value of 0 for the `time_of_renewal_request` to skip the check for a stale renewal. This is done because now that a "renew on license load" license starts the playback clock immediately, we need a different way to decide if a renewal from a previous session can be loaded. PiperOrigin-RevId: 546129556 Merged from https://widevine-internal-review.googlesource.com/177998 Change-Id: I17282cf918d0cdb4d9b5108a41914ecd7d87cc8f
This commit is contained in:
committed by
Robert Shih
parent
d0752047fc
commit
84e27c660d
@@ -471,13 +471,14 @@ OEMCryptoResult ODK_ParseRenewal(const uint8_t* message, size_t message_length,
|
||||
*/
|
||||
/* If a renewal request is lost in transit, we should throw it out and create
|
||||
* a new one. We use the timestamp to make sure we have the latest request.
|
||||
* We only do this if playback has already started. This allows us to reload
|
||||
* an offline license and also reload a renewal before starting playback.
|
||||
* We only do this if a renewal has been requested for this session. This
|
||||
* allows us to reload an offline license and also reload a renewal from a
|
||||
* previous session before starting playback.
|
||||
* TODO: b/290249855 - This is reversed. It should be "!=" instead of "<".
|
||||
* We will not fix this in the current release, because it is already in
|
||||
* production code. Instead, this will be fixed in v19.
|
||||
*/
|
||||
if (clock_values->timer_status != ODK_CLOCK_TIMER_STATUS_LICENSE_LOADED &&
|
||||
if (clock_values->time_of_renewal_request > 0 &&
|
||||
clock_values->time_of_renewal_request <
|
||||
renewal_response.request.playback_time) {
|
||||
return ODK_STALE_RENEWAL;
|
||||
|
||||
Reference in New Issue
Block a user