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 2014/01/21 00:07:57 UTC
[18/50] git commit: [TS-2489] Fix esi plugin problem with contents in
comments output twice when the node list is cached
[TS-2489] Fix esi plugin problem with contents in comments output twice when the node list is cached
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/793331a3
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/793331a3
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/793331a3
Branch: refs/heads/5.0.x
Commit: 793331a31f20c7980fae062a5e803dff29f9e7e9
Parents: 0ef2f54
Author: Yu Qing <zh...@taobao.com>
Authored: Sat Jan 11 22:53:26 2014 -0800
Committer: Kit Chan <ki...@apache.org>
Committed: Sat Jan 11 22:53:26 2014 -0800
----------------------------------------------------------------------
CHANGES | 4 ++++
plugins/experimental/esi/lib/EsiProcessor.cc | 9 +++++++--
plugins/experimental/esi/lib/EsiProcessor.h | 1 +
3 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/793331a3/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 85a5ce6..5d575e5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 4.2.0
+ *) [TS-2489] Fix esi plugin problem with contents in comments output
+ twice when the node list is cached.
+ Author: Yu Qing <zh...@taobao.com>
+
*) [TS-2336] First attempt at moving the Prefetch APIs into some usable
state. There's still work to be done here, but separate bugs for that.
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/793331a3/plugins/experimental/esi/lib/EsiProcessor.cc
----------------------------------------------------------------------
diff --git a/plugins/experimental/esi/lib/EsiProcessor.cc b/plugins/experimental/esi/lib/EsiProcessor.cc
index 96a647e..3ece0f4 100644
--- a/plugins/experimental/esi/lib/EsiProcessor.cc
+++ b/plugins/experimental/esi/lib/EsiProcessor.cc
@@ -47,7 +47,10 @@ EsiProcessor::EsiProcessor(const char *debug_tag, const char *parser_debug_tag,
_n_processed_nodes(0),
_n_processed_try_nodes(0),
_overall_len(0),
- _fetcher(fetcher), _esi_vars(variables),
+ _fetcher(fetcher),
+ _reqAdded(false),
+ _usePackedNodeList(false),
+ _esi_vars(variables),
_expression(expression_debug_tag, debug_func, error_func, _esi_vars), _n_try_blocks_processed(0),
_handler_manager(handler_mgr) {
}
@@ -59,6 +62,7 @@ EsiProcessor::start() {
stop();
}
_curr_state = PARSING;
+ _usePackedNodeList = false;
return true;
}
@@ -123,6 +127,7 @@ EsiProcessor::usePackedNodeList(const char *data, int data_len) {
error();
return UNPACK_FAILURE;
}
+ _usePackedNodeList = true;
return _handleParseComplete() ? PROCESS_SUCCESS : PROCESS_FAILURE;
}
@@ -715,7 +720,7 @@ EsiProcessor::_preprocess(DocNodeList &node_list, int &n_prescanned_nodes) {
_debugLog(_debug_tag, "[%s] handled try node successfully", __FUNCTION__);
break;
case DocNode::TYPE_HTML_COMMENT:
- if (!_handleHtmlComment(list_iter)) {
+ if (!_usePackedNodeList && !_handleHtmlComment(list_iter)) {
_errorLog("[%s] Failed to preprocess try node", __FUNCTION__);
return false;
}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/793331a3/plugins/experimental/esi/lib/EsiProcessor.h
----------------------------------------------------------------------
diff --git a/plugins/experimental/esi/lib/EsiProcessor.h b/plugins/experimental/esi/lib/EsiProcessor.h
index b4f7309..16004c6 100644
--- a/plugins/experimental/esi/lib/EsiProcessor.h
+++ b/plugins/experimental/esi/lib/EsiProcessor.h
@@ -123,6 +123,7 @@ private:
EsiLib::StringHash _include_urls;
bool _reqAdded;
+ bool _usePackedNodeList;
bool _processEsiNode(const EsiLib::DocNodeList::iterator &iter);
bool _handleParseComplete();