You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2012/12/19 06:28:01 UTC
git commit: TS-1630: Add Lua API for TSHttpTxnCacheLookupStatusGet
Updated Branches:
refs/heads/master bdbb077cb -> d0d81548e
TS-1630: Add Lua API for TSHttpTxnCacheLookupStatusGet
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/d0d81548
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/d0d81548
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/d0d81548
Branch: refs/heads/master
Commit: d0d81548e7095222388afe4a4ab6b309b537e41e
Parents: bdbb077
Author: James Peach <jp...@apache.org>
Authored: Tue Dec 18 21:25:26 2012 -0800
Committer: James Peach <jp...@apache.org>
Committed: Tue Dec 18 21:27:49 2012 -0800
----------------------------------------------------------------------
CHANGES | 2 +
plugins/experimental/lua/examples/cachestatus.lua | 48 ++++++++++++++++
plugins/experimental/lua/lapi.cc | 22 +++++++
3 files changed, 72 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d0d81548/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 2edabf5..e4bd9a4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 3.3.1
+ *) [TS-1630] Add Lua API for TSHttpTxnCacheLookupStatusGet
+
*) [TS-1423] Added option to do transparent passthrough on
connections that are not valid HTTP.
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d0d81548/plugins/experimental/lua/examples/cachestatus.lua
----------------------------------------------------------------------
diff --git a/plugins/experimental/lua/examples/cachestatus.lua b/plugins/experimental/lua/examples/cachestatus.lua
new file mode 100644
index 0000000..36d60df
--- /dev/null
+++ b/plugins/experimental/lua/examples/cachestatus.lua
@@ -0,0 +1,48 @@
+-- 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.
+
+-- Lua example to log the HTTP transaction cache lookup status.
+
+require 'string'
+require 'debug'
+
+ts = require 'ts'
+ts.hook = require 'ts.hook'
+
+ts.debug('cachestatus', string.format('loaded %s', debug.getinfo(1).source))
+
+do
+
+local strings = { }
+strings[ts.CACHE_LOOKUP_MISS] = "TS_CACHE_LOOKUP_MISS"
+strings[ts.CACHE_LOOKUP_HIT_STALE] = "TS_CACHE_LOOKUP_HIT_STALE"
+strings[ts.CACHE_LOOKUP_HIT_FRESH] = "TS_CACHE_LOOKUP_HIT_FRESH"
+strings[ts.CACHE_LOOKUP_SKIPPED] = "TS_CACHE_LOOKUP_SKIPPED"
+
+function cachestatus(status)
+ return strings[status]
+end
+end
+
+ts.hook.register(ts.hook.HTTP_CACHE_LOOKUP_COMPLETE_HOOK,
+ function(event, txn)
+ ts.debug('cachestatus',
+ string.format('cache lookup status is %s', cachestatus(txn:cachestatus())))
+ txn:continue()
+ end
+)
+
+-- vim: set sw=4 ts=4 et :
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d0d81548/plugins/experimental/lua/lapi.cc
----------------------------------------------------------------------
diff --git a/plugins/experimental/lua/lapi.cc b/plugins/experimental/lua/lapi.cc
index 0398b9f..52274a2 100644
--- a/plugins/experimental/lua/lapi.cc
+++ b/plugins/experimental/lua/lapi.cc
@@ -494,11 +494,28 @@ LuaHttpTxnRegister(lua_State * lua)
return 0;
}
+static int
+LuaHttpTxnCacheLookupStatus(lua_State * lua)
+{
+ LuaHttpTransaction * txn;
+ int status;
+
+ txn = LuaHttpTransaction::get(lua, 1);
+ if (TSHttpTxnCacheLookupStatusGet(txn->txn, &status) == TS_SUCCESS) {
+ lua_pushinteger(lua, status);
+ } else {
+ lua_pushinteger(lua, -1);
+ }
+
+ return 1;
+}
+
static const luaL_Reg HTTPTXN[] =
{
{ "abort", LuaHttpTxnAbort },
{ "continue", LuaHttpTxnContinue },
{ "register", LuaHttpTxnRegister },
+ { "cachestatus", LuaHttpTxnCacheLookupStatus },
{ NULL, NULL }
};
@@ -603,6 +620,11 @@ LuaApiInit(lua_State * lua)
LuaSetConstantField(lua, "MINOR_VERSION", TSTrafficServerVersionGetMinor());
LuaSetConstantField(lua, "PATCH_VERSION", TSTrafficServerVersionGetPatch());
+ LuaSetConstantField(lua, "CACHE_LOOKUP_MISS", TS_CACHE_LOOKUP_MISS);
+ LuaSetConstantField(lua, "CACHE_LOOKUP_HIT_STALE", TS_CACHE_LOOKUP_HIT_STALE);
+ LuaSetConstantField(lua, "CACHE_LOOKUP_HIT_FRESH", TS_CACHE_LOOKUP_HIT_FRESH);
+ LuaSetConstantField(lua, "CACHE_LOOKUP_SKIPPED", TS_CACHE_LOOKUP_SKIPPED);
+
// Register TSRemapRequestInfo metatable.
LuaPushMetatable(lua, "ts.meta.rri", RRI);
// Pop the metatable.