From: Eric Covener Date: Sat, 22 Oct 2011 18:07:43 +0000 (+0000) Subject: expose ap_construct_url to lua scripts X-Git-Tag: 2.3.15~109 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10c800bb957ad15495ca047ed441837eaa63dff4;p=thirdparty%2Fapache%2Fhttpd.git expose ap_construct_url to lua scripts git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1187743 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 28d8a9ef089..366a1d38cca 100644 --- a/CHANGES +++ b/CHANGES @@ -12,6 +12,9 @@ Changes with Apache 2.3.15 PR 51714. [Stefan Fritsch, Jim Jagielski, Ruediger Pluem, Eric Covener, ] + *) mod_lua: add r:construct_url as a wrapper for ap_construct_url. + [Eric Covener] + *) mod_remote_ip: Fix configuration of internal proxies. PR 49272. [Jim Riggs ] diff --git a/modules/lua/lua_request.c b/modules/lua/lua_request.c index afa606df150..b731881fd0c 100644 --- a/modules/lua/lua_request.c +++ b/modules/lua/lua_request.c @@ -200,6 +200,14 @@ static int req_add_output_filter(lua_State *L) return 0; } +/* wrap ap_construct_url as r:construct_url(String) */ +static int req_construct_url(lua_State *L) +{ + request_rec *r = ap_lua_check_request_rec(L, 1); + const char *name = luaL_checkstring(L, 2); + lua_pushstring(L, ap_construct_url(r->pool, name, r)); + return 1; +} /* BEGIN dispatch mathods for request_rec fields */ /* not really a field, but we treat it like one */ @@ -549,6 +557,8 @@ AP_LUA_DECLARE(void) ap_lua_load_request_lmodule(lua_State *L, apr_pool_t *p) makefun(&req_emerg, APL_REQ_FUNTYPE_LUACFUN, p)); apr_hash_set(dispatch, "add_output_filter", APR_HASH_KEY_STRING, makefun(&req_add_output_filter, APL_REQ_FUNTYPE_LUACFUN, p)); + apr_hash_set(dispatch, "construct_url", APR_HASH_KEY_STRING, + makefun(&req_construct_url, APL_REQ_FUNTYPE_LUACFUN, p)); apr_hash_set(dispatch, "assbackwards", APR_HASH_KEY_STRING, makefun(&req_assbackwards_field, APL_REQ_FUNTYPE_BOOLEAN, p)); apr_hash_set(dispatch, "status", APR_HASH_KEY_STRING,