Repository: trafficserver Updated Branches: refs/heads/master 4cbbf2c8f -> 0c697b238
TS-2721: add more hook support for atscppapi Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/7bedd881 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/7bedd881 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/7bedd881 Branch: refs/heads/master Commit: 7bedd881a09438e99a7e49b84b6e8ef9420742eb Parents: 4cbbf2c Author: Sandeep Davu <[email protected]> Authored: Mon Mar 2 20:04:50 2015 +0000 Committer: Kit Chan <[email protected]> Committed: Mon Mar 2 20:04:50 2015 +0000 ---------------------------------------------------------------------- lib/atscppapi/src/Plugin.cc | 6 +++++- lib/atscppapi/src/include/atscppapi/Plugin.h | 26 ++++++++++++++++++++++- lib/atscppapi/src/utils_internal.cc | 21 ++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7bedd881/lib/atscppapi/src/Plugin.cc ---------------------------------------------------------------------- diff --git a/lib/atscppapi/src/Plugin.cc b/lib/atscppapi/src/Plugin.cc index dd8d603..214d278 100644 --- a/lib/atscppapi/src/Plugin.cc +++ b/lib/atscppapi/src/Plugin.cc @@ -26,6 +26,10 @@ const std::string atscppapi::HOOK_TYPE_STRINGS[] = { std::string("HOOK_READ_REQU std::string("HOOK_SEND_REQUEST_HEADERS"), std::string("HOOK_READ_RESPONSE_HEADERS"), std::string("HOOK_SEND_RESPONSE_HEADERS"), - std::string("HOOK_OS_DNS") + std::string("HOOK_OS_DNS"), + std::string("HOOK_READ_REQUEST_HEADERS"), + std::string("HOOK_READ_CACHE_HEADERS"), + std::string("HOOK_CACHE_LOOKUP_COMPLETE"), + std::string("HOOK_SELECT_ALT") }; http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7bedd881/lib/atscppapi/src/include/atscppapi/Plugin.h ---------------------------------------------------------------------- diff --git a/lib/atscppapi/src/include/atscppapi/Plugin.h b/lib/atscppapi/src/include/atscppapi/Plugin.h index 677a3bd..ce1d943 100644 --- a/lib/atscppapi/src/include/atscppapi/Plugin.h +++ b/lib/atscppapi/src/include/atscppapi/Plugin.h @@ -54,7 +54,11 @@ public: HOOK_SEND_REQUEST_HEADERS, /**< This hook will be fired right before request headers are sent to the origin */ HOOK_READ_RESPONSE_HEADERS, /**< This hook will be fired right after response headers have been read from the origin */ HOOK_SEND_RESPONSE_HEADERS, /**< This hook will be fired right before the response headers are sent to the client */ - HOOK_OS_DNS /**< This hook will be fired right after the OS DNS lookup */ + HOOK_OS_DNS, /**< This hook will be fired right after the OS DNS lookup */ + HOOK_READ_REQUEST_HEADERS, /**< This hook will be fired after the request is read. */ + HOOK_READ_CACHE_HEADERS, /**< This hook will be fired after the CACHE hdrs. */ + HOOK_CACHE_LOOKUP_COMPLETE, /**< This hook will be fired after caceh lookup complete. */ + HOOK_SELECT_ALT /**< This hook will be fired after select alt. */ }; /** @@ -87,6 +91,26 @@ public: */ virtual void handleOsDns(Transaction &transaction) { transaction.resume(); }; + /** + * This method must be implemented when you hook HOOK_READ_REQUEST_HEADERS + */ + virtual void handleReadRequestHeaders(Transaction &transaction) { transaction.resume(); }; + + /** + * This method must be implemented when you hook HOOK_READ_CACHE_HEADERS + */ + virtual void handleReadCacheHeaders(Transaction &transaction) { transaction.resume(); }; + + /** + * This method must be implemented when you hook HOOK_CACHE_LOOKUP_COMPLETE + */ + virtual void handleReadCacheLookupComplete(Transaction &transaction) { transaction.resume(); }; + + /** + * This method must be implemented when you hook HOOK_SELECT_ALT + */ + virtual void handleSelectAlt(Transaction &transaction) { transaction.resume(); }; + virtual ~Plugin() { }; protected: /** http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7bedd881/lib/atscppapi/src/utils_internal.cc ---------------------------------------------------------------------- diff --git a/lib/atscppapi/src/utils_internal.cc b/lib/atscppapi/src/utils_internal.cc index 236def8..12538c7 100644 --- a/lib/atscppapi/src/utils_internal.cc +++ b/lib/atscppapi/src/utils_internal.cc @@ -122,6 +122,19 @@ void inline invokePluginForEvent(Plugin *plugin, TSHttpTxn ats_txn_handle, TSEve case TS_EVENT_HTTP_OS_DNS: plugin->handleOsDns(transaction); break; + case TS_EVENT_HTTP_READ_REQUEST_HDR: + plugin->handleReadRequestHeaders(transaction); + break; + case TS_EVENT_HTTP_READ_CACHE_HDR: + plugin->handleReadCacheHeaders(transaction); + break; + case TS_EVENT_HTTP_CACHE_LOOKUP_COMPLETE: + plugin->handleReadCacheLookupComplete(transaction); + break; + case TS_EVENT_HTTP_SELECT_ALT: + plugin->handleSelectAlt(transaction); + break; + default: assert(false); /* we should never get here */ break; @@ -158,6 +171,14 @@ TSHttpHookID utils::internal::convertInternalHookToTsHook(Plugin::HookType hookt return TS_HTTP_SEND_RESPONSE_HDR_HOOK; case Plugin::HOOK_OS_DNS: return TS_HTTP_OS_DNS_HOOK; + case Plugin::HOOK_READ_REQUEST_HEADERS: + return TS_HTTP_READ_REQUEST_HDR_HOOK; + case Plugin::HOOK_READ_CACHE_HEADERS: + return TS_HTTP_READ_CACHE_HDR_HOOK; + case Plugin::HOOK_CACHE_LOOKUP_COMPLETE: + return TS_HTTP_CACHE_LOOKUP_COMPLETE_HOOK; + case Plugin::HOOK_SELECT_ALT: + return TS_HTTP_SELECT_ALT_HOOK; default: assert(false); // shouldn't happen, let's catch it early break;
