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/04/30 05:14:22 UTC
svn commit: r939548 [3/6] - in /incubator/trafficserver/traffic/trunk: ./
doc/man/ iocore/cache/ iocore/eventsystem/ iocore/net/ libinktomi++/
librecords/ proxy/ proxy/api/include/ proxy/config/
proxy/config/body_factory/default/ proxy/hdrs/ proxy/http...
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc Fri Apr 30 03:14:19 2010
@@ -516,11 +516,7 @@ how_to_open_connection(HttpTransact::Sta
break;
}
- if (s->next_hop_scheme == URL_WKSIDX_FTP) {
- // disable user agent keep-alive for ftp
- s->client_info.keep_alive = HTTP_NO_KEEPALIVE;
- return HttpTransact::FTP_SERVER_OPEN;
- } else if (s->method == HTTP_WKSIDX_CONNECT && s->parent_result.r != PARENT_SPECIFIED) {
+ if (s->method == HTTP_WKSIDX_CONNECT && s->parent_result.r != PARENT_SPECIFIED) {
s->cdn_saved_next_action = HttpTransact::ORIGIN_SERVER_RAW_OPEN;
} else {
s->cdn_saved_next_action = HttpTransact::ORIGIN_SERVER_OPEN;
@@ -1288,11 +1284,7 @@ HttpTransact::HandleRequest(State * s)
if (handle_internal_request(s, &s->hdr_info.client_request)) {
TRANSACT_RETURN(PROXY_INTERNAL_REQUEST, NULL);
}
- // If this an ftp request, we need to setup ftp state
- if (s->scheme == URL_WKSIDX_FTP && !setup_ftp_request(s)) {
- HTTP_INCREMENT_TRANS_STAT(http_invalid_client_requests_stat);
- return;
- }
+
// this needs to be called after initializing state variables from request
// it tries to handle the problem that MSIE only adds no-cache
// headers to reload requests when there is an explicit proxy --- the
@@ -1469,7 +1461,6 @@ HttpTransact::HandleApiErrorJump(State *
// - HttpTransact::DNS_LOOKUP;
// - HttpTransact::ORIGIN_SERVER_RAW_OPEN;
-// - HttpTransact::FTP_SERVER_OPEN;
// - HttpTransact::ORIGIN_SERVER_OPEN;
//
///////////////////////////////////////////////////////////////////////////////
@@ -1538,7 +1529,6 @@ HttpTransact::PPDNSLookup(State * s)
//
// Possible Next States From Here:
// - HttpTransact::ORIGIN_SERVER_RAW_OPEN;
-// - HttpTransact::FTP_SERVER_OPEN;
// - HttpTransact::ORIGIN_SERVER_OPEN;
// - HttpTransact::PROXY_INTERNAL_CACHE_NOOP;
//
@@ -1639,7 +1629,6 @@ HttpTransact::ReDNSRoundRobin(State * s)
// - HttpTransact::CACHE_LOOKUP;
// - HttpTransact::DNS_LOOKUP;
// - HttpTransact::ORIGIN_SERVER_RAW_OPEN;
-// - HttpTransact::FTP_SERVER_OPEN;
// - HttpTransact::ORIGIN_SERVER_OPEN;
//
///////////////////////////////////////////////////////////////////////////////
@@ -1987,7 +1976,7 @@ HttpTransact::DecideCacheLookup(State *
if (s->cache_info.lookup_url == NULL) {
- if (s->pristine_host_hdr > 0 || s->http_config_param->maintain_pristine_host_hdr || s->scheme == URL_WKSIDX_FTP) {
+ if (s->pristine_host_hdr > 0 || s->http_config_param->maintain_pristine_host_hdr) {
s->cache_info.lookup_url_storage.create(NULL);
s->cache_info.lookup_url_storage.copy(s->hdr_info.client_request.url_get());
s->cache_info.lookup_url = &(s->cache_info.lookup_url_storage);
@@ -2022,15 +2011,6 @@ HttpTransact::DecideCacheLookup(State *
}
HTTP_DEBUG_ASSERT(s->cache_info.lookup_url->valid() == true);
}
- // For ftp requests remove user name and
- // password from the url when doing lookup
- int tmp;
- if (s->scheme == URL_WKSIDX_FTP) {
- if (s->cache_info.lookup_url->user_get(&tmp))
- s->cache_info.lookup_url->user_set("", 0);
- if (s->cache_info.lookup_url->password_get(&tmp))
- s->cache_info.lookup_url->password_set("", 0);
- }
TRANSACT_RETURN(CACHE_LOOKUP, NULL);
} else {
@@ -2241,8 +2221,8 @@ HttpTransact::HandlePushError(State *s,
// Details :
//
// the cache lookup succeeded. first check if the lookup resulted in
-// a hit or a miss, if the lookup was for an http request or an ftp
-// request. this function just funnels the result into the appropriate
+// a hit or a miss, if the lookup was for an http request.
+// This function just funnels the result into the appropriate
// functions which handle these different cases.
//
//
@@ -2292,13 +2272,6 @@ HttpTransact::HandleCacheOpenRead(State
TRANSACT_RETURN(DNS_LOOKUP, OSDNSLookup);
}
}
-#ifndef INK_NO_FTP
- // cache hit - http or ftp?
- else if (s->scheme == URL_WKSIDX_FTP) {
- Debug("http_trans", "CacheOpenRead -- ftp hit");
- TRANSACT_RETURN(HTTP_API_READ_CACHE_HDR, HandleCacheOpenReadFtpFreshness);
- }
-#endif
else {
// cache hit
Debug("http_trans", "CacheOpenRead -- hit");
@@ -2308,181 +2281,6 @@ HttpTransact::HandleCacheOpenRead(State
return;
}
-#ifndef INK_NO_FTP
-void
-HttpTransact::HandleCacheOpenReadFtpFreshness(State * s)
-{
- if (diags->on()) {
- DebugOn("http_trans", "[HttpTransact::HandleCacheOpenReadFtpFreshness]");
- DebugOn("http_seq", "[HttpTransact::HandleCacheOpenReadFtpFreshness] Ftp hit in cache");
- }
- HTTP_DEBUG_ASSERT(s->cache_info.object_read != 0);
-
- if (delete_all_document_alternates_and_return(s, TRUE)) {
- Debug("http_trans", "[HandleCacheOpenReadFtpFreshness] Delete and return");
- s->cache_info.action = CACHE_DO_DELETE;
- s->next_action = HttpTransact::PROXY_INTERNAL_CACHE_DELETE;
- return;
- }
- // If the request has a user name which
- // is not anonymous treat this as a MISS.
- if (s->ftp_info->username && s->ftp_info->username[0] &&
- strcmp(s->ftp_info->username, "anonymous") != 0 && strcmp(s->ftp_info->username, "ftp") != 0) {
- s->cache_lookup_result = HttpTransact::CACHE_LOOKUP_HIT_FTP_NON_ANONYMOUS;
- Debug("http_seq", "[HttpTransact::HandleCacheOpenReadFtpFreshness] Not anon user");
- } else {
- // calculate the freshness of the document
- s->request_sent_time = s->cache_info.object_read->request_sent_time_get();
- s->response_received_time = s->cache_info.object_read->response_received_time_get();
-
- HTTP_DEBUG_ASSERT(s->request_sent_time <= s->response_received_time);
-
- if (diags->on()) {
- DebugOn("http_trans", "[HandleCacheOpenReadFtpFreshness] request_sent_time : %ld", s->request_sent_time);
- DebugOn("http_trans",
- "[HandleCacheOpenReadFtpFreshness] response_received_time : %ld", s->response_received_time);
- }
- // if the plugin hasn't decided about the freshness
- if (s->cache_lookup_result == HttpTransact::CACHE_LOOKUP_NONE) {
- HTTPHdr *resp = s->cache_info.object_read->response_get();
- int current_age = HttpTransactHeaders::calculate_document_age(s->request_sent_time,
- s->response_received_time,
- resp,
- resp->get_date(),
- s->current.now);
-
- // is the document fresh enough to be served to client?
- if (current_age < s->http_config_param->cache_ftp_document_lifetime) {
- s->cache_lookup_result = HttpTransact::CACHE_LOOKUP_HIT_FRESH;
- } else {
- Debug("http_seq", "[HttpTransact::HandleCacheOpenReadFtpFreshness] Not fresh enough");
- s->cache_lookup_result = HttpTransact::CACHE_LOOKUP_HIT_STALE;
- }
- }
- }
-
- TRANSACT_RETURN(HTTP_API_CACHE_LOOKUP_COMPLETE, HandleCacheOpenReadFtp);
-}
-
-
-//////////////////////////////////////////////////////////////////////////////
-// Name : HandleCacheOpenReadFtp
-// Description:
-//
-// Details :
-//
-// 1. If the request has a user name and the user name is not "anonymous"
-// then the document is not cached (only "anonymous" documents are
-// cached.
-// 2. If the request does not have a user name or the user name is
-// "anonymous" check if the document is still fresh.
-//
-//
-// Possible Next States From Here:
-// - HttpTransact::PROXY_INTERNAL_CACHE_DELETE;
-// - HttpTransact::DNS_LOOKUP;
-// - HttpTransact::PROXY_INTERNAL_CACHE_NOOP;
-// - HttpTransact::FTP_SERVER_OPEN;
-// - HttpTransact::SERVE_FROM_CACHE;
-//
-//////////////////////////////////////////////////////////////////////////////
-void
-HttpTransact::HandleCacheOpenReadFtp(State * s)
-{
- ink_assert(s->cache_lookup_result ==
- HttpTransact::CACHE_LOOKUP_HIT_FTP_NON_ANONYMOUS ||
- s->cache_lookup_result == HttpTransact::CACHE_LOOKUP_HIT_STALE
- || s->cache_lookup_result == HttpTransact::CACHE_LOOKUP_HIT_FRESH);
-
- // cached response may not be returnable, such as if the method is PUT
- bool response_returnable = is_cache_response_returnable(s);
-
- // If the request has a user name which
- // is not anonymous treat this as a MISS.
- if (s->cache_lookup_result == CACHE_LOOKUP_HIT_FTP_NON_ANONYMOUS) {
- response_returnable = false;
- Debug("http_seq", "[HttpTransact::HandleCacheOpenReadFtp] Not anon user");
- SET_VIA_STRING(VIA_DETAIL_CACHE_LOOKUP, VIA_DETAIL_MISS_METHOD);
- }
- // If the response is returnable, determine if it is fresh
- bool response_fresh = s->cache_lookup_result == HttpTransact::CACHE_LOOKUP_HIT_FRESH ? true : false;
- if (response_returnable) {
- // set the via string to indicate expiration miss, update stat
- if (s->cache_lookup_result == HttpTransact::CACHE_LOOKUP_HIT_STALE) {
- SET_VIA_STRING(VIA_CACHE_RESULT, VIA_IN_CACHE_STALE);
- SET_VIA_STRING(VIA_DETAIL_CACHE_LOOKUP, VIA_DETAIL_MISS_EXPIRED);
- }
- }
-
- bool serve_from_cache = response_returnable && response_fresh;
-
- if (serve_from_cache) {
- // the incoming request has an anonymous user name and
- // the document is fresh enough in the cache.
-
- Debug("http_seq", "[HttpTransact::HandleCacheOpenReadFtp] Fresh in cache");
- if (s->cache_info.is_ram_cache_hit) {
- SET_VIA_STRING(VIA_CACHE_RESULT, VIA_IN_RAM_CACHE_FRESH);
- } else {
- SET_VIA_STRING(VIA_CACHE_RESULT, VIA_IN_CACHE_FRESH);
- }
- SET_VIA_STRING(VIA_DETAIL_CACHE_LOOKUP, VIA_DETAIL_HIT_SERVED);
- if (s->method == HTTP_WKSIDX_HEAD) {
- s->cache_info.action = CACHE_DO_NO_ACTION;
- s->next_action = PROXY_INTERNAL_CACHE_NOOP;
- } else {
- s->cache_info.action = CACHE_DO_SERVE;
- s->next_action = SERVE_FROM_CACHE;
- }
- if (s->next_action == SERVE_FROM_CACHE && s->state_machine->do_transform_open()) {
- set_header_for_transform(s, s->cache_info.object_read->response_get());
- } else {
- build_response(s, s->cache_info.object_read->response_get(),
- &s->hdr_info.client_response, s->client_info.http_version);
- }
- } else {
-
- // incoming request did not use an anonymouse user name
- // or the document has expired in the cache. revalidate the
- // document
- find_server_and_update_current_info(s);
- if (s->current.server->ip == 0) {
-
- HTTP_ASSERT(s->current.request_to == PARENT_PROXY ||
- s->http_config_param->no_dns_forward_to_parent != 0);
-
- // Set ourselves up to handle pending revalidate issues
- // after the PP DNS lookup
- HTTP_DEBUG_ASSERT(s->pending_work == NULL);
- s->pending_work = issue_revalidate;
-
- // We must be going a PARENT PROXY since so did
- // origin server DNS lookup right after state Start
- //
- // If we end up here in the release case just fall
- // through. The request will fail because of the
- // missing ip but we won't take down the system
- //
- if (s->current.request_to == PARENT_PROXY) {
- TRANSACT_RETURN(DNS_LOOKUP, PPDNSLookup);
- } else {
- handle_parent_died(s);
- return;
- }
- }
- build_request(s, &s->hdr_info.client_request, &s->hdr_info.server_request, s->current.server->http_version);
-
- issue_revalidate(s);
-
- // this can not be anything but a simple origin server connection.
- // in other words, we would not have looked up the cache for a
- // connect request, so the next action can not be origin_server_raw_open.
- s->next_action = how_to_open_connection(s);
- }
-
- return;
-}
-#endif //INK_NO_FTP
///////////////////////////////////////////////////////////////////////////////
// Name : issue_revalidate
@@ -3341,7 +3139,7 @@ HttpTransact::handle_cache_write_lock(St
StateMachineAction_t next;
if (s->stale_icp_lookup == false) {
next = how_to_open_connection(s);
- if (next == ORIGIN_SERVER_OPEN || next == ORIGIN_SERVER_RAW_OPEN || next == FTP_SERVER_OPEN) {
+ if (next == ORIGIN_SERVER_OPEN || next == ORIGIN_SERVER_RAW_OPEN) {
s->next_action = next;
TRANSACT_RETURN(next, NULL);
} else {
@@ -3369,7 +3167,6 @@ HttpTransact::handle_cache_write_lock(St
// - HttpTransact::DNS_LOOKUP;
// - HttpTransact::ORIGIN_SERVER_OPEN;
// - HttpTransact::PROXY_INTERNAL_CACHE_NOOP;
-// - HttpTransact::FTP_SERVER_OPEN;
// - result of how_to_open_connection()
//
///////////////////////////////////////////////////////////////////////////////
@@ -3536,287 +3333,6 @@ HttpTransact::HandleICPLookup(State * s)
}
#endif //INK_NO_ICP
-#ifndef INK_NO_FTP
-void
-HttpTransact::HandleFtpPutSuccess(State * s)
-{
- Debug("http_trans", "[HttpTransact::HandleFtpPutSuccess]");
-
- build_response(s, &s->hdr_info.client_response, s->client_info.http_version, HTTP_STATUS_OK);
-
- TRANSACT_RETURN(PROXY_INTERNAL_CACHE_NOOP, NULL);
-
- return;
-}
-
-void
-HttpTransact::HandleFtpPutFailure(State * s)
-{
- Debug("http_trans", "[HttpTransact::HandleFtpPutFailure]");
-
- build_response(s, &s->hdr_info.client_response, s->client_info.http_version, HTTP_STATUS_GATEWAY_TIMEOUT);
-
- TRANSACT_RETURN(PROXY_INTERNAL_CACHE_NOOP, NULL);
-
- return;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// Name : HandleFtpRevalidate
-// Description:
-//
-// Details :
-//
-//
-//
-// Possible Next States From Here:
-//
-///////////////////////////////////////////////////////////////////////////////
-void
-HttpTransact::HandleFtpRevalidate(State * s)
-{
- if (diags->on()) {
- DebugOn("http_trans", "[HttpTransact::HandleFtpRevalidate]");
- DebugOn("http_seq", "[HttpTransact::HandleFtpRevalidate] " "Successful revalidation");
- }
-
- s->response_received_time = ink_cluster_time();
- HTTP_DEBUG_ASSERT(s->response_received_time >= s->request_sent_time);
- s->current.now = s->response_received_time;
-
- Debug("http_trans", "[HandleFtpRevalidate] response_received_time: %ld", s->response_received_time);
-
- SET_VIA_STRING(VIA_SERVER_RESULT, VIA_SERVER_NOT_MODIFIED);
-
- if (s->cache_info.object_read == NULL || s->cache_info.write_lock_state == CACHE_WL_FAIL) {
- Debug("http_ftp_revalidate", "Ftp revalidate succeeded - cannot update cache");
- ink_assert(s->hdr_info.client_request.presence(MIME_PRESENCE_IF_MODIFIED_SINCE));
- s->cache_info.action = CACHE_DO_NO_ACTION;
- build_response(s, &(s->hdr_info.client_response), s->client_info.http_version, HTTP_STATUS_NOT_MODIFIED);
- TRANSACT_RETURN(PROXY_INTERNAL_CACHE_NOOP, NULL);
- }
- // We need update the cached copy. Since the ftp server doesn't
- // send us headers, we update with the old cached headers. The
- // only thing that changes in the response received and request
- // sent time
- s->cache_info.action = CACHE_DO_SERVE_AND_UPDATE;
- s->cache_info.object_store.create();
- s->cache_info.object_store.request_set(s->cache_info.object_read->request_get());
- s->cache_info.object_store.response_set(s->cache_info.object_read->response_get());
-
- if (s->http_config_param->wuts_enabled)
- HttpTransactHeaders::convert_wuts_code_to_normal_reason(s->cache_info.object_store.response_get());
-
- // Reset Date on Ftp docs which have been revalidated, in order
- // to enforce ftp_document_lifetime config value
- s->cache_info.object_store.response_get()->set_date(s->request_sent_time);
-
- SET_VIA_STRING(VIA_CACHE_FILL_ACTION, VIA_CACHE_UPDATED);
- HTTP_INCREMENT_TRANS_STAT(http_cache_updates_stat);
-
- if (s->method == HTTP_WKSIDX_HEAD) {
- s->next_action = PROXY_INTERNAL_CACHE_UPDATE_HEADERS;
- } else {
- s->next_action = SERVE_FROM_CACHE;
- }
-
- if (s->next_action == SERVE_FROM_CACHE && s->state_machine->do_transform_open()) {
- set_header_for_transform(s, s->cache_info.object_read->response_get());
- } else {
- if (s->hdr_info.client_request.presence(MIME_PRESENCE_IF_MODIFIED_SINCE)
- && s->hdr_info.client_request.get_if_modified_since() == s->ftp_info->last_modified) {
- s->next_action = HttpTransact::PROXY_INTERNAL_CACHE_UPDATE_HEADERS;
-
- build_response(s, &(s->hdr_info.client_response), s->client_info.http_version, HTTP_STATUS_NOT_MODIFIED);
- } else
- build_response(s, s->cache_info.object_read->response_get(),
- &s->hdr_info.client_response, s->client_info.http_version);
- }
-}
-
-bool
-HttpTransact::build_ftp_server_response(State * s)
-{
- if (s->method == HTTP_WKSIDX_GET) {
- // Since we don't have a server response, build one here
- s->hdr_info.server_response.create(HTTP_TYPE_RESPONSE);
- build_response(s, &s->hdr_info.server_response, s->client_info.http_version, HTTP_STATUS_OK);
- if (s->ftp_info->last_modified > 0) {
- s->hdr_info.server_response.set_last_modified(s->ftp_info->last_modified);
- }
- // add mime type and content length.
- if (!s->ftp_info->is_directory) {
- HTTP_ASSERT(s->ftp_info->mime_type != 0);
- s->hdr_info.server_response.value_set(MIME_FIELD_CONTENT_TYPE,
- MIME_LEN_CONTENT_TYPE,
- s->ftp_info->mime_type->
- mime_type, strlen(s->ftp_info->mime_type->mime_type));
- ////////////////////////////////////////////////////////
- // do not write content length for ascii transfer //
- // mode because the ftp server may do transformation //
- // on the content of the file. //
- ////////////////////////////////////////////////////////
- if (s->ftp_info->content_length > 0 && s->ftp_info->transfer_mode == 'I') {
- s->hdr_info.server_response.set_content_length(s->ftp_info->content_length);
- s->hdr_info.response_content_length = s->ftp_info->content_length;
- } else {
- s->hdr_info.response_content_length = HTTP_UNDEFINED_CL;
- }
- } else {
- char ct[] = "text/html";
- s->hdr_info.response_content_length = HTTP_UNDEFINED_CL;
- s->hdr_info.server_response.value_set(MIME_FIELD_CONTENT_TYPE, MIME_LEN_CONTENT_TYPE, ct, sizeof(ct) - 1);
-
- // We don't cache directories since they are supposedly
- // dynamic. As such, we must add a no-store so downstream
- // caches don't cache them either
- if (s->http_return_code != HTTP_STATUS_MOVED_PERMANENTLY)
- s->hdr_info.server_response.value_set(MIME_FIELD_CACHE_CONTROL, MIME_LEN_CACHE_CONTROL, "no-store", 8);
- s->hdr_info.server_response.value_set(MIME_FIELD_PRAGMA, MIME_LEN_PRAGMA, "no-cache", 8);
- }
- return true;
- }
- return false;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// Name : HandleFtpResponse
-// Description:
-//
-// Details :
-//
-//
-//
-// Possible Next States From Here:
-//
-///////////////////////////////////////////////////////////////////////////////
-void
-HttpTransact::HandleFtpResponse(State * s)
-{
- if (diags->on()) {
- DebugOn("http_trans", "[HttpTransact::HandleFtpResponse]");
- DebugOn("http_seq", "[HttpTransact::HandleFtpResponse] " "Response received");
- }
-
- HTTP_ASSERT(s->cache_info.action != CACHE_PREPARE_TO_DELETE);
- HTTP_ASSERT(s->cache_info.action != CACHE_PREPARE_TO_UPDATE);
- HTTP_ASSERT(s->cache_info.action != CACHE_PREPARE_TO_WRITE);
-
- s->source = SOURCE_FTP_ORIGIN_SERVER;
- s->response_received_time = ink_cluster_time();
- HTTP_DEBUG_ASSERT(s->response_received_time >= s->request_sent_time);
- s->current.now = s->response_received_time;
-
- Debug("http_trans", "[HandleFtpResponse] response_received_time: %ld", s->response_received_time);
- if (!s->cop_test_page)
- DUMP_HEADER("http_hdrs", &s->hdr_info.server_response, s->state_machine_id, "Incoming O.S. Response");
-
- HTTP_INCREMENT_TRANS_STAT(http_incoming_responses_stat);
-
- if (!is_ftp_response_valid(s)) {
- Debug("http_seq", "[HttpTransact::HandleFtpResponse] " "Response not valid");
- handle_server_died(s);
- s->next_action = PROXY_SEND_ERROR_CACHE_NOOP;
-// s->next_action = PROXY_INTERNAL_CACHE_NOOP;
- return;
- }
- Debug("http_seq", "[HttpTransact::HandleFtpResponse] " "Response valid");
-
- // Intialize some state variables for the ftp response
- s->current.server->transfer_encoding = NO_TRANSFER_ENCODING;
- s->hdr_info.response_content_length = HTTP_UNDEFINED_CL;
- s->current.server->keep_alive = HTTP_NO_KEEPALIVE;
-
- ///////////////////////////////////////////////////////////
- // open is successfull: //
- // - If we opened a directory using NLST and it went ok, //
- // let's open the directory using LIST. //
- // - If we opened a file or a directory using LIST and //
- // it went ok, write the data back to the user agent. //
- ///////////////////////////////////////////////////////////
- HTTP_ASSERT(s->current.state == CONNECTION_ALIVE);
-
- if (s->method == HTTP_WKSIDX_PUT) {
- if (s->cache_info.action == CACHE_DO_DELETE) {
- s->next_action = FTP_WRITE_CACHE_DELETE;
- } else {
- HTTP_DEBUG_ASSERT(s->cache_info.object_read == 0);
- HTTP_DEBUG_ASSERT(s->cache_info.action == CACHE_DO_NO_ACTION);
- s->next_action = FTP_WRITE_CACHE_NOOP;
- }
- } else if (s->method == HTTP_WKSIDX_GET) {
-
- ink_release_assert(s->hdr_info.server_response.valid());
-
- if (s->state_machine->do_transform_open()) {
- // VIA will get added back in after the transform
- s->hdr_info.server_response.field_delete(MIME_FIELD_VIA, MIME_LEN_VIA);
- set_header_for_transform(s, &s->hdr_info.server_response);
- } else {
- // No transform - just copy our server response to
- // the ua response
- ink_assert(s->ftp_info->is_directory == false);
- s->hdr_info.client_response.create(HTTP_TYPE_RESPONSE);
- s->hdr_info.client_response.copy(&s->hdr_info.server_response);
- }
-
- //////////////////////////////////////////////
- // decide if to write document to the cache //
- //////////////////////////////////////////////
- if (diags->on()) {
- DebugOn("http_trans", "[HandleFtpResponse] ConfigCacheFtp: %lld", s->http_config_param->cache_ftp);
- DebugOn("http_trans", "[HandleFtpResponse] Is this a directory: %d", s->ftp_info->is_directory);
- DebugOn("http_trans",
- "[HandleFtpResponse] Client permits storing: %d", s->cache_info.directives.does_client_permit_storing);
- }
-
- if (is_response_cacheable(s,
- &s->hdr_info.client_request,
- &(s->hdr_info.server_response)) && s->cache_info.write_lock_state == CACHE_WL_SUCCESS) {
- Debug("http_trans", "[HandleFtpResponse] Ftp response cacheable");
-
- if (s->cache_info.object_read != 0) {
- Debug("http_trans", "[HandleFtpResponse] " "Deleting and caching ftp document.");
- s->cache_info.action = CACHE_DO_REPLACE;
- s->next_action = FTP_READ;
- } else {
- Debug("http_trans", "[HandleFtpResponse] Caching ftp document.");
- s->cache_info.action = CACHE_DO_WRITE;
- s->next_action = FTP_READ;
- }
- ////////////////////////////////////////////////////////
- // initialize cache object info to store the document //
- // since ftp server does not send http headers with //
- // the document, we store our generated response //
- // header to the user agent as the cached response. //
- ////////////////////////////////////////////////////////
- s->cache_info.object_store.create();
- s->cache_info.object_store.request_set(&s->hdr_info.client_request);
- s->cache_info.object_store.response_set(&s->hdr_info.server_response);
-
- if (s->http_config_param->wuts_enabled)
- HttpTransactHeaders::convert_wuts_code_to_normal_reason(s->cache_info.object_store.response_get());
-
- /////////////////////////////////////////////////////////////
- // Remove the VIA field from headers for the cache since //
- // the proxy genrated it as part of the client response //
- // contruction. Ftp servers do not send VIA headers //
- /////////////////////////////////////////////////////////////
- s->cache_info.object_store.response_get()->field_delete(MIME_FIELD_VIA, MIME_LEN_VIA);
-
- HTTP_DEBUG_ASSERT(s->request_sent_time <= s->response_received_time);
- } else {
- Debug("http_trans", "[HandleFtpResponse] Ftp response not cacheable.");
- s->cache_info.action = CACHE_DO_NO_ACTION;
- s->next_action = FTP_READ;
- }
- } else {
- HTTP_DEBUG_ASSERT(!"Invalid Ftp method.");
- }
-
- return;
-}
-#endif //INK_NO_FTP
///////////////////////////////////////////////////////////////////////////////
// Name : OriginServerRawOpen
@@ -4276,8 +3792,6 @@ HttpTransact::handle_response_from_serve
/* fall through */
case CONNECTION_CLOSED:
/* fall through */
- case FTP_OPEN_FAILED:
- /* fall through */
case BAD_INCOMING_RESPONSE:
s->current.server->connect_failure = 1;
if (is_server_negative_cached(s)) {
@@ -5546,9 +5060,6 @@ HttpTransact::handle_transform_ready(Sta
case SOURCE_HTTP_ORIGIN_SERVER:
transform_store_request = &s->hdr_info.server_request;
break;
- case SOURCE_FTP_ORIGIN_SERVER:
- transform_store_request = &s->hdr_info.client_request;
- break;
default:
ink_release_assert(0);
}
@@ -6154,9 +5665,6 @@ HttpTransact::RequestError_t HttpTransac
if (!((scheme == URL_WKSIDX_HTTP) && (method == HTTP_WKSIDX_GET))) {
if (scheme != URL_WKSIDX_HTTP && scheme != URL_WKSIDX_HTTPS &&
-#ifndef INK_NO_FTP
- scheme != URL_WKSIDX_FTP &&
-#endif
method != HTTP_WKSIDX_CONNECT) {
if (scheme < 0) {
return NO_REQUEST_SCHEME;
@@ -6166,7 +5674,7 @@ HttpTransact::RequestError_t HttpTransac
}
if (!HttpTransactHeaders::is_this_method_supported(scheme, method)) {
- return ((scheme == URL_WKSIDX_FTP) ? FTP_METHOD_NOT_SUPPORTED : METHOD_NOT_SUPPORTED);
+ return METHOD_NOT_SUPPORTED;
}
if ((method == HTTP_WKSIDX_CONNECT) && (!is_ssl_port_ok(s, incoming_hdr->url_get()->port_get()))) {
@@ -6249,23 +5757,6 @@ HttpTransact::RequestError_t HttpTransac
return NO_REQUEST_HEADER_ERROR;
}
-HttpTransact::ResponseError_t HttpTransact::check_ftp_response_validity(State * s)
-{
- ink_assert(s->next_hop_scheme == URL_WKSIDX_FTP);
-
- // request may have required authorization information.
- if (s->ftp_info->last_error == EFTP_LOGIN_INCORRECT) {
- return FTP_LOGIN_INCORRECT;
- }
- // connection problem. ftp open failed. not much else
- // to do, but bail out.
- if (s->current.state == FTP_OPEN_FAILED) {
- return FTP_CONNECTION_OPEN_FAILED;
-
- }
- return NO_RESPONSE_HEADER_ERROR;
-}
-
HttpTransact::ResponseError_t HttpTransact::check_response_validity(State * s, HTTPHdr * incoming_hdr)
{
@@ -7193,22 +6684,6 @@ HttpTransact::is_response_cacheable(Stat
return false;
}
- if (s->scheme == URL_WKSIDX_FTP) {
- bool
- request_has_username =
- (s->ftp_info->username && s->ftp_info->username[0] &&
- (strcmp(s->ftp_info->username, "anonymous") != 0) && (strcmp(s->ftp_info->username, "ftp") != 0));
-
- if (request_has_username) {
- return (false);
- }
- if (!s->http_config_param->cache_ftp) {
- return (false);
- }
- if (s->ftp_info->is_directory) {
- return (false);
- }
- }
// check if cache control overrides default cacheability
int indicator;
indicator = response_cacheable_indicated_by_cc(response);
@@ -7401,14 +6876,6 @@ HttpTransact::is_request_valid(State * s
Debug("http_trans", "[is_request_valid]" "unsupported method");
s->current.mode = TUNNELLING_PROXY;
return TRUE;
- case FTP_METHOD_NOT_SUPPORTED:
- {
- Debug("http_trans", "[is_request_valid] unsupported ftp method");
- SET_VIA_STRING(VIA_DETAIL_TUNNEL, VIA_DETAIL_TUNNEL_NO_FORWARD);
- build_error_response(s, HTTP_STATUS_BAD_REQUEST, "Unsupported FTP Method", "ftp#unsupported_method",
- const_cast < char *>(URL_MSG));
- return FALSE;
- }
case BAD_SSL_PORT:
int port;
port = url ? url->port_get() : 0;
@@ -7442,34 +6909,6 @@ HttpTransact::is_request_valid(State * s
return TRUE;
}
-bool
-HttpTransact::is_ftp_response_valid(State * s)
-{
-
- s->hdr_info.response_error = check_ftp_response_validity(s);
-
- switch (s->hdr_info.response_error) {
- case FTP_LOGIN_INCORRECT:
- HTTP_DEBUG_ASSERT(s->scheme == URL_WKSIDX_FTP);
- Debug("http_trans", "[is_ftp_response_valid] Response Error: ftp login incorrect");
- s->current.state = FTP_OPEN_FAILED;
- return false;
-
- case FTP_CONNECTION_OPEN_FAILED:
- HTTP_DEBUG_ASSERT(s->scheme == URL_WKSIDX_FTP);
- Debug("http_trans", "[is_ftp_response_valid] Response Error: ftp connection open failed");
- s->current.state = FTP_OPEN_FAILED;
- return false;
- default:
- Debug("http_trans", "[is_ftp_response_valid] Errors in response");
- s->current.state = BAD_INCOMING_RESPONSE;
- return false;
- case NO_RESPONSE_HEADER_ERROR:
- Debug("http_trans", "[is_response_valid] No errors in response");
- return true;
- }
-}
-
// bool HttpTransact::is_request_retryable
//
// If we started a POST/PUT tunnel then we can
@@ -7507,8 +6946,8 @@ HttpTransact::is_response_valid(State *
(s->current.state == CONNECTION_CLOSED) ||
(s->current.state == INACTIVE_TIMEOUT) ||
(s->current.state == ACTIVE_TIMEOUT) ||
- (s->current.state == FTP_OPEN_FAILED) || (s->current.state == CONGEST_CONTROL_CONGESTED_ON_M)
- || (s->current.state == CONGEST_CONTROL_CONGESTED_ON_F));
+ (s->current.state == CONGEST_CONTROL_CONGESTED_ON_M) ||
+ (s->current.state == CONGEST_CONTROL_CONGESTED_ON_F));
s->hdr_info.response_error = CONNECTION_OPEN_FAILED;
return false;
@@ -7551,14 +6990,9 @@ HttpTransact::is_response_valid(State *
return false;
case MISSING_STATUS_CODE:
- if (s->next_hop_scheme == URL_WKSIDX_FTP) {
- Debug("http_trans", "[is_response_valid] Response Error: Missing status code - allowing");
- return true;
- } else {
- Debug("http_trans", "[is_response_valid] Response Error: Missing status code");
- s->current.state = BAD_INCOMING_RESPONSE;
- return false;
- }
+ Debug("http_trans", "[is_response_valid] Response Error: Missing status code");
+ s->current.state = BAD_INCOMING_RESPONSE;
+ return false;
default:
Debug("http_trans", "[is_response_valid] Errors in response");
@@ -7589,135 +7023,6 @@ HttpTransact::service_transaction_in_pro
return false;
}
-//////////////////////////////////////////////////////////////////
-//
-// HttpTransact::setup_ftp_request()
-//
-// setup ftp path, user name and password
-//////////////////////////////////////////////////////////////////
-bool
-HttpTransact::setup_ftp_request(State * s)
-{
-#ifndef INK_NO_FTP
- HTTPHdr *r = &s->hdr_info.client_request;
- MimeTableEntry *e = NULL;
- const char *t;
- int j;
-
- char *tmp;
- int ftp_path_len, user_name_len, password_len, ftp_filename_len;
-
- // Create the struct for holding ftp info
- s->ftp_info = (FtpInfo *) s->arena.alloc(sizeof(FtpInfo));
- s->ftp_info->init();
-
- ///////////////////////////////////////////////////////
- // get ftp path. separate the path from the filename //
- // path1/file1 => [path1, file1]
- // path1/file1 => [path1, file1]
- // file1 => [., file1]
- ///////////////////////////////////////////////////////
- t = r->url_get()->path_get(&ftp_path_len);
- if (!t)
- return false; // This probably shouldn't happen ...
-
- if (t[0] == '/') {
- t++;
- ftp_path_len--;
- } // a bug in
-
- for (j = ftp_path_len - 1; j >= 0; j--) {
- if (t[j] == '/') {
- // make a copy of the path name
- bool filename_exists = (j < ftp_path_len - 1);
- ftp_filename_len = (filename_exists) ? (ftp_path_len - j - 1) : 0;
-
- ftp_path_len = j;
- s->ftp_info->path = URL::unescapify(&s->arena, &t[0], ftp_path_len);
-
- if (filename_exists) { // not ending with '/'. There is a filename
- s->ftp_info->filename = URL::unescapify(&s->arena, &t[j + 1], ftp_filename_len);
- }
- break;
- }
- }
- if (j == -1 && s->ftp_info->path == 0) { // no '/' found
- // don't default to "." for directory here
- s->ftp_info->path = NULL;
- if (t && t[0] != '\0')
- s->ftp_info->filename = URL::unescapify(&s->arena, t, ftp_path_len);
- }
- /////////////////////////////////////////////////////////////////
- // get user name and password. //
- // If an Authorization header field exist, try to get the user //
- // name and password from there. Else try to get them from the //
- // url. //
- /////////////////////////////////////////////////////////////////
- if (r->presence(MIME_PRESENCE_AUTHORIZATION)) {
- if (!HttpTransactHeaders::generate_basic_authorization_from_request(&s->arena, r, (char**)&s->ftp_info->username, &s->ftp_info->password)) {
- build_error_response(s, HTTP_STATUS_BAD_REQUEST, "Bad HTTP Request For FTP Object", "ftp#bad_request", "");
- s->next_action = PROXY_SEND_ERROR_CACHE_NOOP;;
- return false;
- }
- } else {
- ////////////////////////////
- // get user name from url //
- ////////////////////////////
- r->url_get()->user_get(&user_name_len);
- if (user_name_len == 0) {
- s->ftp_info->username = "anonymous";
- s->ftp_info->password = s->http_config_param->ftp_anonymous_passwd;
- } else {
- /////////////////////////////////////////
- // get user name and password from url //
- /////////////////////////////////////////
- char anon[] = "anonymous";
- char ftp[] = "ftp";
- tmp = (char *) r->url_get()->user_get(&user_name_len);
- s->ftp_info->username = s->arena.str_store(tmp, user_name_len);
- tmp = (char *) r->url_get()->password_get(&password_len);
- s->ftp_info->password = s->arena.str_store(tmp, password_len);
- if (password_len <= 0 &&
- ((ptr_len_cmp
- (s->ftp_info->username, user_name_len, anon,
- sizeof(anon) - 1) == 0) ||
- (ptr_len_cmp(s->ftp_info->username, user_name_len, ftp, sizeof(ftp) - 1) == 0))) {
- s->ftp_info->password = s->http_config_param->ftp_anonymous_passwd;
- }
- }
- }
- ////////////////////////
- // Get mime type info //
- ////////////////////////
- e = (s->ftp_info->filename) ? (mimeTable.get_entry_path(s->ftp_info->filename)) : (0);
- if (e && strcmp(e->name, "unknown") == 0)
- e = &unknown_ftp_mime_type;
- s->ftp_info->mime_type = e;
-
- /////////////////////////////////////////////
- // set ftp type. If it not explicit in the //
- // url then get it from the mime entry //
- /////////////////////////////////////////////
- s->ftp_info->transfer_mode = r->url_get()->type_get();
- if (s->ftp_info->transfer_mode == 0) {
- if (!s->ftp_info->filename)
- s->ftp_info->transfer_mode = 'A'; // directory (ASCII)
- else if (s->http_config_param->ftp_binary_transfer_only)
- s->ftp_info->transfer_mode = 'I';
- else if (!s->ftp_info->mime_type)
- s->ftp_info->transfer_mode = 'I'; // no mime type, use default (binary)
- else if (strcmp(s->ftp_info->mime_type->mime_encoding, "7bit") == 0)
- s->ftp_info->transfer_mode = 'A'; // text files (ASCII)
- else
- s->ftp_info->transfer_mode = 'I'; // all other mime encodings (binary)
- }
-
- return (true);
-#else
- return (false);
-#endif //INK_NO_FTP
-}
-
bool
HttpTransact::setup_transparency(State * s)
{
@@ -8919,11 +8224,6 @@ HttpTransact::handle_server_died(State *
reason = "Tunnel Connection Failed";
body_type = "connect#failed_connect";
break;
- case FTP_OPEN_FAILED:
- status = HTTP_STATUS_BAD_GATEWAY;
- reason = "FTP Connection Failed";
- body_type = "connect#failed_connect";
- break;
case CONNECTION_CLOSED:
status = HTTP_STATUS_BAD_GATEWAY;
reason = "Server Hangup";
@@ -8990,16 +8290,6 @@ HttpTransact::handle_server_died(State *
////////////////////////////////////////////////////////
switch (s->hdr_info.response_error) {
- case FTP_CONNECTION_OPEN_FAILED:
- status = HTTP_STATUS_BAD_GATEWAY;
- reason = "FTP Error";
- body_type = "ftp#error";
- break;
- case FTP_LOGIN_INCORRECT:
- status = HTTP_STATUS_UNAUTHORIZED;
- reason = "FTP Authentication Required";
- body_type = "ftp#auth_required";
- break;
case NON_EXISTANT_RESPONSE_HEADER:
status = HTTP_STATUS_BAD_GATEWAY;
reason = "No Response Header From Server";
@@ -9016,7 +8306,6 @@ HttpTransact::handle_server_died(State *
body_type = "response#bad_response";
break;
case MISSING_STATUS_CODE:
- HTTP_ASSERT(s->next_hop_scheme != URL_WKSIDX_FTP);
status = HTTP_STATUS_BAD_GATEWAY;
reason = "Malformed Server Response Status";
body_type = "response#bad_response";
@@ -9030,16 +8319,8 @@ HttpTransact::handle_server_died(State *
reason = "Server Connection Failed";
body_type = "connect#failed_connect";
}
- /////////////////////////////////////////////////
- // now add a default body, which is either the //
- // ftp error text or the reason phrase //
- /////////////////////////////////////////////////
- const char *body_text;
- if ((s->next_hop_scheme == URL_WKSIDX_FTP) && (s->ftp_info->error_msg))
- body_text = s->ftp_info->error_msg;
- else
- body_text = reason; // Reason can never be NULL here (see above)
- build_error_response(s, status, reason, body_type, body_text);
+
+ build_error_response(s, status, reason, body_type, reason);
return;
}
@@ -9688,183 +8969,6 @@ HttpTransact::get_error_string(int erno)
}
}
-#ifndef INK_NO_FTP
-/////////////////////////////////////////////////////////////////////////
-// Somewhat nasty of a solution for translating reply codes into
-// reason phrases for ftp servers that do not provide them. This
-// is rare, but I lifted these directly from the FTP rfc. If nothing
-// else this will prevent us from serving error pages with no error
-// string.
-// I went ahead a listed all the reply codes, not just the errors below.
-// nasty, but I needed a quick solution.
-/////////////////////////////////////////////////////////////////////////
-const char *
-HttpTransact::FtpReplyCodeToReasonPhrase(int code)
-{
- const char *msg = "Unspecified Reply";
-
- switch (code) {
- case 110:
- msg = "Restart marker reply";
- break;
- case 120:
- msg = "Service ready shortly, please try again later";
- break;
- case 125:
- msg = "Data connection already open; transfer starting";
- break;
- case 150:
- msg = "File status okay; about to open data connection";
- break;
- case 200:
- msg = "Command okay";
- break;
- case 202:
- msg = "Command not implemented";
- break;
- case 211:
- msg = "System status";
- break;
- case 212:
- msg = "Directory status";
- break;
- case 213:
- msg = "File status";
- break;
- case 214:
- msg = "Help message";
- break;
- case 215:
- msg = "NAME system type";
- break;
- case 220:
- msg = "Service ready for new user";
- break;
- case 221:
- msg = "Service closing control connection";
- break;
- case 225:
- msg = "Data connection open; no transfer in progress";
- break;
- case 226:
- msg = "Closing data connection. Requested file action successful";
- break;
- case 227:
- msg = "Entering Passive Mode";
- break;
- case 230:
- msg = "User logged in, proceed";
- break;
- case 250:
- msg = "Requested file action completed";
- break;
- case 257:
- msg = "PATHNAME created";
- break;
- case 331:
- msg = "User name okay, need password";
- break;
- case 332:
- msg = "Need account for login";
- break;
- case 350:
- msg = "Requested file action pending further information";
- break;
- case 421:
- msg = "Service not available";
- break;
- case 425:
- msg = "Can't open data connection";
- break;
- case 426:
- msg = "Connection closed; transfer aborted";
- break;
- case 450:
- msg = "Request failed, file unavailable";
- break;
- case 451:
- msg = "Request aborted; local error in processing";
- break;
- case 452:
- msg = "Request aborted; Insufficient storage space on system";
- break;
- case 500:
- msg = "Syntax error, command unrecognized";
- break;
- case 501:
- msg = "Syntax error in parameters or arguments";
- break;
- case 502:
- msg = "Command not implemented";
- break;
- case 503:
- msg = "Bad sequence of commands";
- break;
- case 504:
- msg = "Command not implemented for given parameter";
- break;
- case 530:
- msg = "Not logged in";
- break;
- case 532:
- msg = "Need account for storing files";
- break;
- case 550:
- msg = "File not found or access is denied";
- break;
- case 551:
- msg = "Request aborted; page type unknown";
- break;
- case 552:
- msg = "Request aborted; Exceeded storage allocation";
- break;
- case 553:
- msg = "Request aborted; file name not allowed";
- break;
- default:
- msg = "Unspecified Reply";
- break;
- }
- return (msg);
-}
-
-void
-HttpTransact::SetFtpErrorMessage(State * s, IOBufferReader * error_message_reader)
-{
- int message_len = error_message_reader->read_avail();
-
- if (s->ftp_info->error_msg) {
- xfree(s->ftp_info->error_msg);
- }
- if (message_len > 0) {
- s->ftp_info->error_msg = (char *) xmalloc(message_len + 1);
- error_message_reader->memcpy(s->ftp_info->error_msg, message_len, 0);
- s->ftp_info->error_msg[message_len] = '\0';
- } else {
- ////////////////////////////
- // no error message input //
- ////////////////////////////
- s->ftp_info->error_msg = 0;
- }
-
- if (!s->ftp_info->error_msg || strcmp(s->ftp_info->error_msg, "") == 0) {
- ////////////////////////////////////////////
- // There was no message text from the ftp //
- // server, or there was an ftp connection //
- // error. use our own message text. //
- ////////////////////////////////////////////
- const char *msg = FtpReplyCodeToReasonPhrase(s->ftp_info->last_reply_code);
- if (msg) {
- if (s->ftp_info->error_msg) {
- xfree(s->ftp_info->error_msg);
- }
- s->ftp_info->error_msg = xstrdup(msg);
- }
- }
-
- return;
-}
-#endif //INK_NO_FTP
volatile ink_time_t global_time;
volatile ink32 cluster_time_delta;
@@ -10000,58 +9104,56 @@ HttpTransact::client_result_stat(State *
switch (s->squid_codes.log_code) {
case SQUID_LOG_ERR_CONNECT_FAIL:
case SQUID_LOG_ERR_SPIDER_CONNECT_FAILED:
- HTTP_INCREMENT_TRANS_STAT((s->scheme == URL_WKSIDX_FTP) ? ftp_cache_misses_stat : http_cache_miss_cold_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_miss_cold_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_ERROR_CONNECT_FAIL;
break;
case SQUID_LOG_TCP_HIT:
case SQUID_LOG_TCP_MEM_HIT:
// It's possible to have two stat's instead of one, if needed.
- HTTP_INCREMENT_TRANS_STAT((s->scheme == URL_WKSIDX_FTP) ? ftp_cache_hits_stat : http_cache_hit_fresh_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_hit_fresh_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_HIT_FRESH;
break;
case SQUID_LOG_TCP_REFRESH_HIT:
- HTTP_INCREMENT_TRANS_STAT((s->scheme == URL_WKSIDX_FTP) ? ftp_cache_hits_stat : http_cache_hit_reval_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_hit_reval_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_HIT_REVALIDATED;
break;
case SQUID_LOG_TCP_IMS_HIT:
- HTTP_INCREMENT_TRANS_STAT((s->scheme == URL_WKSIDX_FTP) ? ftp_cache_hits_stat : http_cache_hit_ims_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_hit_ims_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_HIT_FRESH;
break;
case SQUID_LOG_TCP_REF_FAIL_HIT:
- HTTP_INCREMENT_TRANS_STAT((s->scheme == URL_WKSIDX_FTP) ? ftp_cache_hits_stat : http_cache_hit_stale_served_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_hit_stale_served_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_HIT_FRESH;
break;
case SQUID_LOG_TCP_MISS:
if ((GET_VIA_STRING(VIA_CACHE_RESULT) == VIA_IN_CACHE_NOT_ACCEPTABLE)
|| (GET_VIA_STRING(VIA_CACHE_RESULT) == VIA_CACHE_MISS)) {
- HTTP_INCREMENT_TRANS_STAT((s->scheme == URL_WKSIDX_FTP) ? ftp_cache_misses_stat : http_cache_miss_cold_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_miss_cold_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_MISS_COLD;
} else {
// FIX: what case is this for? can it ever happen?
- HTTP_INCREMENT_TRANS_STAT((s->scheme ==
- URL_WKSIDX_FTP) ? ftp_cache_misses_stat : http_cache_miss_uncacheable_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_miss_uncacheable_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_MISS_UNCACHABLE;
}
break;
case SQUID_LOG_TCP_REFRESH_MISS:
- HTTP_INCREMENT_TRANS_STAT((s->scheme == URL_WKSIDX_FTP) ? ftp_cache_misses_stat : http_cache_miss_changed_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_miss_changed_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_MISS_CHANGED;
break;
case SQUID_LOG_TCP_CLIENT_REFRESH:
- HTTP_INCREMENT_TRANS_STAT((s->scheme ==
- URL_WKSIDX_FTP) ? ftp_cache_misses_stat : http_cache_miss_client_no_cache_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_miss_client_no_cache_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_MISS_CLIENT_NO_CACHE;
break;
case SQUID_LOG_TCP_IMS_MISS:
- HTTP_INCREMENT_TRANS_STAT((s->scheme == URL_WKSIDX_FTP) ? ftp_cache_misses_stat : http_cache_miss_ims_stat);
+ HTTP_INCREMENT_TRANS_STAT(http_cache_miss_ims_stat);
client_transaction_result = CLIENT_TRANSACTION_RESULT_MISS_COLD;
break;
@@ -10468,11 +9570,6 @@ HttpTransact::delete_warning_value(HTTPH
}
}
-MimeTableEntry unknown_ftp_mime_type = { "ftp_unknown", "application/octet-stream", "binary", "unknown" };
-
-
-
-
////////////////////////////////////////////////////////////////////////////////////
//
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h Fri Apr 30 03:14:19 2010
@@ -173,7 +173,6 @@ enum WUTSProxyStatusCode
WUTS_PROXY_STATUS_NO_RELAY = 813,
WUTS_PROXY_STATUS_DISK_IO_ERROR = 814,
WUTS_PROXY_STATUS_ZERO_SIZE_OBJECT = 815,
- WUTS_PROXY_STATUS_FTP_DISABLED = 816,
WUTS_PROXY_STATUS_PROXY_AUTHORIZATION_FAILURE = 817,
WUTS_PROXY_STATUS_WEBFETCH_DETECTED_ERROR = 818,
WUTS_PROXY_STATUS_PERSISTENT_READ_ERROR = 819,
@@ -471,7 +470,6 @@ public:
BAD_SSL_PORT,
FAILED_PROXY_AUTHORIZATION,
METHOD_NOT_SUPPORTED,
- FTP_METHOD_NOT_SUPPORTED,
MISSING_HOST_FIELD,
NO_POST_CONTENT_LENGTH,
NO_REQUEST_SCHEME,
@@ -486,8 +484,6 @@ public:
NO_RESPONSE_HEADER_ERROR,
BOGUS_OR_NO_DATE_IN_RESPONSE,
CONNECTION_OPEN_FAILED,
- FTP_CONNECTION_OPEN_FAILED,
- FTP_LOGIN_INCORRECT,
MISSING_REASON_PHRASE,
MISSING_STATUS_CODE,
NON_EXISTANT_RESPONSE_HEADER,
@@ -506,7 +502,6 @@ public:
CONNECTION_ALIVE,
CONNECTION_CLOSED,
CONNECTION_ERROR,
- FTP_OPEN_FAILED,
INACTIVE_TIMEOUT,
OPEN_RAW_ERROR,
PARSE_ERROR,
@@ -539,7 +534,6 @@ public:
{
SOURCE_NONE = 0,
SOURCE_HTTP_ORIGIN_SERVER,
- SOURCE_FTP_ORIGIN_SERVER,
SOURCE_RAW_ORIGIN_SERVER,
SOURCE_CACHE,
SOURCE_TRANSFORM,
@@ -565,11 +559,6 @@ public:
PREPARE_CACHE_UPDATE,
ISSUE_CACHE_UPDATE,
- FTP_READ,
- FTP_SERVER_OPEN,
- FTP_WRITE_CACHE_DELETE,
- FTP_WRITE_CACHE_NOOP,
-
ICP_QUERY,
ORIGIN_SERVER_OPEN,
@@ -643,7 +632,6 @@ public:
CACHE_LOOKUP_NONE,
CACHE_LOOKUP_MISS,
CACHE_LOOKUP_DOC_BUSY,
- CACHE_LOOKUP_HIT_FTP_NON_ANONYMOUS,
CACHE_LOOKUP_HIT_STALE,
CACHE_LOOKUP_HIT_WARNING,
CACHE_LOOKUP_HIT_FRESH,
@@ -914,39 +902,6 @@ public:
}
SquidLogInfo;
- typedef struct _FtpInfo
- {
- char *path; // out
- char *filename; // out
- const char *username; // out
- char *password; // out
- char transfer_mode; // out
- MimeTableEntry *mime_type; // out
- bool is_directory; // in
- int last_reply_code;
- int last_error; // in
- int content_length; // in
- char *error_msg; // in
- ink_time_t last_modified; // in
-
- inline void init()
- {
- path = NULL;
- filename = NULL;
- username = NULL;
- password = NULL;
- transfer_mode = 0;
- mime_type = NULL;
- is_directory = false;
- last_modified = 0;
- last_reply_code = 0;
- last_error = 0;
- content_length = 0;
- error_msg = NULL;
- last_modified = 0;
- }
- }
- FtpInfo;
#ifdef USE_NCA
typedef struct _NcaInfo
@@ -1043,7 +998,6 @@ public:
int method;
HostDBInfo host_db_info; // in
int cause_of_death_errno; // in
- FtpInfo *ftp_info;
HttpTransactMagic_t _separator6;
ink_time_t client_request_time; // internal
@@ -1184,16 +1138,8 @@ public:
static void PPDNSLookup(State * s);
static void HandleAuth(State * s);
static void HandleAuthFailed(State * s);
- static void SetFtpErrorMessage(State * s, IOBufferReader * error_msg);
- static const char *FtpReplyCodeToReasonPhrase(int code);
- static void HandleFtpResponse(State * s);
- static void HandleFtpRevalidate(State * s);
- static void HandleFtpPutSuccess(State * s);
- static void HandleFtpPutFailure(State * s);
static void OriginServerRawOpen(State * s);
static void HandleCacheOpenRead(State * s);
- static void HandleCacheOpenReadFtpFreshness(State * s);
- static void HandleCacheOpenReadFtp(State * s);
static void HandleCacheOpenReadHitFreshness(State * s);
static void HandleCacheOpenReadHit(State * s);
static void HandleCacheOpenReadMiss(State * s);
@@ -1240,13 +1186,11 @@ public:
ConnectionAttributes * client_info,
HostDBInfo * host_db_info, HttpConfigParams * config_params);
static bool service_transaction_in_proxy_only_mode(State * s);
- static bool setup_ftp_request(State * s);
static void setup_plugin_request_intercept(State * s);
static void handle_msie_reload_badness(State * s, HTTPHdr * client_request);
static void add_client_ip_to_outgoing_request(State * s, HTTPHdr * request);
static RequestError_t check_request_validity(State * s, HTTPHdr * incoming_hdr);
static ResponseError_t check_response_validity(State * s, HTTPHdr * incoming_hdr);
- static ResponseError_t check_ftp_response_validity(State * s);
static bool delete_all_document_alternates_and_return(State * s, bool cache_hit);
static bool did_forward_server_send_0_9_response(State * s);
static bool does_client_request_permit_cached_response(const HttpConfigParams * p,
@@ -1269,7 +1213,6 @@ public:
static bool is_request_retryable(State * s);
static bool is_response_cacheable(State * s, HTTPHdr * request, HTTPHdr * response);
static bool is_response_valid(State * s, HTTPHdr * incoming_response);
- static bool is_ftp_response_valid(State * s);
// static bool setup_reverse_proxy(State *s,HTTPHdr *incoming_request);
static bool process_quick_http_filter(State * s, int method);
@@ -1300,7 +1243,6 @@ public:
static void build_response_copy(State * s,
HTTPHdr * base_response, HTTPHdr * outgoing_response, HTTPVersion outgoing_version);
- static bool build_ftp_server_response(State * s);
static void handle_content_length_header(State * s, HTTPHdr * header, HTTPHdr * base);
static void handle_request_keep_alive_headers(State * s, HTTPVersion ver, HTTPHdr * heads);
@@ -1405,7 +1347,6 @@ orig_scheme(scheme),
method(0),
host_db_info(),
cause_of_death_errno(-UNKNOWN_INTERNAL_ERROR),
-ftp_info(NULL),
_separator6(HTTP_TRANSACT_MAGIC_SEPARATOR),
client_request_time(UNDEFINED_TIME),
request_sent_time(UNDEFINED_TIME),
@@ -1539,8 +1480,6 @@ HttpTransact::State::destroy()
free_internal_msg_buffer(internal_msg_buffer, internal_msg_buffer_fast_allocator_size);
}
//if (unmapped_request_url) xfree(unmapped_request_url);
- if (ftp_info && ftp_info->error_msg)
- xfree(ftp_info->error_msg);
if (internal_msg_buffer_type)
xfree(internal_msg_buffer_type);
@@ -1598,8 +1537,6 @@ conn_state_enum_to_str(HttpTransact::Ser
return "CONNECTION_CLOSED";
case HttpTransact::CONNECTION_ERROR:
return "CONNECTION_ERROR";
- case HttpTransact::FTP_OPEN_FAILED:
- return "FTP_OPEN_FAILED";
case HttpTransact::INACTIVE_TIMEOUT:
return "INACTIVE_TIMEOUT";
case HttpTransact::OPEN_RAW_ERROR:
@@ -1659,5 +1596,4 @@ HttpTransact::update_stat(State * s, int
(*next_insert)++;
}
-extern MimeTableEntry unknown_ftp_mime_type;
#endif
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.cc Fri Apr 30 03:14:19 2010
@@ -118,8 +118,6 @@ HttpTransactHeaders::is_this_method_supp
return true;
} else if (the_scheme == URL_WKSIDX_HTTP || the_scheme == URL_WKSIDX_HTTPS)
return is_this_http_method_supported(the_method);
- else if (the_scheme == URL_WKSIDX_FTP)
- return is_this_ftp_method_supported(the_method);
else
return false;
}
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransactHeaders.h Fri Apr 30 03:14:19 2010
@@ -47,7 +47,6 @@ extern int nstrhex(char *d, unsigned int
class HttpTransactHeaders
{
public:
- static bool is_this_ftp_method_supported(int method);
static bool is_this_http_method_supported(int method);
static bool is_method_cacheable(int method);
static bool is_method_cache_lookupable(int method);
@@ -131,14 +130,6 @@ public:
*****************************************************************************/
inline bool
-HttpTransactHeaders::is_this_ftp_method_supported(int method)
-{
- // BZ 40810 - not supporting PURGE at the moment
- // another case of INKqa11403/BZ40437
- return ((method == HTTP_WKSIDX_GET) || (method == HTTP_WKSIDX_PUT));
-}
-
-inline bool
HttpTransactHeaders::is_this_http_method_supported(int method)
{
return ((method == HTTP_WKSIDX_GET) ||
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.cc Fri Apr 30 03:14:19 2010
@@ -1300,11 +1300,9 @@ HttpTunnel::chain_abort_all(HttpTunnelPr
while (c) {
if (c->alive) {
c->alive = false;
- if (c->vc_type != HT_FTP_SERVER) {
- c->write_vio = NULL;
- c->vc->do_io_close(EHTTP_ERROR);
- update_stats_after_abort(c->vc_type);
- }
+ c->write_vio = NULL;
+ c->vc->do_io_close(EHTTP_ERROR);
+ update_stats_after_abort(c->vc_type);
}
if (c->self_producer) {
@@ -1317,14 +1315,12 @@ HttpTunnel::chain_abort_all(HttpTunnelPr
if (p->alive) {
p->alive = false;
p->bytes_read = p->read_vio->ndone;
- if (p->vc_type != HT_FTP_SERVER) {
- if (p->self_consumer) {
- p->self_consumer->alive = false;
- }
- p->read_vio = NULL;
- p->vc->do_io_close(EHTTP_ERROR);
- update_stats_after_abort(p->vc_type);
+ if (p->self_consumer) {
+ p->self_consumer->alive = false;
}
+ p->read_vio = NULL;
+ p->vc->do_io_close(EHTTP_ERROR);
+ update_stats_after_abort(p->vc_type);
}
}
@@ -1509,7 +1505,7 @@ HttpTunnel::update_stats_after_abort(Htt
break;
default:
// Handled here:
- // HT_HTTP_SERVER, HT_FTP_SERVER, HT_HTTP_CLIENT,
+ // HT_HTTP_SERVER, HT_HTTP_CLIENT,
// HT_TRANSFORM, HT_STATIC
break;
};
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.h?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpTunnel.h Fri Apr 30 03:14:19 2010
@@ -69,7 +69,6 @@ typedef int (HttpSM::*HttpConsumerHandle
enum HttpTunnelType_t
{
HT_HTTP_SERVER,
- HT_FTP_SERVER,
HT_HTTP_CLIENT,
HT_CACHE_READ,
HT_CACHE_WRITE,
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpUpdateSM.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpUpdateSM.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpUpdateSM.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpUpdateSM.cc Fri Apr 30 03:14:19 2010
@@ -158,33 +158,6 @@ HttpUpdateSM::handle_api_return()
#endif //INK_NO_TRANSFORM
case HttpTransact::PROXY_INTERNAL_CACHE_WRITE:
case HttpTransact::SERVER_READ:
- case HttpTransact::FTP_READ:
- {
- // If we are supposed to write the document to the cache,
- // do so. Otherwise something else happened. Probably,
- // a non 200 status code from the origin server, like
- // a gateway timeout. In that case, handle the
- // cache and declare an error
- if (t_state.cache_info.action == HttpTransact::CACHE_DO_WRITE ||
- t_state.cache_info.action == HttpTransact::CACHE_DO_REPLACE) {
- cb_event = HTTP_SCH_UPDATE_EVENT_WRITTEN;
-#ifndef INK_NO_FTP
- if (t_state.next_hop_scheme == URL_WKSIDX_FTP) {
- setup_ftp_transfer_to_cache_only();
- } else
-#endif //INK_NO_FTP
- {
- setup_server_transfer_to_cache_only();
- }
- tunnel.tunnel_run();
- } else {
- perform_cache_write_action();
- cb_event = HTTP_SCH_UPDATE_EVENT_ERROR;
- terminate_sm = true;
- }
- return;
- }
-
case HttpTransact::PROXY_INTERNAL_CACHE_NOOP:
case HttpTransact::PROXY_SEND_ERROR_CACHE_NOOP:
case HttpTransact::SERVE_FROM_CACHE:
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/README.via
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/README.via?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/README.via (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/README.via Fri Apr 30 03:14:19 2010
@@ -69,7 +69,7 @@
S cache hit, but expired
C cache hit, but config forces revalidate
U cache hit, but client forces revalidate (e.g. Pragma: no-cache)
- D cache hit, but method forces revalidated (e.g. ftp, not anonymous)
+ D cache hit, but method forces revalidated (e.g. not anonymous)
icp conn info
S connection opened successfully
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/TestUrl.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/TestUrl.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/TestUrl.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/TestUrl.cc Fri Apr 30 03:14:19 2010
@@ -60,13 +60,6 @@ create_url(const char *url_string)
// get specifics for this scheme
switch (url.getScheme()) {
- case URL_SCHEME_FTP:
- len = url.getFtpPath(buf, sizeof(buf));
- buf[len] = '\0';
- cout << "ftp path : " << buf << endl;
- cout << "ftp type : " << url.getFtpType() << endl;
- break;
-
case URL_SCHEME_NONE:
case URL_SCHEME_HTTP:
case URL_SCHEME_HTTPS:
@@ -122,9 +115,6 @@ test_marshal(URL * url)
main()
{
- //create_url("ftp://ivry:semel@ftp.inktomi.com/index.html");
- //create_url("/file://ftp.inktomi.com/index.html");
-// create_url("ftp://www.inktomi.com//index.html;type=I");
// test_marshal(create_url("http://ivry:semel@www.inktomi.com:8080/index.html;type=I?query=what#http_fragment"));
// create_url("http://www.inktomi.com/index.html;type=I#http_fragment");
create_url("www.microsoft.com/isapi/redir.dll?TARGET=%2Foffice%2Fmigration%2F&nonie3home&homepage&&&&headline1&1006");
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/remap/UrlRewrite.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/remap/UrlRewrite.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/remap/UrlRewrite.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/remap/UrlRewrite.cc Fri Apr 30 03:14:19 2010
@@ -1779,15 +1779,15 @@ UrlRewrite::BuildTable()
// Include support for HTTPS scheme
// includes support for FILE scheme
if ((fromScheme != URL_SCHEME_HTTP && fromScheme != URL_SCHEME_HTTPS &&
- fromScheme != URL_SCHEME_FTP && fromScheme != URL_SCHEME_FILE &&
+ fromScheme != URL_SCHEME_FILE &&
fromScheme != URL_SCHEME_RTSP && fromScheme != URL_SCHEME_TUNNEL &&
fromScheme != URL_SCHEME_MMS && fromScheme != URL_SCHEME_MMSU &&
fromScheme != URL_SCHEME_MMST) ||
(toScheme != URL_SCHEME_HTTP && toScheme != URL_SCHEME_HTTPS &&
- toScheme != URL_SCHEME_FTP && toScheme != URL_SCHEME_RTSP &&
+ toScheme != URL_SCHEME_RTSP &&
toScheme != URL_SCHEME_TUNNEL && toScheme != URL_SCHEME_MMS &&
toScheme != URL_SCHEME_MMSU && toScheme != URL_SCHEME_MMST)) {
- errStr = "Only http, https, ftp, rtsp, mms, and tunnel remappings are supported";
+ errStr = "Only http, https, rtsp, mms, and tunnel remappings are supported";
goto MAP_ERROR;
}
// Check if a tag is specified.
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/stats.memo
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/stats.memo?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/stats.memo (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/stats.memo Fri Apr 30 03:14:19 2010
@@ -12,8 +12,7 @@ Proxy Schems:
Name : SchemeEnabled
Type : A bit vector. a bit per scheme.
Who It Affects: HTTP Engine
- Comments : Current schemes are { HTTP, FTP }
- Future Schemes { GOPHER, HTTPS }
+ Comments : Current schemes are HTTP / HTTPS
Name : TunnelingEnabled
Type : boolean
@@ -194,7 +193,7 @@ Caching Policies:
Name : CachableSchemes
Type : A bit vector
Who It Affects: HTTP Engine
- Comments : which schemes to cache. HTTP, FTP, etc.
+ Comments : which schemes to cache. HTTP etc.
Name : CachableMimeTypes
Type : A bit vector
Modified: incubator/trafficserver/traffic/trunk/proxy/logging/Log.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logging/Log.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logging/Log.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logging/Log.cc Fri Apr 30 03:14:19 2010
@@ -602,7 +602,6 @@ Log::init_fields()
SQUID_LOG_ERR_NO_RELAY, "ERR_NO_RELAY",
SQUID_LOG_ERR_DISK_IO, "ERR_DISK_IO",
SQUID_LOG_ERR_ZERO_SIZE_OBJECT, "ERR_ZERO_SIZE_OBJECT",
- SQUID_LOG_ERR_FTP_DISABLED, "ERR_FTP_DISABLED",
SQUID_LOG_ERR_PROXY_DENIED, "ERR_PROXY_DENIED",
SQUID_LOG_ERR_WEBFETCH_DETECTED, "ERR_WEBFETCH_DETECTED",
SQUID_LOG_ERR_FUTURE_1, "ERR_FUTURE_1",
@@ -829,7 +828,6 @@ Log::init_fields()
Ptr<LogFieldAliasTable> entry_type_map = NEW(new LogFieldAliasTable);
entry_type_map->init(N_LOG_ENTRY_TYPES,
LOG_ENTRY_HTTP, "LOG_ENTRY_HTTP",
- LOG_ENTRY_FTP, "LOG_ENTRY_FTP",
LOG_ENTRY_ICP, "LOG_ENTRY_ICP", LOG_ENTRY_MIXT, "LOG_ENTRY_MIXT");
field = NEW(new LogField("log_entry_type", "etype",
LogField::sINT,
Modified: incubator/trafficserver/traffic/trunk/proxy/logging/LogAccess.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logging/LogAccess.h?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logging/LogAccess.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logging/LogAccess.h Fri Apr 30 03:14:19 2010
@@ -126,7 +126,6 @@
enum LogEntryType
{
LOG_ENTRY_HTTP = 0,
- LOG_ENTRY_FTP,
LOG_ENTRY_ICP,
LOG_ENTRY_MIXT,
N_LOG_ENTRY_TYPES
Modified: incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessHttp.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessHttp.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessHttp.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessHttp.cc Fri Apr 30 03:14:19 2010
@@ -172,47 +172,6 @@ LogAccessHttp::marshal_client_auth_user_
return len;
}
-/*-------------------------------------------------------------------------
- Private utility function to remove ftp password, if there is any
- Only return the size of the new url if buf is null.
- -------------------------------------------------------------------------*/
-int
-LogAccessHttp::remove_ftp_password(char *buf, const char *url_str, int url_str_len)
-{
- //INKqa09824
- if (m_url && url_str_len > 6 && memcmp(url_str, "ftp://", 6) == 0) {
- const char *pass_word = NULL;
- int pass_word_len = 0;
- int len1, len2;
-
- pass_word = m_url->password_get(&pass_word_len);
- if (pass_word != NULL && pass_word_len > 0) {
- pass_word = (const char *) memchr((void *) (url_str + 6), ':', url_str_len - 6);
- if (pass_word != NULL) {
- int size = url_str_len - pass_word_len + 6;
- int tsize = round_strlen(size + 1); // +1 for trailing 0
-
- // If buf is not null, perform the removing of the password,
- // otherwise, just return the size the new url would have been.
- if (buf != NULL) {
- char *new_url = (char *) xmalloc(tsize);
-
- len1 = (int) (pass_word - url_str + 1);
- len2 = (int) (url_str_len - len1 - pass_word_len);
- memcpy(new_url, url_str, len1);
- memcpy(new_url + len1, "*****", 5);
- memcpy(new_url + len1 + 5, url_str + len1 + pass_word_len, len2);
- new_url[size - 1] = '\0';
- marshal_mem(buf, new_url, size - 1, tsize);
- xfree(new_url);
- }
- return tsize;
- }
- }
- }
-
- return -1;
-}
/*-------------------------------------------------------------------------
Private utility function to validate m_client_req_unmapped_url_canon_str &
@@ -328,13 +287,9 @@ LogAccessHttp::marshal_client_req_http_m
int
LogAccessHttp::marshal_client_req_url(char *buf)
{
- int res;
int len = round_strlen(m_client_req_url_len + 1); // +1 for trailing 0
- //INKqa09824
- res = remove_ftp_password(buf, m_client_req_url_canon_str, m_client_req_url_canon_len);
- if (res > 0) {
- len = res;
- } else if (buf) {
+
+ if (buf) {
marshal_mem(buf, m_client_req_url_str, m_client_req_url_len, len);
}
return len;
@@ -346,13 +301,9 @@ LogAccessHttp::marshal_client_req_url(ch
int
LogAccessHttp::marshal_client_req_url_canon(char *buf)
{
- int res;
int len = round_strlen(m_client_req_url_canon_len + 1);
- //INKqa09824
- res = remove_ftp_password(buf, m_client_req_url_canon_str, m_client_req_url_canon_len);
- if (res > 0) {
- len = res;
- } else if (buf) {
+
+ if (buf) {
marshal_mem(buf, m_client_req_url_canon_str, m_client_req_url_canon_len, len);
}
return len;
@@ -368,13 +319,9 @@ LogAccessHttp::marshal_client_req_unmapp
validate_unmapped_url();
- int res;
int len = round_strlen(m_client_req_unmapped_url_canon_len + 1); // +1 for eos
- //INKqa09824
- res = remove_ftp_password(buf, m_client_req_unmapped_url_canon_str, m_client_req_unmapped_url_canon_len);
- if (res > 0) {
- len = res;
- } else if (buf) {
+
+ if (buf) {
marshal_mem(buf, m_client_req_unmapped_url_canon_str, m_client_req_unmapped_url_canon_len, len);
}
return len;
Modified: incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessHttp.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessHttp.h?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessHttp.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logging/LogAccessHttp.h Fri Apr 30 03:14:19 2010
@@ -149,7 +149,6 @@ private:
char *m_proxy_resp_content_type_str;
int m_proxy_resp_content_type_len;
- int remove_ftp_password(char *buf, const char *url_str, int url_str_len);
void validate_unmapped_url(void);
void validate_unmapped_url_path(void);
Modified: incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc Fri Apr 30 03:14:19 2010
@@ -2599,8 +2599,6 @@ LogConfig::read_xml_log_config(int from_
val_array[numValid++] = LOG_ENTRY_MIXT;
} else if (strcasecmp(t, "http") == 0) {
val_array[numValid++] = LOG_ENTRY_HTTP;
- } else if (strcasecmp(t, "ftp") == 0) {
- val_array[numValid++] = LOG_ENTRY_FTP;
}
}
@@ -2618,7 +2616,7 @@ LogConfig::read_xml_log_config(int from_
etype_field, LogFilter::ACCEPT, LogFilter::MATCH, numValid, val_array);
obj->add_filter(&protocol_filter);
}
- delete[]val_array;
+ delete[] val_array;
} else {
Warning("No value(s) in Protocol field of XML object, " "object will log all protocols.");
}
Modified: incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc Fri Apr 30 03:14:19 2010
@@ -62,7 +62,6 @@ int command_flag = 0;
int http_accept_port_number = 0;
int http_accept_file_descriptor = 0;
int remote_management_flag = 0;
-int ftp_accept_file_descriptor = -1;
int auto_clear_hostdb_flag = 0;
char proxy_name[256] = "unknown";
Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/AddConfigFilesHere.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/AddConfigFilesHere.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/AddConfigFilesHere.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/AddConfigFilesHere.cc Fri Apr 30 03:14:19 2010
@@ -110,9 +110,6 @@ initializeRegistry()
configFiles->addFile("partition.config", false);
configFiles->addFile("hosting.config", false);
configFiles->addFile("bypass.config", false);
- configFiles->addFile("ftp_remap.config", false);
- // INKqa10326
- //configFiles->addFile("ldapsrvr.config", false);
configFiles->addFile("congestion.config", false);
configFiles->addFile("plugin.config", false);
configFiles->addFile("ipnat.conf", false);
Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/AutoConf.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/AutoConf.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/AutoConf.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/AutoConf.cc Fri Apr 30 03:14:19 2010
@@ -45,7 +45,7 @@ static const char fileHead[] = "function
static const char checkProtocol[] =
- "\t// Make sure this a protcol we proxy\n\tif(!((url.substring(0,5) == \"http:\") ||\n\t\t(url.substring(0,4) == \"ftp:\") || \n\t\t(url.substring(0,6) == \"https:\"))) {\n\t\t return \"DIRECT\";\n\t}\n\n";
+ "\t// Make sure this a protcol we proxy\n\tif(!((url.substring(0,5) == \"http:\") || \n\t\t(url.substring(0,6) == \"https:\"))) {\n\t\t return \"DIRECT\";\n\t}\n\n";
/*
static const char checkProtocol[] = "\t// Make sure this a protcol we proxy\n\tif(!((url.substring(0,5) == \"http:\") || \n\t\t(url.substring(0,6) == \"https:\"))) {\n\t\t return \"DIRECT\";\n\t}\n\n";
Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseManager.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseManager.h?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseManager.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseManager.h Fri Apr 30 03:14:19 2010
@@ -92,7 +92,6 @@
#define MGMT_SIGNAL_LIBRECORDS 16
#define MGMT_SIGNAL_HTTP_CONGESTED_SERVER 20 /* Congestion control -- congested server */
#define MGMT_SIGNAL_HTTP_ALLEVIATED_SERVER 21 /* Congestion control -- alleviated server */
-#define MGMT_SIGNAL_FTP_ERROR 22
// Wireless (WDA) plugin signal
// Warning: 1. Don't change the # mapping 'cuase 3rd party software depends on them.
Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc Fri Apr 30 03:14:19 2010
@@ -307,19 +307,6 @@ BaseManager(), run_proxy(proxy_on), reco
pnum++;
}
}
- // Check to see if we are running FTP
- RecInt ftp_enabled = REC_readInteger("proxy.config.ftp.ftp_enabled", &found);
- ink_assert(found);
- if (found && ftp_enabled) {
- // Get the FTP port
- RecInt ftp_port = REC_readInteger("proxy.config.ftp.proxy_server_port", &found);
- ink_assert(found);
- if (found) {
- proxy_server_port[pnum] = (int) ftp_port;
- ink_strncpy((char *) proxy_server_port_attributes[pnum], "F", sizeof(proxy_server_port_attributes[pnum]));
- pnum++;
- }
- }
// Check to see if we are running DNS proxy
RecInt dns_proxy_enabled = REC_readInteger("proxy.config.dns.proxy.enabled", &found);
ink_assert(found);
@@ -808,10 +795,6 @@ LocalManager::handleMgmtMsgFromProcesses
alarm_keeper->signalAlarm(MGMT_ALARM_PROXY_HTTP_ALLEVIATED_SERVER, data_raw);
break;
// Congestion Control - end
- case MGMT_SIGNAL_FTP_ERROR:
- alarm_keeper->signalAlarm(MGMT_ALARM_PROXY_FTP_ERROR, data_raw);
- break;
- // Wireless plugin signal - begin
case INK_MGMT_SIGNAL_WDA_BILLING_CONNECTION_DIED:
alarm_keeper->signalAlarm(MGMT_ALARM_WDA_BILLING_CONNECTION_DIED, data_raw);
break;
Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc?rev=939548&r1=939547&r2=939548&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc Fri Apr 30 03:14:19 2010
@@ -1415,9 +1415,6 @@ fileUpdated(char *fname)
} else if (strcmp(fname, "splitdns.config") == 0) {
mgmt_log(stderr, "[fileUpdated] splitdns.config file has been modified\n");
- } else if (strcmp(fname, "ftp_remap.config") == 0) {
- lmgmt->signalFileChange("proxy.config.ftp.reverse_ftp_remap_file_name");
-
} else if (strcmp(fname, "plugin.config") == 0) {
mgmt_log(stderr, "[fileUpdated] plugin.config file has been modified\n");