You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ki...@apache.org on 2014/07/13 09:57:47 UTC
git commit: TS-2930: missing hostname in ts.client_request.get_url()
in lua plugin
Repository: trafficserver
Updated Branches:
refs/heads/master 470732ffc -> ad8534ec3
TS-2930: missing hostname in ts.client_request.get_url() in lua plugin
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/ad8534ec
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/ad8534ec
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/ad8534ec
Branch: refs/heads/master
Commit: ad8534ec3647e0a0732ef13314a4c81c6b12871f
Parents: 470732f
Author: Kit Chan <ki...@apache.org>
Authored: Sun Jul 13 00:57:23 2014 -0700
Committer: Kit Chan <ki...@apache.org>
Committed: Sun Jul 13 00:57:23 2014 -0700
----------------------------------------------------------------------
CHANGES | 2 ++
.../experimental/ts_lua/ts_lua_client_request.c | 30 ++++++++++++++++++--
2 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ad8534ec/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index ceec407..ef99e89 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 5.1.0
+ *) [TS-2930] missing hostname in ts.client_request.get_url() for lua plugin.
+
*) [TS-2934] Default remap rule will remap synthetic test
*) [TS-2904] Add Via header decoder option to traffic_line.
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ad8534ec/plugins/experimental/ts_lua/ts_lua_client_request.c
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_client_request.c b/plugins/experimental/ts_lua/ts_lua_client_request.c
index d45e6e0..b17679c 100644
--- a/plugins/experimental/ts_lua/ts_lua_client_request.c
+++ b/plugins/experimental/ts_lua/ts_lua_client_request.c
@@ -313,7 +313,7 @@ ts_lua_client_request_get_url(lua_State * L)
http_ctx = ts_lua_get_http_ctx(L);
- url = TSUrlStringGet(http_ctx->client_request_bufp, http_ctx->client_request_url, &url_len);
+ url = TSHttpTxnEffectiveUrlStringGet(http_ctx->txnp, &url_len);
if (url) {
lua_pushlstring(L, url, url_len);
@@ -361,7 +361,7 @@ static int
ts_lua_client_request_get_url_host(lua_State * L)
{
const char *host;
- int len;
+ int len = 0;
ts_lua_http_ctx *http_ctx;
@@ -369,6 +369,32 @@ ts_lua_client_request_get_url_host(lua_State * L)
host = TSUrlHostGet(http_ctx->client_request_bufp, http_ctx->client_request_url, &len);
+ if(len == 0) {
+ char *key = "Host";
+ char *l_key = "host";
+ int key_len = 4;
+
+
+ TSMLoc field_loc;
+
+ field_loc = TSMimeHdrFieldFind(http_ctx->client_request_bufp, http_ctx->client_request_hdrp, key, key_len);
+ if (field_loc) {
+ host =
+ TSMimeHdrFieldValueStringGet(http_ctx->client_request_bufp, http_ctx->client_request_hdrp, field_loc, -1,
+ &len);
+ TSHandleMLocRelease(http_ctx->client_request_bufp, http_ctx->client_request_hdrp, field_loc);
+
+ } else {
+ field_loc = TSMimeHdrFieldFind(http_ctx->client_request_bufp, http_ctx->client_request_hdrp, l_key, key_len);
+ if(field_loc) {
+ host =
+ TSMimeHdrFieldValueStringGet(http_ctx->client_request_bufp, http_ctx->client_request_hdrp, field_loc,
+ -1, &len);
+ TSHandleMLocRelease(http_ctx->client_request_bufp, http_ctx->client_request_hdrp, field_loc);
+ }
+ }
+ }
+
lua_pushlstring(L, host, len);
return 1;