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 2015/06/09 16:35:50 UTC
[5/7] trafficserver git commit: TS-3167 Eliminate the prefetch
feature, although leave the code ifdefed out
TS-3167 Eliminate the prefetch feature, although leave the code ifdefed out
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5f204944
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5f204944
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5f204944
Branch: refs/heads/master
Commit: 5f20494465f71f5315eee36186f4a5f0b8d369c3
Parents: c7b2e7d
Author: Leif Hedstrom <zw...@apache.org>
Authored: Mon Jun 8 15:51:41 2015 -0600
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Tue Jun 9 08:16:18 2015 -0600
----------------------------------------------------------------------
cmd/traffic_manager/AddConfigFilesHere.cc | 1 -
cmd/traffic_manager/traffic_manager.cc | 2 -
example/Makefile.am | 1 -
example/prefetch/prefetch-plugin-eg1.c | 85 ---------
example/prefetch/readme.txt | 26 ---
example/prefetch/test-hns-plugin.c | 245 -------------------------
lib/perl/lib/Apache/TS/AdminClient.pm | 12 --
mgmt/RecordsConfig.cc | 25 ---
proxy/Makefile.am | 3 -
proxy/api/ts/experimental.h | 117 ------------
proxy/config/Makefile.am | 1 -
proxy/config/prefetch.config.default | 58 ------
12 files changed, 576 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/cmd/traffic_manager/AddConfigFilesHere.cc
----------------------------------------------------------------------
diff --git a/cmd/traffic_manager/AddConfigFilesHere.cc b/cmd/traffic_manager/AddConfigFilesHere.cc
index 6482d26..ea9066b 100644
--- a/cmd/traffic_manager/AddConfigFilesHere.cc
+++ b/cmd/traffic_manager/AddConfigFilesHere.cc
@@ -85,6 +85,5 @@ initializeRegistry()
configFiles->addFile("splitdns.config", false);
configFiles->addFile("ssl_multicert.config", false);
configFiles->addFile("stats.config.xml", false);
- configFiles->addFile("prefetch.config", false);
configFiles->registerCallback(testcall);
}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/cmd/traffic_manager/traffic_manager.cc
----------------------------------------------------------------------
diff --git a/cmd/traffic_manager/traffic_manager.cc b/cmd/traffic_manager/traffic_manager.cc
index 974a00b..5516a42 100644
--- a/cmd/traffic_manager/traffic_manager.cc
+++ b/cmd/traffic_manager/traffic_manager.cc
@@ -928,8 +928,6 @@ fileUpdated(char *fname, bool incVersion)
mgmt_log(stderr, "[fileUpdated] stats.config.xml file has been modified\n");
} else if (strcmp(fname, "congestion.config") == 0) {
lmgmt->signalFileChange("proxy.config.http.congestion_control.filename");
- } else if (strcmp(fname, "prefetch.config") == 0) {
- lmgmt->signalFileChange("proxy.config.prefetch.config_file");
} else {
mgmt_elog(stderr, 0, "[fileUpdated] Unknown config file updated '%s'\n", fname);
}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/example/Makefile.am
----------------------------------------------------------------------
diff --git a/example/Makefile.am b/example/Makefile.am
index db09497..835f218 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -83,6 +83,5 @@ ssl_sni_whitelist_la_SOURCES = ssl-sni-whitelist/ssl-sni-whitelist.cc
# The following examples do not build:
#
-# prefetch_eg1_la_SOURCES = prefetch/prefetch-plugin-eg1.c
# redirect_1_la_SOURCES = redirect-1/redirect-1.c
# session_1_la_SOURCES = session-1/session-1.c
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/example/prefetch/prefetch-plugin-eg1.c
----------------------------------------------------------------------
diff --git a/example/prefetch/prefetch-plugin-eg1.c b/example/prefetch/prefetch-plugin-eg1.c
deleted file mode 100644
index 61d7a21..0000000
--- a/example/prefetch/prefetch-plugin-eg1.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/** @file
-
- A brief file description
-
- @section license License
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-/*
- prefetch-plugin-eg1.c : an example plugin which interacts with
- Traffic Server's prefetch feature
-
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <ts/ts.h>
-#include <ts/experimental.h>
-
-TSPrefetchReturnCode
-my_preparse_hook(TSPrefetchHookID hook, TSPrefetchInfo *info)
-{
- unsigned char *ip = (unsigned char *)&info->client_ip;
-
- printf("preparse hook (%d): request from child %u.%u.%u.%u\n", hook, ip[0], ip[1], ip[2], ip[3]);
-
-
- /* we will let TS parse the page */
- return TS_PREFETCH_CONTINUE;
-}
-
-TSPrefetchReturnCode
-my_embedded_url_hook(TSPrefetchHookID hook, TSPrefetchInfo *info)
-{
- unsigned char *ip = (unsigned char *)&info->client_ip;
-
- printf("url hook (%d): url: %s %s child: %u.%u.%u.%u\n", hook, info->embedded_url,
- (info->present_in_cache) ? "(present in cache)" : "", ip[0], ip[1], ip[2], ip[3]);
-
- /*
- We will select UDP for sending url and TCP for sending object
- */
-
- info->url_proto = TS_PREFETCH_PROTO_UDP;
- info->url_response_proto = TS_PREFETCH_PROTO_TCP;
-
- /* we can return TS_PREFETCH_DISCONTINUE if we dont want TS to prefetch
- this url */
-
- return TS_PREFETCH_CONTINUE;
-}
-
-
-void
-TSPluginInit(int argc, const char *argv[])
-{
- TSPluginRegistrationInfo info;
-
- info.plugin_name = "prefetch_plugin_eg1";
- info.vendor_name = "MyCompany";
- info.support_email = "ts-api-support@MyCompany.com";
-
- if (TSPluginRegister(TS_SDK_VERSION_3_0, &info) != TS_SUCCESS) {
- TSError("Plugin registration failed.\n");
- }
-
- /* register our hooks */
- TSPrefetchHookSet(TS_PREFETCH_PRE_PARSE_HOOK, &my_preparse_hook);
- TSPrefetchHookSet(TS_PREFETCH_EMBEDDED_URL_HOOK, &my_embedded_url_hook);
-}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/example/prefetch/readme.txt
----------------------------------------------------------------------
diff --git a/example/prefetch/readme.txt b/example/prefetch/readme.txt
deleted file mode 100644
index f7d1d8a..0000000
--- a/example/prefetch/readme.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-The test-hns-plugin tests the Parent Traffic Server handling of parse/prefetch
-rules. It prints information to 'stdout' at various stages to verify the
-correctness of the parse/prefetch module. It has the following options:
-
--p. If 0, the plugin returns INK_PREFETCH_DISCONTINUE when called at the
- INK_PREFETCH_PRE_PARSE_HOOK. If 1, the plugin returns
- INK_PREFETCH_CONTINUE.
-
--u. If 0, the plugin returns INK_PREFETCH_DISCONTINUE when called at the
- INK_PREFETCH_EMBEDDED_URL_HOOK. If 1, the plugin returns
- INK_PREFETCH_CONTINUE.
-
--o. If 1, the plugin sets 'object_buf_status' field in the INKPrefetchInfo to
- INK_PREFETCH_OBJ_BUF_NEEDED and expects to be called back with the object.
-
--i. If 0, the plugin sets the 'url_response_proto' field in the
- INKPrefetchInfo to INK_PREFETCH_PROTO_UDP. If 1, it sets the
- 'url_response_proto' field to INK_PREFETCH_PROTO_TCP.
-
--d. Specifies the directory where the plugin will store all the prefetched
- objects. All prefetched objects are stored in the PkgPreload format in
- the 'prefetched.objects' file in this directory.
-
-
-
-
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/example/prefetch/test-hns-plugin.c
----------------------------------------------------------------------
diff --git a/example/prefetch/test-hns-plugin.c b/example/prefetch/test-hns-plugin.c
deleted file mode 100644
index 7d33b44..0000000
--- a/example/prefetch/test-hns-plugin.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/** @file
-
- A brief file description
-
- @section license License
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
-
-/*
- prefetch-plugin-eg1.c : an example plugin which interacts with
- Traffic Server's prefetch feature
-
-*/
-
-/*
-This plugin tests the Parent Traffic Server handling of parse/prefetch
-rules. It prints information to 'stdout' at various stages to verify the
-correctness of the parse/prefetch module. It has the following options:
-
--p. If 0, the plugin returns TS_PREFETCH_DISCONTINUE when called at the
- TS_PREFETCH_PRE_PARSE_HOOK. If 1, the plugin returns
- TS_PREFETCH_CONTINUE.
-
--u. If 0, the plugin returns TS_PREFETCH_DISCONTINUE when called at the
- TS_PREFETCH_EMBEDDED_URL_HOOK. If 1, the plugin returns
- TS_PREFETCH_CONTINUE.
-
--o. If 1, the plugin sets 'object_buf_status' field in the TSPrefetchInfo to
- TS_PREFETCH_OBJ_BUF_NEEDED and expects to be called back with the object.
- If 2, this field is set to TS_PREFETCH_OBJ_BUF_NEEDED_N_TRANSMITTED
- which implies the object is transmitted to the child as well.
-
--i. If 0, the plugin sets the 'url_response_proto' field in the
- TSPrefetchInfo to TS_PREFETCH_PROTO_UDP. If 1, it sets the
- 'url_response_proto' field to TS_PREFETCH_PROTO_TCP.
-
--d. Specifies the directory where the plugin will store all the prefetched
- objects. All prefetched objects are stored in the PkgPreload format in
- the 'prefetched.objects' file in this directory.
-
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <getopt.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <ts/ts.h>
-#include <ts/experimental.h>
-
-/* We will register the following two hooks */
-
-#define TAG "test-hns-plugin"
-
-TSFile filep1 = NULL;
-static int pre_parse_cont = 0;
-static int embedded_url_cont = 0;
-static int url_proto = 0;
-static int embedded_object = 0;
-
-static TSMutex file_write_mutex;
-
-
-TSPrefetchReturnCode
-embedded_object_hook(TSPrefetchHookID hook, TSPrefetchInfo *info)
-{
- TSIOBufferBlock block;
- const char *block_start;
- int64_t block_avail, total_avail;
-
- TSMutexLock(file_write_mutex);
-
- printf("(%s) >>> TS_PREFETCH_EMBEDDED_OBJECT_HOOK (%d)\n", TAG, hook);
-
- printf("(%s) \tobject size for: %s is %lld\n", TAG, info->embedded_url,
- (long long)TSIOBufferReaderAvail(info->object_buf_reader));
-
- /* Get the embedded objects here */
- total_avail = TSIOBufferReaderAvail(info->object_buf_reader);
-
- printf("(%s) >>> TSIOBufferReaderAvail returns %lld\n", TAG, (long long)total_avail);
-
- block = TSIOBufferReaderStart(info->object_buf_reader);
- while (block) {
- block_start = TSIOBufferBlockReadStart(block, info->object_buf_reader, &block_avail);
-
- if (block_avail == 0) {
- break;
- }
-
- /* Put the object fragment into the file */
- TSfwrite(filep1, block_start, block_avail);
- TSfflush(filep1);
- TSIOBufferReaderConsume(info->object_buf_reader, block_avail);
- block = TSIOBufferReaderStart(info->object_buf_reader);
- }
-
-
- TSIOBufferDestroy(info->object_buf);
-
- TSMutexUnlock(file_write_mutex);
-
- return 0;
-}
-
-TSPrefetchReturnCode
-embedded_url_hook(TSPrefetchHookID hook, TSPrefetchInfo *info)
-{
- unsigned char *ip = (unsigned char *)&info->client_ip;
-
- printf("(%s) >>> TS_PREFETCH_EMBEDDED_URL_HOOK (%d)\n", TAG, hook);
-
- printf("(%s) \tURL: %s %s Child IP: %u.%u.%u.%u\n", TAG, info->embedded_url, (info->present_in_cache) ? "(present in cache)" : "",
- ip[0], ip[1], ip[2], ip[3]);
-
- /* We will select UDP for sending url and TCP for sending object */
- if (embedded_object)
- info->object_buf_status = (embedded_object == 1) ? TS_PREFETCH_OBJ_BUF_NEEDED : TS_PREFETCH_OBJ_BUF_NEEDED_N_TRANSMITTED;
- if (url_proto)
- info->url_response_proto = TS_PREFETCH_PROTO_TCP;
- else
- info->url_response_proto = TS_PREFETCH_PROTO_UDP;
-
-
- if (!embedded_url_cont) {
- /* This will cause parent TS not to parse the HTML page */
- printf("(%s) \tPlugin returns - TS_PREFETCH_DISCONTINUE\n", TAG);
- return TS_PREFETCH_DISCONTINUE;
-
- } else {
- /* This will cause TS (MDE plugin) to prefetch the URL */
- printf("(%s) \tURL Response Protocol: %s\n", TAG,
- (info->url_response_proto == TS_PREFETCH_PROTO_TCP) ? "TS_PREFETCH_PROTO_TCP" : "TS_PREFETCH_PROTO_UDP");
- printf("(%s) \tPlugin returns - TS_PREFETCH_CONTINUE\n", TAG);
- return TS_PREFETCH_CONTINUE;
- }
-}
-
-
-TSPrefetchReturnCode
-pre_parse_hook(TSPrefetchHookID hook, TSPrefetchInfo *info)
-{
- unsigned char *ip = (unsigned char *)&info->client_ip;
-
- printf("(%s) >>> TS_PREFETCH_PRE_PARSE_HOOK (%d)\n", TAG, hook);
-
- printf("(%s) \tChild IP : %u.%u.%u.%u\n", TAG, ip[0], ip[1], ip[2], ip[3]);
-
- if (!pre_parse_cont) {
- /* This will cause parent TS not to parse the HTML page */
- printf("(%s) \tPlugin returns - TS_PREFETCH_DISCONTINUE\n", TAG);
- return TS_PREFETCH_DISCONTINUE;
-
- } else {
- /* we will let TS parse the page */
- printf("(%s) \tPlugin returns - TS_PREFETCH_CONTINUE\n", TAG);
- return TS_PREFETCH_CONTINUE;
- }
-}
-
-
-void
-TSPluginInit(int argc, const char *argv[])
-{
- int c, arg;
- extern char *optarg;
- TSPluginRegistrationInfo plugin_info;
- char file_name[512] = {0};
- plugin_info.plugin_name = "test-prefetch";
- plugin_info.vendor_name = "MyCompany";
- plugin_info.support_email = "ts-api-support@MyCompany.com";
-
- if (TSPluginRegister(TS_SDK_VERSION_3_0, &plugin_info) != TS_SUCCESS) {
- TSError("Plugin registration failed.\n");
- return;
- }
-
- while ((c = getopt(argc, (char *const *)argv, "p:u:i:o:d:")) != EOF) {
- switch (c) {
- case 'p':
- case 'u':
- case 'i':
- case 'o':
- if (!strcmp(optarg, "0"))
- arg = 0;
- else if (!strcmp(optarg, "1"))
- arg = 1;
- else if (!strcmp(optarg, "2"))
- arg = 2;
- else {
- TSError("Invalid argument specified for option: %c\n", c);
- return;
- }
- if (c == 'p')
- pre_parse_cont = arg;
- else if (c == 'u')
- embedded_url_cont = arg;
- else if (c == 'i')
- url_proto = arg;
- else
- embedded_object = arg;
- break;
-
- case 'd':
- sprintf(file_name, "%s/prefetched.objects", optarg);
- break;
- case '?':
- TSError("Invalid argument specified\n");
- return;
- }
- }
-
- if (embedded_object) {
- filep1 = TSfopen(file_name, "w");
- if (!filep1) {
- TSError("Cannot open file %s for writing\n", file_name);
- return;
- }
- TSfwrite(filep1, "", 1);
- TSfflush(filep1);
-
- file_write_mutex = TSMutexCreate();
- }
-
- /* register our hooks */
- TSPrefetchHookSet(TS_PREFETCH_PRE_PARSE_HOOK, &pre_parse_hook);
- TSPrefetchHookSet(TS_PREFETCH_EMBEDDED_URL_HOOK, &embedded_url_hook);
- TSPrefetchHookSet(TS_PREFETCH_EMBEDDED_OBJECT_HOOK, &embedded_object_hook);
-}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/lib/perl/lib/Apache/TS/AdminClient.pm
----------------------------------------------------------------------
diff --git a/lib/perl/lib/Apache/TS/AdminClient.pm b/lib/perl/lib/Apache/TS/AdminClient.pm
index 226268f..3984627 100644
--- a/lib/perl/lib/Apache/TS/AdminClient.pm
+++ b/lib/perl/lib/Apache/TS/AdminClient.pm
@@ -645,18 +645,6 @@ The Apache Traffic Server Administration Manual will explain what these strings
proxy.config.ping.npacks_to_trans
proxy.config.ping.timeout_sec
proxy.config.plugin.plugin_dir
- proxy.config.prefetch.child_port
- proxy.config.prefetch.config_file
- proxy.config.prefetch.default_data_proto
- proxy.config.prefetch.default_url_proto
- proxy.config.prefetch.keepalive_timeout
- proxy.config.prefetch.max_object_size
- proxy.config.prefetch.max_recursion
- proxy.config.prefetch.prefetch_enabled
- proxy.config.prefetch.push_cached_objects
- proxy.config.prefetch.redirection
- proxy.config.prefetch.url_buffer_size
- proxy.config.prefetch.url_buffer_timeout
proxy.config.process_manager.enable_mgmt_port
proxy.config.process_manager.mgmt_port
proxy.config.process_manager.timeout
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/mgmt/RecordsConfig.cc
----------------------------------------------------------------------
diff --git a/mgmt/RecordsConfig.cc b/mgmt/RecordsConfig.cc
index 51dfa0f..9377fbd 100644
--- a/mgmt/RecordsConfig.cc
+++ b/mgmt/RecordsConfig.cc
@@ -2017,31 +2017,6 @@ static const RecordElement RecordsConfig[] =
{RECT_LOCAL, "proxy.local.log.collation_mode", RECD_INT, "0", RECU_DYNAMIC, RR_NULL, RECC_INT, "[0-4]", RECA_NULL}
,
- //#Prefetch configuration
- {RECT_CONFIG, "proxy.config.prefetch.prefetch_enabled", RECD_INT, "0", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.child_port", RECD_INT, "39679", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.config_file", RECD_STRING, "prefetch.config", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.url_buffer_size", RECD_INT, "0", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.url_buffer_timeout", RECD_INT, "0", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.keepalive_timeout", RECD_INT, "900", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.push_cached_objects", RECD_INT, "1", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.default_url_proto", RECD_STRING, "tcp", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.default_data_proto", RECD_STRING, "tcp", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.max_object_size", RECD_INT, "1000000000", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.max_recursion", RECD_INT, "0", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
- {RECT_CONFIG, "proxy.config.prefetch.redirection", RECD_INT, "0", RECU_NULL, RR_NULL, RECC_NULL, NULL, RECA_NULL}
- ,
//# Librecords based stats system (new as of v2.1.3)
{RECT_CONFIG, "proxy.config.stat_api.max_stats_allowed", RECD_INT, "256", RECU_RESTART_TS, RR_NULL, RECC_INT, "[256-1000]", RECA_NULL}
,
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/proxy/Makefile.am
----------------------------------------------------------------------
diff --git a/proxy/Makefile.am b/proxy/Makefile.am
index 4fdc49f..50fd902 100644
--- a/proxy/Makefile.am
+++ b/proxy/Makefile.am
@@ -170,8 +170,6 @@ traffic_server_SOURCES = \
Plugin.h \
PluginVC.cc \
PluginVC.h \
- Prefetch.cc \
- Prefetch.h \
ProtocolProbeSessionAccept.cc \
ProtocolProbeSessionAccept.h \
ProxyClientSession.cc \
@@ -292,7 +290,6 @@ traffic_sac_SOURCES = \
PluginVC.cc \
AbstractBuffer.cc \
Transform.cc \
- Prefetch.cc \
ProtocolProbeSessionAccept.cc \
ProtocolProbeSessionAccept.h \
ProxyClientSession.cc \
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/proxy/api/ts/experimental.h
----------------------------------------------------------------------
diff --git a/proxy/api/ts/experimental.h b/proxy/api/ts/experimental.h
index 4d1d6c9..15f0f6e 100644
--- a/proxy/api/ts/experimental.h
+++ b/proxy/api/ts/experimental.h
@@ -489,123 +489,6 @@ tsapi TSClusterRPCMsg_t *TSAllocClusterRPCMsg(TSClusterRPCHandle_t *h, int data_
tsapi int TSSendClusterRPC(TSNodeHandle_t *nh, TSClusterRPCMsg_t *msg);
-/*
- This is for the prefetch APIs, this really has to be cleaned out. This is
- some pretty seriously broken stuff, and we should decide whether it should
- die and be redone properly. A few of the issues include:
-
- * The hooks are not normal ATS continuations, just plain callbacks.
- * The hooks are therefore not registered the normal way either...
- * And thusly, there can only be one callback for each of the three
- Prefetch "hooks".
- * The example plugins don't compile, there are old / missing pieces.
-*/
-
-typedef enum {
- TS_PREFETCH_UDP_BLAST = 0,
- TS_PREFETCH_TCP_BLAST,
- TS_PREFETCH_MULTICAST_BLAST,
-} TSPrefetchBlastType;
-
-typedef struct {
- TSPrefetchBlastType type;
- struct sockaddr_storage ip;
-} TSPrefetchBlastData;
-
-typedef enum {
- TS_PREFETCH_OBJ_BUF_NOT_NEEDED = 0,
- TS_PREFETCH_OBJ_BUF_NEEDED, /* The user wants the buffer but does not
- want it to be transmitted to the child */
- TS_PREFETCH_OBJ_BUF_NEEDED_N_TRANSMITTED /* The object should
- be transmitted as well */
-} TSPrefetchStatus;
-
-/* return type for TSPrefetchHook */
-typedef enum {
- TS_PREFETCH_CONTINUE,
- TS_PREFETCH_DISCONTINUE,
-} TSPrefetchReturnCode;
-
-
-/* prefetch hooks, which are *not* normal hooks (no continuations) */
-typedef enum {
- TS_PREFETCH_PRE_PARSE_HOOK,
- /* This hook is invoked just before we begin to parse a document
- request and response headers are available.
- Return value: TS_PREFETCH_CONTINUE :continue parsing
- TS_PREFETCH_DISCONTIUE: don't bother parser
- */
-
- TS_PREFETCH_EMBEDDED_URL_HOOK,
- /* This hook is invoked when a URL is extracted.
- url_proto and url_response_proto contain the default protocols used
- for sending the url and actual url object respectively to the child.
- The hook can change thes to one of the 3 methods mentioned above.
- Return value: TS_PREFETCH_CONTINUE : prefetch this url.
- TS_PREFETCH_DISCONTIUE: don't bother prefetching this
- url
- */
-
- TS_PREFETCH_EMBEDDED_OBJECT_HOOK
- /* This hook is invoked when the user wants to have access to the buffer
- of the embedded object we prefetched. We pass in the buffer reader.
- The reader contains the data in the format specified in the Prefetch
- document (with 12 byte header etc).
- It is the users responsibility to free the reader.
- The only valid field in the PrefetchInfo structure object_buf_reader.
- embedded_url, object_buf, object_buf_reader, and object_buf_status are
- set in TSPrefetchInfo passed as arguments
- */
-} TSPrefetchHookID;
-
-
-/* This holds the main Prefetch information as used by the hook callbacks. */
-typedef struct {
- /*request header */
- TSMBuffer request_buf;
- TSMLoc request_loc;
-
- /*response header */
- TSMBuffer response_buf;
- TSMLoc response_loc;
-
- /*child ip addr in network order */
- struct sockaddr_storage client_ip;
-
- /*the embedded url parsed by the parser */
- const char *embedded_url;
-
- /* flag which says if a perticular embedded url is present in the cache */
- int present_in_cache;
-
- /* Reader for the buffer which contains the prefetched object */
- TSIOBuffer object_buf;
- TSIOBufferReader object_buf_reader;
-
- /* This specifies if we need to invoke the OBJECT_HOOK and whether we
- need to send the buffer to child as well
- This should set inside EMBEDDED_URL_HOOK by the user
- */
- int object_buf_status;
-
- /** Method of sending data to child.
-
- If set to @c MULTICAST_BLAST then the corresponding address
- value must be set to a multicast address to use.
- */
- TSPrefetchBlastData url_blast;
- TSPrefetchBlastData url_response_blast;
-
-} TSPrefetchInfo;
-
-typedef TSPrefetchReturnCode (*TSPrefetchHook)(TSPrefetchHookID hook, TSPrefetchInfo *prefetch_info);
-
-/* Registers a hook for the given hook_no.
- A hook is already present, it is replace by hook_fn
- return value 0 indicates success */
-tsapi int TSPrefetchHookSet(int hook_no, TSPrefetchHook hook_fn);
-
-
/**
* Extended FetchSM's AIPs
*/
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/proxy/config/Makefile.am
----------------------------------------------------------------------
diff --git a/proxy/config/Makefile.am b/proxy/config/Makefile.am
index 4266dae..9e654d7 100644
--- a/proxy/config/Makefile.am
+++ b/proxy/config/Makefile.am
@@ -38,7 +38,6 @@ dist_sysconf_DATA = \
parent.config.default \
volume.config.default \
plugin.config.default \
- prefetch.config.default \
remap.config.default \
socks.config.default \
splitdns.config.default \
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5f204944/proxy/config/prefetch.config.default
----------------------------------------------------------------------
diff --git a/proxy/config/prefetch.config.default b/proxy/config/prefetch.config.default
deleted file mode 100644
index 75f8df9..0000000
--- a/proxy/config/prefetch.config.default
+++ /dev/null
@@ -1,58 +0,0 @@
-#prefetch.config
-#example configuration file for prefetch.
-#
-# You need to have following line in records.config file to enable Prefetch
-# feature
-# CONFIG proxy.config.prefetch.prefetch_enabled INT 1
-#
-#In this file we need to specify Traffic Server child node ip addresses.
-#Prefetch will be applied to requests from those ip addresses:
-#
-# eg:
-# prefetch_children 10.0.0.0 - 10.255.255.255, 216.1.2.3
-
-#Providing separate set of html tags for parsing:
-#
-#There is already a default set of tags which is used by the Prefetch parser.
-#If you don't provide any tags, these default tags will be used. If you provide
-#even one html tag pair, only the html tag pairs provided here will be used. None
-#of the tags in the default set is used:
-# Format:
-# each line should of the form:
-#
-# html_tag tag attr
-#
-# or
-#
-# html_tag tag attr filter_attr filter_value
-#
-# where 'tag' represents the HTML tag and 'attr' represents the name of the attribute
-# whose value gives the embedded object.
-#
-# The second form allows to specify the name of a filter attribute 'filter_attr' and
-# the value 'filter_value' that it must match for the embedded object to be prefetched.
-#
-# eg: <img height=10 width=10 src="http://www.example.com/images/1.gif">
-# here, tag is "img" and attr is "src"
-# so the line would be:
-# html_tag img src
-#
-# eg: <link rel="stylesheet" type="text/css" href="example.css">
-# here, tag is "link" and attr is "href"
-# an specifying filter_tag as "rel" and filter_value as "stylesheet" enables to
-# prefetch only cascading style sheet links.
-# so the line would be:
-# html_tag link href rel stylesheet
-
-#the following pairs are part of default set of tags used. You could uncomment these and
-#add more if necessary:
-
-# html_tag img src
-# html_tag body background
-# html_tag frame src
-# html_tag fig src
-# html_tag applet code
-# html_tag script src
-# html_tag embed src
-# html_tag td background
-