return 0;
}
+static int req_headers_in(lua_State *L)
+{
+ const char *key;
+ const char *value;
+ request_rec *r = apl_check_request_rec(L, 1);
+
+ key = luaL_checkstring(L, 2);
+
+ value = apr_table_get(r->headers_in, key);
+ if (value) {
+ lua_pushstring(L, value);
+ }
+ else {
+ lua_pushnil(L);
+ }
+
+ return 1;
+}
+
/* handle r.status = 201 */
static int req_newindex(lua_State *L)
{
apr_hash_set(dispatch, "notice", APR_HASH_KEY_STRING,
makefun(&req_notice, APL_REQ_FUNTYPE_LUACFUN, p));
apr_hash_set(dispatch, "warn", APR_HASH_KEY_STRING,
- makefun(req_warn, APL_REQ_FUNTYPE_LUACFUN, p));
+ makefun(&req_warn, APL_REQ_FUNTYPE_LUACFUN, p));
apr_hash_set(dispatch, "err", APR_HASH_KEY_STRING,
makefun(&req_err, APL_REQ_FUNTYPE_LUACFUN, p));
apr_hash_set(dispatch, "crit", APR_HASH_KEY_STRING,
apr_hash_set(dispatch, "method", APR_HASH_KEY_STRING,
makefun(&req_method_field, APL_REQ_FUNTYPE_STRING, p));
+ apr_hash_set(dispatch, "headers_in", APR_HASH_KEY_STRING,
+ makefun(&req_headers_in, APL_REQ_FUNTYPE_LUACFUN, p));
+
lua_pushlightuserdata(L, dispatch);
lua_setfield(L, LUA_REGISTRYINDEX, "Apache2.Request.dispatch");