// From section 13.2.3 of RFC2616, we compute the current age of a cached // response as follows: // // currentAge = max(max(0, responseTime - dateValue), ageValue) // + now - requestTime // // where responseTime == now // // This is typically a very small number. // nsresult nsHttpResponseHead::ComputeCurrentAge(uint32_t now, uint32_t requestTime, uint32_t *result) const { uint32_t dateValue; uint32_t ageValue; *result = 0; if (NS_FAILED(GetDateValue(&dateValue))) { LOG(("nsHttpResponseHead::ComputeCurrentAge [this=%p] " "Date response header not set!\n", this)); // Assume we have a fast connection and that our clock // is in sync with the server. dateValue = now; } // Compute apparent age if (now > dateValue) *result = now - dateValue; // Compute corrected received age if (NS_SUCCEEDED(GetAgeValue(&ageValue))) *result = std::max(*result, ageValue); MOZ_ASSERT(now >= requestTime, "bogus request time"); // Compute current age *result += (now - requestTime); return NS_OK; }
// From section 13.2.3 of RFC2616, we compute the current age of a cached // response as follows: // // currentAge = max(max(0, responseTime - dateValue), ageValue) // + now - requestTime // // where responseTime == now // // This is typically a very small number. // nsresult nsHttpResponseHead::ComputeCurrentAge(PRUint32 now, PRUint32 requestTime, PRUint32 *result) { PRUint32 dateValue; PRUint32 ageValue; *result = 0; if (NS_FAILED(GetDateValue(&dateValue))) { LOG(("nsHttpResponseHead::ComputeCurrentAge [this=%x] " "Date response header not set!\n", this)); // Assume we have a fast connection and that our clock // is in sync with the server. dateValue = now; } // Compute apparent age if (now > dateValue) *result = now - dateValue; // Compute corrected received age if (NS_SUCCEEDED(GetAgeValue(&ageValue))) *result = PR_MAX(*result, ageValue); NS_ASSERTION(now >= requestTime, "bogus request time"); // Compute current age *result += (now - requestTime); return NS_OK; }