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,