You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2010/09/29 01:33:42 UTC
svn commit: r1002417 - in /trafficserver/traffic/trunk/proxy: hdrs/MIME.h
http2/HttpTransact.cc http2/HttpTransactHeaders.cc
Author: zwoop
Date: Tue Sep 28 23:33:42 2010
New Revision: 1002417
URL: http://svn.apache.org/viewvc?rev=1002417&view=rev
Log:
undo some more stuff, and try to get it right with AGE.
Modified:
trafficserver/traffic/trunk/proxy/hdrs/MIME.h
trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc
trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc
Modified: trafficserver/traffic/trunk/proxy/hdrs/MIME.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/hdrs/MIME.h?rev=1002417&r1=1002416&r2=1002417&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/hdrs/MIME.h (original)
+++ trafficserver/traffic/trunk/proxy/hdrs/MIME.h Tue Sep 28 23:33:42 2010
@@ -1496,7 +1496,10 @@ MIMEHdr::unset_cooked_cc_need_revalidate
inline void
MIMEHdr::set_age(uint32 value)
{
- value_set_uint(MIME_FIELD_AGE, MIME_LEN_AGE, value);
+ if (value > INT_MAX)
+ value_set_uint(MIME_FIELD_AGE, MIME_LEN_AGE, (uint32)INT_MAX + 1);
+ else
+ value_set_uint(MIME_FIELD_AGE, MIME_LEN_AGE, value);
}
/*-------------------------------------------------------------------------
Modified: trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc?rev=1002417&r1=1002416&r2=1002417&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc Tue Sep 28 23:33:42 2010
@@ -4855,7 +4855,7 @@ HttpTransact::merge_and_update_headers_f
// Hack fix. If the server sends back
// a 304 without a Date Header, use the current time
// as the new Date value in the header to be cached.
- uint32 date_value = s->hdr_info.server_response.get_date(); // was time_t but it's signed int on some OSes
+ int64 date_value = s->hdr_info.server_response.get_date(); // was time_t but it's signed int on some OSes
HTTPHdr *cached_hdr = s->cache_info.object_store.response_get();
if (date_value <= 0) {
@@ -4865,15 +4865,9 @@ HttpTransact::merge_and_update_headers_f
// If the cached response has an Age: we should update it
// We could use calculate_document_age but my guess is it's overkill
// Just use 'now' - 304's Date: + Age: (response's Age: if there)
- //
- date_value = max(s->current.now - date_value, (time_t)0);
-
- if (s->hdr_info.server_response.presence(MIME_PRESENCE_AGE)) {
- int64 new_age = s->hdr_info.server_response.get_age() + date_value;
-
- // Check for overflow
- date_value = new_age > INT_MAX ? (uint32)INT_MAX + 1 : new_age;
- }
+ date_value = max(s->current.now - date_value, (int64)0);
+ if (s->hdr_info.server_response.presence(MIME_PRESENCE_AGE))
+ date_value += s->hdr_info.server_response.get_age();
cached_hdr->set_age(date_value);
delete_warning_value(cached_hdr, HTTP_WARNING_CODE_REVALIDATION_FAILED);
}
@@ -5634,8 +5628,7 @@ HttpTransact::ResponseError_t HttpTransa
return NO_RESPONSE_HEADER_ERROR;
}
- HTTPStatus
- incoming_status = incoming_hdr->status_get();
+ HTTPStatus incoming_status = incoming_hdr->status_get();
if (!incoming_status) {
return MISSING_STATUS_CODE;
}
@@ -5654,8 +5647,7 @@ HttpTransact::ResponseError_t HttpTransa
#ifdef REALLY_NEED_TO_CHECK_DATE_VALIDITY
if (incoming_hdr->presence(MIME_PRESENCE_DATE)) {
- time_t
- date_value = incoming_hdr->get_date();
+ time_t date_value = incoming_hdr->get_date();
if (date_value <= 0) {
// following lines commented out because of performance
Modified: trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc?rev=1002417&r1=1002416&r2=1002417&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc Tue Sep 28 23:33:42 2010
@@ -1055,7 +1055,7 @@ HttpTransactHeaders::insert_time_and_age
ink_time_t now, HTTPHdr * base, HTTPHdr * outgoing)
{
ink_time_t date = base->get_date();
- ink_time_t current_age = calculate_document_age(request_sent_time, response_received_time, base, date, now);
+ uint32 current_age = calculate_document_age(request_sent_time, response_received_time, base, date, now);
outgoing->set_age(current_age);