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 2011/06/09 19:46:51 UTC

svn commit: r1134013 - in /trafficserver/traffic/branches/3.0.x: ./ CHANGES STATUS iocore/net/Socks.cc proxy/hdrs/MIME.cc proxy/http/HttpTransact.cc

Author: zwoop
Date: Thu Jun  9 17:46:50 2011
New Revision: 1134013

URL: http://svn.apache.org/viewvc?rev=1134013&view=rev
Log:
Merge approved backport bugs from trunk

Modified:
    trafficserver/traffic/branches/3.0.x/   (props changed)
    trafficserver/traffic/branches/3.0.x/CHANGES
    trafficserver/traffic/branches/3.0.x/STATUS
    trafficserver/traffic/branches/3.0.x/iocore/net/Socks.cc
    trafficserver/traffic/branches/3.0.x/proxy/hdrs/MIME.cc
    trafficserver/traffic/branches/3.0.x/proxy/http/HttpTransact.cc

Propchange: trafficserver/traffic/branches/3.0.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun  9 17:46:50 2011
@@ -1,4 +1,4 @@
 /incubator/trafficserver/traffic/branches/dev:891823-915885
 /trafficserver/traffic/branches/ts-291:965529-991993
 /trafficserver/traffic/branches/wccp:1021790-1040544
-/trafficserver/traffic/trunk:1129268,1131473
+/trafficserver/traffic/trunk:1129268,1131080,1131473,1133066,1133071

Modified: trafficserver/traffic/branches/3.0.x/CHANGES
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/3.0.x/CHANGES?rev=1134013&r1=1134012&r2=1134013&view=diff
==============================================================================
--- trafficserver/traffic/branches/3.0.x/CHANGES (original)
+++ trafficserver/traffic/branches/3.0.x/CHANGES Thu Jun  9 17:46:50 2011
@@ -1,15 +1,24 @@
                                                          -*- coding: utf-8 -*-
 
 Changes with Apache Traffic Server 3.0.0
+  *) [TS-827] TSMimeHdrFieldValueStringInsert() can use freed memory to
+  edit headers. Author: William Bardwell.
+
+  *) [TS-825] negative caching caches responses that should never be
+   cached: Author: William Bardwell.
+
   *) [TS-820] Restore log buffer size to previous defaults.
 
-  *) [TS-798] We add broken remap rules when we encounter parse errors of
-   remap.config.
+  *) [TS-818] Assertion/abort when starting TS with SOCKS proxy enabled.
+   Author: Yakov Markovitch
 
   *) [TS-810] Typo in switch statement + slight improvement.
 
   *) [TS-809] ts.h broken when compiling C plugins.
 
+  *) [TS-798] We add broken remap rules when we encounter parse errors of
+   remap.config.
+
 
 Changes with Apache Traffic Server 2.1.9
   *) [TS-805] HostDB wastes a lot of storage for round-robin entries,

Modified: trafficserver/traffic/branches/3.0.x/STATUS
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/3.0.x/STATUS?rev=1134013&r1=1134012&r2=1134013&view=diff
==============================================================================
--- trafficserver/traffic/branches/3.0.x/STATUS (original)
+++ trafficserver/traffic/branches/3.0.x/STATUS Thu Jun  9 17:46:50 2011
@@ -39,22 +39,6 @@ A list of all bugs open for the next v3.
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
 
-  * SOCKS: Assertion/abort when starting TS with SOCKS proxy enabled
-    Trunk patch: http://svn.apache.org/viewvc?rev=1131080&view=rev
-    Jira: https://issues.apache.org/jira/browse/TS-818
-    +1: zwoop, ming_zym, ericb, jplevyak
-
-  * HTTP: We can end up caching responses which should not be cached,
-          when negative caching is enabled.
-    Trunk patch: http://svn.apache.org/viewvc?rev=1133066&view=rev
-    Jira: https://issues.apache.org/jira/browse/TS-825
-    +1: zwoop, ming_zym, ericb, jplevyak
-
-  * API: It's possible for a plugin to end up using free'd memory
-    Trunk patch: http://svn.apache.org/viewvc?rev=1133071&view=rev
-    Jira: https://issues.apache.org/jira/browse/TS-827
-    +1: zwoop, ericb, jplevyak
-
 
 RELEASE PROCESS
 

Modified: trafficserver/traffic/branches/3.0.x/iocore/net/Socks.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/3.0.x/iocore/net/Socks.cc?rev=1134013&r1=1134012&r2=1134013&view=diff
==============================================================================
--- trafficserver/traffic/branches/3.0.x/iocore/net/Socks.cc (original)
+++ trafficserver/traffic/branches/3.0.x/iocore/net/Socks.cc Thu Jun  9 17:46:50 2011
@@ -431,11 +431,6 @@ SocksEntry::mainEvent(int event, void *d
   return ret;
 }
 
