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/27 19:43:08 UTC

[3/6] git commit: Patch for TS-2667 atscppapi: Allow intercept plugins to access request headers object

Patch for TS-2667 atscppapi: Allow intercept plugins to access request headers object


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/5994228b
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/5994228b
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/5994228b

Branch: refs/heads/master
Commit: 5994228bdab3fa704eb74fc5e26896166254ca88
Parents: 521b6e1
Author: Manjesh Nilange <ma...@yahoo.com>
Authored: Wed Mar 26 17:21:46 2014 -0700
Committer: Manjesh Nilange <ma...@yahoo.com>
Committed: Wed Mar 26 17:21:46 2014 -0700

----------------------------------------------------------------------
 lib/atscppapi/src/InterceptPlugin.cc                  | 6 ++++++
 lib/atscppapi/src/include/atscppapi/InterceptPlugin.h | 3 +++
 2 files changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5994228b/lib/atscppapi/src/InterceptPlugin.cc
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/InterceptPlugin.cc b/lib/atscppapi/src/InterceptPlugin.cc
index c06e494..b9aaa7c 100644
--- a/lib/atscppapi/src/InterceptPlugin.cc
+++ b/lib/atscppapi/src/InterceptPlugin.cc
@@ -85,6 +85,7 @@ struct InterceptPlugin::State {
   int num_bytes_written_;
   PluginHandle *plugin_handle_;
   bool shut_down_;
+  Headers request_headers_;
 
   State(TSCont cont) : cont_(cont), net_vc_(NULL), expected_body_size_(0), num_body_bytes_read_(0),
                        hdr_parsed_(false), hdr_buf_(NULL), hdr_loc_(NULL), num_bytes_written_(0), 
@@ -197,6 +198,10 @@ bool InterceptPlugin::setOutputComplete() {
   return true;
 }
 
+Headers &InterceptPlugin::getRequestHeaders() {
+  return state_->request_headers_;
+}
+
 bool InterceptPlugin::doRead() {
   int avail = TSIOBufferReaderAvail(state_->input_.reader_);
   if (avail == TS_ERROR) {
@@ -273,6 +278,7 @@ void InterceptPlugin::handleEvent(int abstract_event, void *edata) {
 
     state_->hdr_buf_ = TSMBufferCreate();
     state_->hdr_loc_ = TSHttpHdrCreate(state_->hdr_buf_);
+    state_->request_headers_.reset(state_->hdr_buf_, state_->hdr_loc_);
     TSHttpHdrTypeSet(state_->hdr_buf_, state_->hdr_loc_, TS_HTTP_TYPE_REQUEST);
     break;
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/5994228b/lib/atscppapi/src/include/atscppapi/InterceptPlugin.h
----------------------------------------------------------------------
diff --git a/lib/atscppapi/src/include/atscppapi/InterceptPlugin.h b/lib/atscppapi/src/include/atscppapi/InterceptPlugin.h
index 5160c8d..da8d5a4 100644
--- a/lib/atscppapi/src/include/atscppapi/InterceptPlugin.h
+++ b/lib/atscppapi/src/include/atscppapi/InterceptPlugin.h
@@ -68,6 +68,9 @@ public:
    */
   virtual void handleInputComplete() = 0;
 
+  /** Should be called only after request header has completely been consumed */
+  Headers &getRequestHeaders();
+
   virtual ~InterceptPlugin();
 
   struct State; /** Internal use only */