You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by yu...@apache.org on 2013/12/16 08:12:42 UTC
git commit: TS-2335: add features for ts_lua
Updated Branches:
refs/heads/master 5b73f528d -> 7429793dc
TS-2335: add features for ts_lua
1) inject remap vars
2) free memory which is allocated by TSUrlStringGet
3) add ts.client_request.get_pristine_url()
Signed-off-by: Quehan <qu...@taobao.com>
Signed-off-by: Yunkai Zhang <qi...@taobao.com>
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/7429793d
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/7429793d
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/7429793d
Branch: refs/heads/master
Commit: 7429793dcc1e2715452723bd5d401cb6c114bec3
Parents: 5b73f52
Author: Quehan <qu...@taobao.com>
Authored: Sun Dec 15 00:48:21 2013 +0800
Committer: Yunkai Zhang <qi...@taobao.com>
Committed: Mon Dec 16 15:10:01 2013 +0800
----------------------------------------------------------------------
plugins/experimental/ts_lua/Makefile.am | 2 +-
.../experimental/ts_lua/ts_lua_client_request.c | 45 ++++++++++++-
plugins/experimental/ts_lua/ts_lua_remap.c | 67 ++++++++++++++++++++
plugins/experimental/ts_lua/ts_lua_remap.h | 28 ++++++++
plugins/experimental/ts_lua/ts_lua_util.c | 3 +
5 files changed, 142 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7429793d/plugins/experimental/ts_lua/Makefile.am
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/Makefile.am b/plugins/experimental/ts_lua/Makefile.am
index f1c1b27..a519578 100644
--- a/plugins/experimental/ts_lua/Makefile.am
+++ b/plugins/experimental/ts_lua/Makefile.am
@@ -29,7 +29,7 @@ tslua_la_CPPFLAGS = \
pkglib_LTLIBRARIES = tslua.la
tslua_la_LIBADD = $(LUA_LIBS)
-tslua_la_SOURCES = ts_lua.c ts_lua_cached_response.c ts_lua_client_request.c ts_lua_client_response.c ts_lua_context.c ts_lua_hook.c ts_lua_http.c ts_lua_http_intercept.c ts_lua_log.c ts_lua_misc.c ts_lua_server_request.c ts_lua_server_response.c ts_lua_transform.c ts_lua_util.c
+tslua_la_SOURCES = ts_lua.c ts_lua_cached_response.c ts_lua_client_request.c ts_lua_client_response.c ts_lua_context.c ts_lua_hook.c ts_lua_http.c ts_lua_http_intercept.c ts_lua_log.c ts_lua_misc.c ts_lua_server_request.c ts_lua_server_response.c ts_lua_transform.c ts_lua_util.c ts_lua_remap.c
tslua_la_LDFLAGS = $(TS_PLUGIN_LDFLAGS)
endif
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7429793d/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 2dffed8..9512486 100644
--- a/plugins/experimental/ts_lua/ts_lua_client_request.c
+++ b/plugins/experimental/ts_lua/ts_lua_client_request.c
@@ -26,6 +26,7 @@ static void ts_lua_inject_client_request_server_addr_api(lua_State *L);
static int ts_lua_client_request_header_get(lua_State *L);
static int ts_lua_client_request_header_set(lua_State *L);
static int ts_lua_client_request_get_url(lua_State *L);
+static int ts_lua_client_request_get_pristine_url(lua_State *L);
static int ts_lua_client_request_get_uri(lua_State *L);
static int ts_lua_client_request_set_uri(lua_State *L);
static int ts_lua_client_request_set_uri_args(lua_State *L);
@@ -206,6 +207,9 @@ ts_lua_inject_client_request_url_api(lua_State *L)
{
lua_pushcfunction(L, ts_lua_client_request_get_url);
lua_setfield(L, -2, "get_url");
+
+ lua_pushcfunction(L, ts_lua_client_request_get_pristine_url);
+ lua_setfield(L, -2, "get_pristine_url");
}
static void
@@ -221,7 +225,7 @@ ts_lua_inject_client_request_uri_api(lua_State *L)
static int
ts_lua_client_request_get_url(lua_State *L)
{
- const char *url;
+ char *url;
int url_len;
ts_lua_http_ctx *http_ctx;
@@ -230,7 +234,44 @@ ts_lua_client_request_get_url(lua_State *L)
url = TSUrlStringGet(http_ctx->client_request_bufp, http_ctx->client_request_url, &url_len);
- lua_pushlstring(L, url, url_len);
+ if (url) {
+ lua_pushlstring(L, url, url_len);
+ TSfree(url);
+
+ } else {
+ lua_pushnil(L);
+ }
+
+ return 1;
+}
+
+static int
+ts_lua_client_request_get_pristine_url(lua_State *L)
+{
+ char *url;
+ int url_len;
+
+ TSMBuffer bufp;
+ TSMLoc url_loc;
+
+ ts_lua_http_ctx *http_ctx;
+
+ http_ctx = ts_lua_get_http_ctx(L);
+
+ if (TSHttpTxnPristineUrlGet(http_ctx->txnp, &bufp, &url_loc) != TS_SUCCESS)
+ return 0;
+
+ url = TSUrlStringGet(bufp, url_loc, &url_len);
+
+ if (url) {
+ lua_pushlstring(L, url, url_len);
+ TSfree(url);
+
+ } else {
+ lua_pushnil(L);
+ }
+
+ TSHandleMLocRelease(bufp, NULL, url_loc);
return 1;
}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7429793d/plugins/experimental/ts_lua/ts_lua_remap.c
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_remap.c b/plugins/experimental/ts_lua/ts_lua_remap.c
new file mode 100644
index 0000000..d6efaaf
--- /dev/null
+++ b/plugins/experimental/ts_lua/ts_lua_remap.c
@@ -0,0 +1,67 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+#include "ts_lua_remap.h"
+
+
+typedef enum {
+ TS_LUA_REMAP_NO_REMAP = 0,
+ TS_LUA_REMAP_DID_REMAP,
+ TS_LUA_REMAP_NO_REMAP_STOP,
+ TS_LUA_REMAP_DID_REMAP_STOP,
+ TS_LUA_REMAP_ERROR = -1,
+} TSLuaRemapStatus;
+
+int ts_lua_remap_status_id[] = {
+ TS_LUA_REMAP_NO_REMAP,
+ TS_LUA_REMAP_DID_REMAP,
+ TS_LUA_REMAP_NO_REMAP_STOP,
+ TS_LUA_REMAP_DID_REMAP_STOP,
+ TS_LUA_REMAP_ERROR,
+};
+
+char * ts_lua_remap_status_string[] = {
+ "TS_LUA_REMAP_NO_REMAP",
+ "TS_LUA_REMAP_DID_REMAP",
+ "TS_LUA_REMAP_NO_REMAP_STOP",
+ "TS_LUA_REMAP_DID_REMAP_STOP",
+ "TS_LUA_REMAP_ERROR",
+};
+
+
+static void ts_lua_inject_remap_variables(lua_State *L);
+
+
+void
+ts_lua_inject_remap_api(lua_State *L)
+{
+ ts_lua_inject_remap_variables(L);
+}
+
+static void
+ts_lua_inject_remap_variables(lua_State *L)
+{
+ int i;
+
+ for (i = 0; i < sizeof(ts_lua_remap_status_string)/sizeof(char*); i++) {
+ lua_pushinteger(L, ts_lua_remap_status_id[i]);
+ lua_setglobal(L, ts_lua_remap_status_string[i]);
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7429793d/plugins/experimental/ts_lua/ts_lua_remap.h
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_remap.h b/plugins/experimental/ts_lua/ts_lua_remap.h
new file mode 100644
index 0000000..1dc84ed
--- /dev/null
+++ b/plugins/experimental/ts_lua/ts_lua_remap.h
@@ -0,0 +1,28 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+#ifndef _TS_LUA_REMAP_H
+#define _TS_LUA_REMAP_H
+
+#include "ts_lua_common.h"
+
+void ts_lua_inject_remap_api(lua_State *L);
+
+#endif
+
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7429793d/plugins/experimental/ts_lua/ts_lua_util.c
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_util.c b/plugins/experimental/ts_lua/ts_lua_util.c
index b79b7da..ea20fa9 100644
--- a/plugins/experimental/ts_lua/ts_lua_util.c
+++ b/plugins/experimental/ts_lua/ts_lua_util.c
@@ -18,6 +18,7 @@
#include "ts_lua_util.h"
+#include "ts_lua_remap.h"
#include "ts_lua_client_request.h"
#include "ts_lua_server_request.h"
#include "ts_lua_server_response.h"
@@ -186,6 +187,8 @@ ts_lua_inject_ts_api(lua_State *L)
{
lua_newtable(L);
+ ts_lua_inject_remap_api(L);
+
ts_lua_inject_client_request_api(L);
ts_lua_inject_server_request_api(L);
ts_lua_inject_server_response_api(L);
Re: git commit: TS-2335: add features for ts_lua
Posted by Yunkai Zhang <yu...@gmail.com>.
On Tue, Dec 17, 2013 at 12:47 AM, Igor Galić <i....@brainsware.org> wrote:
>
>
> ----- Original Message -----
> > Updated Branches:
> > refs/heads/master 5b73f528d -> 7429793dc
> >
> >
> > TS-2335: add features for ts_lua
> >
> > 1) inject remap vars
> > 2) free memory which is allocated by TSUrlStringGet
> > 3) add ts.client_request.get_pristine_url()
> >
> > Signed-off-by: Quehan <qu...@taobao.com>
> > Signed-off-by: Yunkai Zhang <qi...@taobao.com>
> >
> >
> > Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> > Commit:
> http://git-wip-us.apache.org/repos/asf/trafficserver/commit/7429793d
> > Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/7429793d
> > Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/7429793d
> >
> > Branch: refs/heads/master
> > Commit: 7429793dcc1e2715452723bd5d401cb6c114bec3
> > Parents: 5b73f52
> > Author: Quehan <qu...@taobao.com>
> > Authored: Sun Dec 15 00:48:21 2013 +0800
> > Committer: Yunkai Zhang <qi...@taobao.com>
> > Committed: Mon Dec 16 15:10:01 2013 +0800
> >
> > ----------------------------------------------------------------------
> > plugins/experimental/ts_lua/Makefile.am | 2 +-
> > .../experimental/ts_lua/ts_lua_client_request.c | 45 ++++++++++++-
> > plugins/experimental/ts_lua/ts_lua_remap.c | 67
> ++++++++++++++++++++
> > plugins/experimental/ts_lua/ts_lua_remap.h | 28 ++++++++
> > plugins/experimental/ts_lua/ts_lua_util.c | 3 +
> > 5 files changed, 142 insertions(+), 3 deletions(-)
> > ----------------------------------------------------------------------
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7429793d/plugins/experimental/ts_lua/Makefile.am
> > ----------------------------------------------------------------------
> > diff --git a/plugins/experimental/ts_lua/Makefile.am
> > b/plugins/experimental/ts_lua/Makefile.am
> > index f1c1b27..a519578 100644
> > --- a/plugins/experimental/ts_lua/Makefile.am
> > +++ b/plugins/experimental/ts_lua/Makefile.am
> > @@ -29,7 +29,7 @@ tslua_la_CPPFLAGS = \
> > pkglib_LTLIBRARIES = tslua.la
> >
> > tslua_la_LIBADD = $(LUA_LIBS)
> > -tslua_la_SOURCES = ts_lua.c ts_lua_cached_response.c
> ts_lua_client_request.c
> > ts_lua_client_response.c ts_lua_context.c ts_lua_hook.c ts_lua_http.c
> > ts_lua_http_intercept.c ts_lua_log.c ts_lua_misc.c
> ts_lua_server_request.c
> > ts_lua_server_response.c ts_lua_transform.c ts_lua_util.c
> > +tslua_la_SOURCES = ts_lua.c ts_lua_cached_response.c
> ts_lua_client_request.c
> > ts_lua_client_response.c ts_lua_context.c ts_lua_hook.c ts_lua_http.c
> > ts_lua_http_intercept.c ts_lua_log.c ts_lua_misc.c
> ts_lua_server_request.c
> > ts_lua_server_response.c ts_lua_transform.c ts_lua_util.c ts_lua_remap.c
> > tslua_la_LDFLAGS = $(TS_PLUGIN_LDFLAGS)
> >
>
> For readability reasons we should break this down to one file per line,
> sorted alphabetically.
>
Agree, I'll ask @Quehan to refine it.
Thanks.
>
>
> --
> Igor Galić
>
> Tel: +43 (0) 664 886 22 883
> Mail: i.galic@brainsware.org
> URL: http://brainsware.org/
> GPG: 8716 7A9F 989B ABD5 100F 4008 F266 55D6 2998 1641
>
>
--
Yunkai Zhang
Work at Taobao
Re: git commit: TS-2335: add features for ts_lua
Posted by Igor Galić <i....@brainsware.org>.
----- Original Message -----
> Updated Branches:
> refs/heads/master 5b73f528d -> 7429793dc
>
>
> TS-2335: add features for ts_lua
>
> 1) inject remap vars
> 2) free memory which is allocated by TSUrlStringGet
> 3) add ts.client_request.get_pristine_url()
>
> Signed-off-by: Quehan <qu...@taobao.com>
> Signed-off-by: Yunkai Zhang <qi...@taobao.com>
>
>
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/7429793d
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/7429793d
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/7429793d
>
> Branch: refs/heads/master
> Commit: 7429793dcc1e2715452723bd5d401cb6c114bec3
> Parents: 5b73f52
> Author: Quehan <qu...@taobao.com>
> Authored: Sun Dec 15 00:48:21 2013 +0800
> Committer: Yunkai Zhang <qi...@taobao.com>
> Committed: Mon Dec 16 15:10:01 2013 +0800
>
> ----------------------------------------------------------------------
> plugins/experimental/ts_lua/Makefile.am | 2 +-
> .../experimental/ts_lua/ts_lua_client_request.c | 45 ++++++++++++-
> plugins/experimental/ts_lua/ts_lua_remap.c | 67 ++++++++++++++++++++
> plugins/experimental/ts_lua/ts_lua_remap.h | 28 ++++++++
> plugins/experimental/ts_lua/ts_lua_util.c | 3 +
> 5 files changed, 142 insertions(+), 3 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/7429793d/plugins/experimental/ts_lua/Makefile.am
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/Makefile.am
> b/plugins/experimental/ts_lua/Makefile.am
> index f1c1b27..a519578 100644
> --- a/plugins/experimental/ts_lua/Makefile.am
> +++ b/plugins/experimental/ts_lua/Makefile.am
> @@ -29,7 +29,7 @@ tslua_la_CPPFLAGS = \
> pkglib_LTLIBRARIES = tslua.la
>
> tslua_la_LIBADD = $(LUA_LIBS)
> -tslua_la_SOURCES = ts_lua.c ts_lua_cached_response.c ts_lua_client_request.c
> ts_lua_client_response.c ts_lua_context.c ts_lua_hook.c ts_lua_http.c
> ts_lua_http_intercept.c ts_lua_log.c ts_lua_misc.c ts_lua_server_request.c
> ts_lua_server_response.c ts_lua_transform.c ts_lua_util.c
> +tslua_la_SOURCES = ts_lua.c ts_lua_cached_response.c ts_lua_client_request.c
> ts_lua_client_response.c ts_lua_context.c ts_lua_hook.c ts_lua_http.c
> ts_lua_http_intercept.c ts_lua_log.c ts_lua_misc.c ts_lua_server_request.c
> ts_lua_server_response.c ts_lua_transform.c ts_lua_util.c ts_lua_remap.c
> tslua_la_LDFLAGS = $(TS_PLUGIN_LDFLAGS)
>
For readability reasons we should break this down to one file per line, sorted alphabetically.
--
Igor Galić
Tel: +43 (0) 664 886 22 883
Mail: i.galic@brainsware.org
URL: http://brainsware.org/
GPG: 8716 7A9F 989B ABD5 100F 4008 F266 55D6 2998 1641