-#define SOCKS_REG_STAT(stat)						\
-  RecRegisterRawStat(net_rsb, RECT_PROCESS,				\
-		     "proxy.process.socks." #stat, RECD_INT, RECP_NULL,	\
-		     socks_##stat##_stat, RecRawStatSyncSum)
-
 void
 loadSocksConfiguration(socks_conf_struct * socks_conf_stuff)
 {
@@ -514,9 +509,6 @@ loadSocksConfiguration(socks_conf_struct
     goto error;
   }
   Debug("Socks", "Socks Turned on");
-  SOCKS_REG_STAT(connections_successful);
-  SOCKS_REG_STAT(connections_unsuccessful);
-  SOCKS_REG_STAT(connections_currently_open);
   ::close(socks_config_fd);
 
   return;

Modified: trafficserver/traffic/branches/3.0.x/proxy/hdrs/MIME.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/3.0.x/proxy/hdrs/MIME.cc?rev=1134013&r1=1134012&r2=1134013&view=diff
==============================================================================
--- trafficserver/traffic/branches/3.0.x/proxy/hdrs/MIME.cc (original)
+++ trafficserver/traffic/branches/3.0.x/proxy/hdrs/MIME.cc Thu Jun  9 17:46:50 2011
@@ -1938,6 +1938,19 @@ mime_field_value_str_from_strlist(HdrHea
   return new_value;
 }
 
+// Make sure that there is enough space for a header value string with out calling coalesce_str_heaps()
+// when we have pointers into the heap. TODO: This might need to attention for a future release, but
+// ok for now. /leif
+static void verify_heap_prealloc(HdrHeap *heap, size_t prealloc_len)
+{
+    // If there just isn't enough free space in the read-write heap.
+    if (heap->m_read_write_heap && heap->m_read_write_heap->m_free_size <= prealloc_len) {
+        // Allocate enough space, 'free' it, and then coalesce it so it will actually be free not just lost.
+        heap->free_string(heap->allocate_str(prealloc_len), prealloc_len);
+        heap->coalesce_str_heaps();
+    }
+}
+
 /*-------------------------------------------------------------------------
   -------------------------------------------------------------------------*/
 
@@ -1949,6 +1962,8 @@ mime_field_value_set_comma_val(HdrHeap *
   Str *cell;
   StrList list(false);
 
+  verify_heap_prealloc(heap, field->m_len_value + 2 + new_piece_len);
+
   // (1) rip the value into tokens, keeping surrounding quotes, but not whitespace
   HttpCompat::parse_tok_list(&list, 0, field->m_ptr_value, field->m_len_value, ',');
 
@@ -1979,6 +1994,8 @@ mime_field_value_delete_comma_val(HdrHea
   Str *cell;
   StrList list(false);
 
+  verify_heap_prealloc(heap, field->m_len_value);
+
   // (1) rip the value into tokens, keeping surrounding quotes, but not whitespace
   HttpCompat::parse_tok_list(&list, 0, field->m_ptr_value, field->m_len_value, ',');
 
@@ -2025,6 +2042,7 @@ mime_field_value_insert_comma_val(HdrHea
   Str *cell, *prev;
   StrList list(false);
 
+  verify_heap_prealloc(heap, field->m_len_value + 2 + new_piece_len);
   // (1) rip the value into tokens, keeping surrounding quotes, but not whitespace
   HttpCompat::parse_tok_list(&list, 0, field->m_ptr_value, field->m_len_value, ',');
 
@@ -2065,6 +2083,8 @@ mime_field_value_extend_comma_val(HdrHea
   size_t extended_len;
   char *dest, *temp_ptr, temp_buf[128];
 
+  verify_heap_prealloc(heap, field->m_len_value + 2 + new_piece_len);
+
   // (1) rip the value into tokens, keeping surrounding quotes, but not whitespace
   HttpCompat::parse_tok_list(&list, 0, field->m_ptr_value, field->m_len_value, ',');
 

Modified: trafficserver/traffic/branches/3.0.x/proxy/http/HttpTransact.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/3.0.x/proxy/http/HttpTransact.cc?rev=1134013&r1=1134012&r2=1134013&view=diff
==============================================================================
--- trafficserver/traffic/branches/3.0.x/proxy/http/HttpTransact.cc (original)
+++ trafficserver/traffic/branches/3.0.x/proxy/http/HttpTransact.cc Thu Jun  9 17:46:50 2011
@@ -6324,6 +6324,10 @@ HttpTransact::is_response_cacheable(Stat
       return false;
     }
   }
+  if (response_code == HTTP_STATUS_SEE_OTHER ||
+      response_code == HTTP_STATUS_UNAUTHORIZED ||
+      response_code == HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED)
+    return false;
   // let is_negative_caching_approriate decide what to do
   return true;
 /* Since we weren't caching response obtained with