From: Stefan Fritsch Date: Sat, 16 Jun 2012 22:41:01 +0000 (+0000) Subject: mod_lua: Add a few missing request_rec fields. Rename remote_ip to X-Git-Tag: 2.5.0-alpha~6735 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=32f5f54c258744b8911043bb30dd30f35e745b65;p=apache mod_lua: Add a few missing request_rec fields. Rename remote_ip to client_ip to match conn_rec git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1351014 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 1fdfecd8a1..e584188ba5 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,9 @@ Changes with Apache 2.5.0 possible XSS for a site where untrusted users can upload files to a location with MultiViews enabled. [Niels Heinen ] + *) mod_lua: Add a few missing request_rec fields. Rename remote_ip to + client_ip to match conn_rec. [Stefan Fritsch] + *) mod_lua: Change prototype of vm_construct, to work around gcc bug which causes a segfault. PR 52779. [Dick Snippe ] diff --git a/docs/manual/mod/mod_lua.xml b/docs/manual/mod/mod_lua.xml index 265137697e..fe3b0b8f13 100644 --- a/docs/manual/mod/mod_lua.xml +++ b/docs/manual/mod/mod_lua.xml @@ -233,6 +233,16 @@ end string yes + + context_prefix + string + no + + + context_document_root + string + no + document_root @@ -270,6 +280,11 @@ end string no + + log_id + string + no + method string @@ -330,6 +345,11 @@ end string yes + + useragent_ip + string + no +

The request_rec has (at least) the following methods:

diff --git a/modules/lua/lua_request.c b/modules/lua/lua_request.c index c62baccf3e..380d8b6b39 100644 --- a/modules/lua/lua_request.c +++ b/modules/lua/lua_request.c @@ -235,6 +235,16 @@ static const char *req_document_root(request_rec *r) return ap_document_root(r); } +static const char *req_context_prefix(request_rec *r) +{ + return ap_context_prefix(r); +} + +static const char *req_context_document_root(request_rec *r) +{ + return ap_context_document_root(r); +} + static char *req_uri_field(request_rec *r) { return r->uri; @@ -323,6 +333,16 @@ static const char *req_the_request_field(request_rec *r) return r->the_request; } +static const char *req_log_id_field(request_rec *r) +{ + return r->log_id; +} + +static const char *req_useragent_ip_field(request_rec *r) +{ + return r->useragent_ip; +} + static int req_status_field(request_rec *r) { return r->status; @@ -599,6 +619,10 @@ AP_LUA_DECLARE(void) ap_lua_load_request_lmodule(lua_State *L, apr_pool_t *p) makefun(&req_write, APL_REQ_FUNTYPE_LUACFUN, p)); apr_hash_set(dispatch, "document_root", APR_HASH_KEY_STRING, makefun(&req_document_root, APL_REQ_FUNTYPE_STRING, p)); + apr_hash_set(dispatch, "context_prefix", APR_HASH_KEY_STRING, + makefun(&req_context_prefix, APL_REQ_FUNTYPE_STRING, p)); + apr_hash_set(dispatch, "context_document_root", APR_HASH_KEY_STRING, + makefun(&req_context_document_root, APL_REQ_FUNTYPE_STRING, p)); apr_hash_set(dispatch, "parseargs", APR_HASH_KEY_STRING, makefun(&req_parseargs, APL_REQ_FUNTYPE_LUACFUN, p)); apr_hash_set(dispatch, "debug", APR_HASH_KEY_STRING, @@ -679,6 +703,10 @@ AP_LUA_DECLARE(void) ap_lua_load_request_lmodule(lua_State *L, apr_pool_t *p) makefun(&req_uri_field, APL_REQ_FUNTYPE_STRING, p)); apr_hash_set(dispatch, "the_request", APR_HASH_KEY_STRING, makefun(&req_the_request_field, APL_REQ_FUNTYPE_STRING, p)); + apr_hash_set(dispatch, "log_id", APR_HASH_KEY_STRING, + makefun(&req_log_id_field, APL_REQ_FUNTYPE_STRING, p)); + apr_hash_set(dispatch, "useragent_ip", APR_HASH_KEY_STRING, + makefun(&req_useragent_ip_field, APL_REQ_FUNTYPE_STRING, p)); apr_hash_set(dispatch, "method", APR_HASH_KEY_STRING, makefun(&req_method_field, APL_REQ_FUNTYPE_STRING, p)); apr_hash_set(dispatch, "proxyreq", APR_HASH_KEY_STRING, @@ -735,7 +763,7 @@ AP_LUA_DECLARE(void) ap_lua_push_connection(lua_State *L, conn_rec *c) lua_setfield(L, -2, "notes"); lua_pushstring(L, c->client_ip); - lua_setfield(L, -2, "remote_ip"); + lua_setfield(L, -2, "client_ip"); lua_pop(L, 1); }