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);