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/11/24 02:04:39 UTC

svn commit: r1038411 - in /trafficserver/traffic/trunk: libinktomi++/ink_memory.cc proxy/hdrs/HdrHeap.cc proxy/hdrs/HdrHeap.h proxy/http2/HttpTransactHeaders.cc proxy/http2/HttpTransactHeaders.h

Author: zwoop
Date: Wed Nov 24 01:04:38 2010
New Revision: 1038411

URL: http://svn.apache.org/viewvc?rev=1038411&view=rev
Log:
TS-550 More memory cleanup

Modified:
    trafficserver/traffic/trunk/libinktomi++/ink_memory.cc
    trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.cc
    trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.h
    trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc
    trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h

Modified: trafficserver/traffic/trunk/libinktomi++/ink_memory.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_memory.cc?rev=1038411&r1=1038410&r2=1038411&view=diff
==============================================================================
--- trafficserver/traffic/trunk/libinktomi++/ink_memory.cc (original)
+++ trafficserver/traffic/trunk/libinktomi++/ink_memory.cc Wed Nov 24 01:04:38 2010
@@ -59,7 +59,7 @@ ink_malloc(size_t size)
    */
 
   // Useful for tracing bad mallocs
-  //ink_stack_trace_dump();
+  // ink_stack_trace_dump();
   if (likely(size > 0)) {
     if (unlikely((ptr = malloc(size)) == NULL)) {
       xdump();

Modified: trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.cc?rev=1038411&r1=1038410&r2=1038411&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.cc (original)
+++ trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.cc Wed Nov 24 01:04:38 2010
@@ -159,7 +159,7 @@ new_HdrStrHeap(int requested_size)
     alloc_size = HDR_STR_HEAP_DEFAULT_SIZE;
     sh = (HdrStrHeap *) strHeapAllocator.alloc_void();
   } else {
-    alloc_size = ROUND(alloc_size, 2048);
+    alloc_size = ROUND(alloc_size, HDR_STR_HEAP_DEFAULT_SIZE*2);
     sh = (HdrStrHeap *) xmalloc(alloc_size);
   }
 

Modified: trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.h?rev=1038411&r1=1038410&r2=1038411&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.h (original)
+++ trafficserver/traffic/trunk/proxy/hdrs/HdrHeap.h Wed Nov 24 01:04:38 2010
@@ -55,8 +55,9 @@
 //  to fix the unrolled operations
 #define HDR_BUF_RONLY_HEAPS   3
 
-#define HDR_HEAP_DEFAULT_SIZE   1024
-#define HDR_STR_HEAP_DEFAULT_SIZE   1024
+// Changed these so they for sure fit one normal TCP packet full of headers.
+#define HDR_HEAP_DEFAULT_SIZE   2048
+#define HDR_STR_HEAP_DEFAULT_SIZE   2048
 
 enum
 {

Modified: trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc?rev=1038411&r1=1038410&r2=1038411&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc Wed Nov 24 01:04:38 2010
@@ -494,64 +494,6 @@ HttpTransactHeaders::downgrade_request(b
 
   return true;
 }
-
-
-bool
-HttpTransactHeaders::generate_basic_authorization_from_request(Arena *arena, HTTPHdr *h, char **username, char **password)
-{
-  const char *auth_value;
-  const char *auth_end;
-  const char *ciphertext;
-  const char *name_password;
-  const char *name_password_end;
-  const char *password_p;
-  const char *username_p;
-  int auth_len, username_len, password_len;
-  int name_password_len;
-
-  *username = NULL;
-  *password = NULL;
-
-  auth_value = h->value_get(MIME_FIELD_AUTHORIZATION, MIME_LEN_AUTHORIZATION, &auth_len);
-  if (!auth_value)
-    return false;
-  auth_end = auth_value + auth_len;
-
-  // NOTE: strncasecmp_eow returns true on a match!
-  if (ParseRules::strncasecmp_eow(auth_value, "Basic ", min(6, auth_len)) == 0)
-    return (false);
-
-  // skip whitespace up to the start of the ciphertext
-  for (ciphertext = auth_value + 5; ((ciphertext < auth_end) && ParseRules::is_ws(*ciphertext)); ++ciphertext);
-
-  // decode the encoded name+password, placing it in xmalloc'd memory
-  if (!(name_password = ink_base64_decode((char *) ciphertext, (auth_end - ciphertext), &name_password_len)))
-    return (false);
-
-  name_password_end = name_password + name_password_len;
-
-  // search for last ':' in the name_password string
-  for (password_p = name_password_end - 1; (password_p >= name_password) && (*password_p != ':'); password_p--);
-  if (password_p < name_password) {
-    xfree((void *) name_password);
-    return (false);
-  }
-  // isolate name & password pieces
-  password_p += 1;
-  username_p = name_password;
-
-  username_len = password_p - username_p - 1;
-  password_len = name_password_end - password_p;
-
-  *username = arena->str_store(username_p, username_len);
-  *password = arena->str_store(password_p, password_len);
-
-  xfree((void *) name_password);
-
-  return (true);
-}
-
-
 bool
 HttpTransactHeaders::get_wuts_code(HTTPHdr * hdr, WUTSCode * w)
 {
@@ -1005,31 +947,20 @@ void
 HttpTransactHeaders::insert_warning_header(HttpConfigParams *http_config_param, HTTPHdr *header, HTTPWarningCode code,
                                            const char *warn_text, int warn_text_len)
 {
-  char *p;
-  char *warning_text = NULL;
-  int bufsize, i, warning_text_len;
+  int bufsize, len;
 
   // + 23 for 20 possible digits of warning code (long long max
   //  digits) & 2 spaces & the string terminator
   bufsize = http_config_param->proxy_response_via_string_len + 23;
   if (warn_text != NULL)
     bufsize += warn_text_len;
+  else
+    warn_text_len = 0; // Make sure it's really zero
 
-  warning_text = (char *) xmalloc(bufsize);
-  snprintf(warning_text, bufsize, "%3d %s ", code, http_config_param->proxy_response_via_string);
-
-  p = warning_text + strlen(warning_text);
-
-  if (warn_text) {
-    for (i = 0; i < warn_text_len; i++)
-      *p++ = warn_text[i];
-  }
-
-  warning_text_len = p - warning_text;
-
-  header->value_set(MIME_FIELD_WARNING, MIME_LEN_WARNING, warning_text, warning_text_len);
+  char warning_text[bufsize];
 
-  xfree(warning_text);
+  len = snprintf(warning_text, bufsize, "%3d %s %.*s", code, http_config_param->proxy_response_via_string, warn_text_len, warn_text);
+  header->value_set(MIME_FIELD_WARNING, MIME_LEN_WARNING, warning_text, len);
 }
 
 

Modified: trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h?rev=1038411&r1=1038410&r2=1038411&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h Wed Nov 24 01:04:38 2010
@@ -68,7 +68,6 @@ public:
   static bool does_server_allow_response_to_be_stored(HTTPHdr * resp);
   static bool downgrade_request(bool * origin_server_keep_alive, HTTPHdr * outgoing_request);
 
-  static bool generate_basic_authorization_from_request(Arena *arena, HTTPHdr *h, char **username, char **password);
   static bool get_wuts_code(HTTPHdr * hdr, WUTSCode * w);
   static void set_wuts_codes(HTTPHdr * hdr, WUTSCode * code);
   static void set_wuts_codes(HTTPHdr * hdr, SquidHitMissCode hit_miss_code,