You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by br...@apache.org on 2014/03/12 23:08:13 UTC
[5/5] git commit: [TS-2631] Header_rewrite add SkipRemap operator
[TS-2631] Header_rewrite add SkipRemap operator
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5701441b
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5701441b
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5701441b
Branch: refs/heads/master
Commit: 5701441b6d329d652f557091fe5996df978faaa1
Parents: 9f7afd8
Author: Brian Geffon <br...@apache.org>
Authored: Wed Mar 12 14:58:20 2014 -0700
Committer: Brian Geffon <br...@apache.org>
Committed: Wed Mar 12 14:58:20 2014 -0700
----------------------------------------------------------------------
plugins/header_rewrite/factory.cc | 2 ++
plugins/header_rewrite/operators.cc | 18 ++++++++++++++++++
plugins/header_rewrite/operators.h | 19 +++++++++++++++++++
3 files changed, 39 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5701441b/plugins/header_rewrite/factory.cc
----------------------------------------------------------------------
diff --git a/plugins/header_rewrite/factory.cc b/plugins/header_rewrite/factory.cc
index 208d42a..66087fc 100644
--- a/plugins/header_rewrite/factory.cc
+++ b/plugins/header_rewrite/factory.cc
@@ -51,6 +51,8 @@ operator_factory(const std::string& op)
o = new OperatorSetRedirect();
} else if (op == "timeout-out") {
o = new OperatorSetTimeoutOut();
+ } else if (op == "skip-remap") {
+ o = new OperatorSkipRemap();
} else if (op == "no-op") {
o = new OperatorNoOp();
} else if (op == "counter") {
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5701441b/plugins/header_rewrite/operators.cc
----------------------------------------------------------------------
diff --git a/plugins/header_rewrite/operators.cc b/plugins/header_rewrite/operators.cc
index 086a316..6d062dd 100644
--- a/plugins/header_rewrite/operators.cc
+++ b/plugins/header_rewrite/operators.cc
@@ -364,6 +364,24 @@ OperatorSetTimeoutOut::exec(const Resources& res) const
}
}
+// OperatorSkipRemap
+void
+OperatorSkipRemap::initialize(Parser& p)
+{
+ Operator::initialize(p);
+
+ if (p.get_arg() == "1" || p.get_arg() == "true") {
+ _skip_remap = true;
+ }
+}
+
+void
+OperatorSkipRemap::exec(const Resources& res) const
+{
+ TSDebug(PLUGIN_NAME, "OperatorSkipRemap::exec() skipping remap: %s", _skip_remap ? "True" : "False");
+ TSSkipRemappingSet(res.txnp, _skip_remap ? 1 : 0);
+}
+
// OperatorRMHeader
void
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5701441b/plugins/header_rewrite/operators.h
----------------------------------------------------------------------
diff --git a/plugins/header_rewrite/operators.h b/plugins/header_rewrite/operators.h
index 6ab67ff..57d6608 100644
--- a/plugins/header_rewrite/operators.h
+++ b/plugins/header_rewrite/operators.h
@@ -185,6 +185,25 @@ private:
Value _timeout;
};
+class OperatorSkipRemap : public Operator
+{
+public:
+ OperatorSkipRemap()
+ : _skip_remap(false)
+ {
+ TSDebug(PLUGIN_NAME_DBG, "Calling CTOR for OperatorSkipRemap");
+ }
+ void initialize(Parser& p);
+
+protected:
+ void exec(const Resources& res) const;
+
+private:
+ DISALLOW_COPY_AND_ASSIGN(OperatorSkipRemap);
+
+ bool _skip_remap;
+};
+
// All the header operators share a base class
class OperatorRMHeader : public OperatorHeaders