From: Guenter Knauf Date: Tue, 4 Jun 2013 12:12:14 +0000 (+0000) Subject: Added new function r.date_parse_rfc() to mod_lua. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=916739f111e2206131b8ad0b22ccf84d2b4f2199;p=thirdparty%2Fapache%2Fhttpd.git Added new function r.date_parse_rfc() to mod_lua. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1489400 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/lua/lua_request.c b/modules/lua/lua_request.c index e1c925d0811..66cbb1ca4e4 100644 --- a/modules/lua/lua_request.c +++ b/modules/lua/lua_request.c @@ -23,6 +23,7 @@ #include "util_md5.h" #include "util_script.h" #include "util_varbuf.h" +#include "apr_date.h" #include "apr_pools.h" #include "apr_thread_mutex.h" @@ -926,6 +927,23 @@ static int lua_apr_rmdir(lua_State *L) return 1; } +/* + * lua_apr_date_parse_rfc; r.date_parse_rfc(string) - Parses a DateTime string + */ +static int lua_apr_date_parse_rfc(lua_State *L) +{ + const char *input; + apr_time_t result; + + luaL_checktype(L, 1, LUA_TSTRING); + input = lua_tostring(L, 1); + result = apr_date_parse_rfc(input); + if (result == 0) + return 0; + lua_pushnumber(L, (lua_Number)(result / APR_USEC_PER_SEC)); + return 1; +} + /* * lua_ap_mpm_query; r:mpm_query(info) - Queries for MPM info */ @@ -2141,6 +2159,8 @@ void ap_lua_load_request_lmodule(lua_State *L, apr_pool_t *p) makefun(&lua_apr_mkrdir, APL_REQ_FUNTYPE_LUACFUN, p)); apr_hash_set(dispatch, "rmdir", APR_HASH_KEY_STRING, makefun(&lua_apr_rmdir, APL_REQ_FUNTYPE_LUACFUN, p)); + apr_hash_set(dispatch, "date_parse_rfc", APR_HASH_KEY_STRING, + makefun(&lua_apr_date_parse_rfc, APL_REQ_FUNTYPE_LUACFUN, p)); apr_hash_set(dispatch, "escape", APR_HASH_KEY_STRING, makefun(&lua_ap_escape, APL_REQ_FUNTYPE_LUACFUN, p)); apr_hash_set(dispatch, "unescape", APR_HASH_KEY_STRING,