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 2010/02/02 01:32:17 UTC
svn commit: r905476 - in /incubator/trafficserver/traffic/trunk/proxy:
InkAPI.cc api/include/InkAPI.h http2/HttpSM.cc http2/HttpTransact.h
Author: zwoop
Date: Tue Feb 2 00:32:16 2010
New Revision: 905476
URL: http://svn.apache.org/viewvc?rev=905476&view=rev
Log:
TS-96: INKApi should expose the original Host header (as in the pristine header) to the plugins
Author: Wendy Huang
Review: Bryan and Leif
Modified:
incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc
incubator/trafficserver/traffic/trunk/proxy/api/include/InkAPI.h
incubator/trafficserver/traffic/trunk/proxy/http2/HttpSM.cc
incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h
Modified: incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc?rev=905476&r1=905475&r2=905476&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc Tue Feb 2 00:32:16 2010
@@ -5144,6 +5144,32 @@
}
}
+// pristine url is the url before remap
+INKReturnCode
+INKHttpTxnPristineUrlGet (INKHttpTxn txnp, INKMBuffer *bufp, INKMLoc *url_loc)
+{
+ if (sdk_sanity_check_txn(txnp)!=INK_SUCCESS ||
+ sdk_sanity_check_null_ptr((void*)bufp) != INK_SUCCESS ||
+ sdk_sanity_check_null_ptr((void*)url_loc) != INK_SUCCESS) {
+ return INK_ERROR;
+ }
+ HttpSM *sm = (HttpSM*) txnp;
+ HTTPHdr *hptr = &(sm->t_state.hdr_info.client_request);
+
+ if (hptr->valid()) {
+ *bufp = hptr;
+ *url_loc = (INKMLoc)sm->t_state.pristine_url.m_url_impl;
+ sdk_sanity_check_mbuffer(*bufp);
+ if (*url_loc)
+ return INK_SUCCESS;
+ else
+ return INK_ERROR;
+ }
+ else
+ return INK_ERROR;
+}
+
+
int
INKHttpTxnClientRespGet(INKHttpTxn txnp, INKMBuffer * bufp, INKMLoc * obj)
{
Modified: incubator/trafficserver/traffic/trunk/proxy/api/include/InkAPI.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/api/include/InkAPI.h?rev=905476&r1=905475&r2=905476&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/api/include/InkAPI.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/api/include/InkAPI.h Tue Feb 2 00:32:16 2010
@@ -1959,6 +1959,7 @@
inkapi INKReturnCode INKHttpTxnHookAdd(INKHttpTxn txnp, INKHttpHookID id, INKCont contp);
inkapi INKHttpSsn INKHttpTxnSsnGet(INKHttpTxn txnp);
inkapi int INKHttpTxnClientReqGet(INKHttpTxn txnp, INKMBuffer * bufp, INKMLoc * offset);
+ inkapi INKReturnCode INKHttpTxnPristineUrlGet(INKHttpTxn txnp, INKMBuffer *bufp, INKMLoc *url_loc);
inkapi int INKHttpTxnClientRespGet(INKHttpTxn txnp, INKMBuffer * bufp, INKMLoc * offset);
inkapi int INKHttpTxnServerReqGet(INKHttpTxn txnp, INKMBuffer * bufp, INKMLoc * offset);
inkapi int INKHttpTxnServerRespGet(INKHttpTxn txnp, INKMBuffer * bufp, INKMLoc * offset);
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpSM.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpSM.cc?rev=905476&r1=905475&r2=905476&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpSM.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpSM.cc Tue Feb 2 00:32:16 2010
@@ -842,6 +842,11 @@
if (HttpConfig::m_master.number_of_redirections)
enable_redirection = HttpConfig::m_master.redirection_enabled;
+ // Preserve pristine url before remap
+ t_state.pristine_url.create(t_state.hdr_info.client_request.url_get()->m_heap);
+ t_state.pristine_url.copy(t_state.hdr_info.client_request.url_get());
+
+
call_transact_and_set_next_state(HttpTransact::ModifyRequest);
break;
Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h?rev=905476&r1=905475&r2=905476&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpTransact.h Tue Feb 2 00:32:16 2010
@@ -1156,6 +1156,7 @@
unsigned int filter_mask;
bool already_downgraded;
+ URL pristine_url; // pristine url is the url before remap
};
@@ -1462,7 +1463,8 @@
congestion_control_crat(0),
congestion_congested_or_failed(0),
congestion_connection_opened(0),
-reverse_proxy(false), url_remap_success(false), remap_redirect(NULL), filter_mask(0), already_downgraded(false)
+reverse_proxy(false), url_remap_success(false), remap_redirect(NULL), filter_mask(0), already_downgraded(false),
+pristine_url()
{
int
i;