const char *function,
const char *pattern, const char *scope)
{
+ ap_regex_t *uri_pattern;
apr_status_t rv;
apl_mapped_handler_spec *handler =
apr_palloc(cfg->pool, sizeof(apl_mapped_handler_spec));
handler->uri_pattern = NULL;
handler->function_name = NULL;
- ap_regex_t *uri_pattern = apr_palloc(cfg->pool, sizeof(ap_regex_t));
+ uri_pattern = apr_palloc(cfg->pool, sizeof(ap_regex_t));
if ((rv = ap_regcomp(uri_pattern, pattern, 0)) != APR_SUCCESS) {
return rv;
}
/* helper function for the logging functions below */
static int cmd_log_at(lua_State *L, int level)
{
+ const char *msg;
cmd_parms *cmd = check_cmd_parms(L, 1);
lua_Debug dbg;
lua_getstack(L, 1, &dbg);
lua_getinfo(L, "Sl", &dbg);
- const char *msg = luaL_checkstring(L, 2);
+ msg = luaL_checkstring(L, 2);
ap_log_error(dbg.source, dbg.currentline, level, 0, cmd->server, msg);
return 0;
}
void apl_rstack_dump(lua_State *L, request_rec *r, const char *msg)
{
- ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, "Lua Stack Dump: [%s]", msg);
-
int i;
int top = lua_gettop(L);
+
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, "Lua Stack Dump: [%s]", msg);
+
for (i = 1; i <= top; i++) {
int t = lua_type(L, i);
switch (t) {
/* r:parsebody() */
static int req_parsebody(lua_State *L)
{
+ apr_table_t *form_table;
request_rec *r = apl_check_request_rec(L, 1);
lua_newtable(L);
lua_newtable(L);
- apr_table_t *form_table;
if (ap_body_to_table(r, &form_table) == APR_SUCCESS) {
apr_table_do(req_aprtable2luatable_cb, L, form_table, NULL);
}
static int req_dispatch(lua_State *L)
{
+ apr_hash_t *dispatch;
+ req_fun_t *rft;
request_rec *r = apl_check_request_rec(L, 1);
const char *name = luaL_checkstring(L, 2);
lua_pop(L, 2);
lua_getfield(L, LUA_REGISTRYINDEX, "Apache2.Request.dispatch");
- apr_hash_t *dispatch = lua_touserdata(L, 1);
+ dispatch = lua_touserdata(L, 1);
lua_pop(L, 1);
- req_fun_t *rft = apr_hash_get(dispatch, name, APR_HASH_KEY_STRING);
+ rft = apr_hash_get(dispatch, name, APR_HASH_KEY_STRING);
if (rft) {
switch (rft->type) {
case APL_REQ_FUNTYPE_TABLE:{
}
case APL_REQ_FUNTYPE_LUACFUN:{
+ lua_CFunction func = rft->fun;
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
"request_rec->dispatching %s -> lua_CFunction",
name);
- lua_CFunction func = rft->fun;
lua_pushcfunction(L, func);
return 1;
}
case APL_REQ_FUNTYPE_STRING:{
+ req_field_string_f func = rft->fun;
+ char *rs;
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
"request_rec->dispatching %s -> string", name);
- req_field_string_f func = rft->fun;
- char *rs = (*func) (r);
+ rs = (*func) (r);
lua_pushstring(L, rs);
return 1;
}
case APL_REQ_FUNTYPE_INT:{
+ req_field_int_f func = rft->fun;
+ int rs;
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
"request_rec->dispatching %s -> int", name);
- req_field_int_f func = rft->fun;
- int rs = (*func) (r);
+ rs = (*func) (r);
lua_pushnumber(L, rs);
return 1;
}
case APL_REQ_FUNTYPE_BOOLEAN:{
+ req_field_int_f func = rft->fun;
+ int rs;
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
"request_rec->dispatching %s -> boolean", name);
- req_field_int_f func = rft->fun;
- int rs = (*func) (r);
+ rs = (*func) (r);
lua_pushboolean(L, rs);
return 1;
}
/* helper function for the logging functions below */
static int req_log_at(lua_State *L, int level)
{
+ const char *msg;
request_rec *r = apl_check_request_rec(L, 1);
lua_Debug dbg;
lua_getstack(L, 1, &dbg);
lua_getinfo(L, "Sl", &dbg);
- const char *msg = luaL_checkstring(L, 2);
+ msg = luaL_checkstring(L, 2);
ap_log_rerror(dbg.source, dbg.currentline, level, 0, r, msg);
return 0;
}
/* handle r.status = 201 */
static int req_newindex(lua_State *L)
{
+ const char *key;
/* request_rec* r = lua_touserdata(L, lua_upvalueindex(1)); */
/* const char* key = luaL_checkstring(L, -2); */
request_rec *r = apl_check_request_rec(L, 1);
apl_rstack_dump(L, r, "req_newindex");
- const char *key = luaL_checkstring(L, 2);
+ key = luaL_checkstring(L, 2);
apl_rstack_dump(L, r, "req_newindex");
if (0 == apr_strnatcmp("status", key)) {
int code = luaL_checkinteger(L, 3);
*/
static int lua_handler(request_rec *r)
{
+ apl_dir_cfg *dcfg;
if (strcmp(r->handler, "lua-script")) {
return DECLINED;
}
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "handling [%s] in mod_lua",
r->filename);
- apl_dir_cfg *dcfg = ap_get_module_config(r->per_dir_config, &lua_module);
+ dcfg = ap_get_module_config(r->per_dir_config, &lua_module);
if (!r->header_only) {
lua_State *L;
if (OK ==
ap_regexec(cnd->uri_pattern, r->uri, AP_MAX_REG_MATCH, matches,
0)) {
+ mapped_request_details *d;
r->handler = "lua-script";
spec = apr_pcalloc(r->pool, sizeof(apl_vm_spec));
spec->pool = r->pool;
}
- mapped_request_details *d =
- apr_palloc(r->pool, sizeof(mapped_request_details));
+ d = apr_palloc(r->pool, sizeof(mapped_request_details));
d->function_name =
ap_pregsub(r->pool, cnd->function_name, r->uri,
static int lua_request_rec_hook_harness(request_rec *r, const char *name)
{
+ int rc;
lua_State *L;
apl_vm_spec *spec;
apl_server_cfg *server_cfg = ap_get_module_config(r->server->module_config,
apl_run_lua_request(L, r);
}
else {
+ int t;
apl_run_lua_request(L, r);
- int t = lua_gettop(L);
+ t = lua_gettop(L);
lua_setglobal(L, "r");
lua_settop(L, t);
}
report_lua_error(L, r);
return 500;
}
- apr_status_t rv = DECLINED;
+ rc = DECLINED;
if (lua_isnumber(L, -1)) {
- rv = lua_tointeger(L, -1);
+ rc = lua_tointeger(L, -1);
}
- if (rv != DECLINED) {
- return rv;
+ if (rc != DECLINED) {
+ return rc;
}
}
}
const char *line)
{
const char *function;
+ apl_mapped_handler_spec *spec;
if (line && line[0] == '>') {
function = NULL;
}
}
- apl_mapped_handler_spec *spec =
- apr_pcalloc(cmd->pool, sizeof(apl_mapped_handler_spec));
+ spec = apr_pcalloc(cmd->pool, sizeof(apl_mapped_handler_spec));
{
cr_ctx ctx;
char *tmp;
int rv;
ap_directive_t **current;
+ hack_section_baton *baton;
apr_snprintf(buf, sizeof(buf), "%u", cmd->config_file->line_number);
spec->file_name =
*current = apr_pcalloc(cmd->pool, sizeof(**current));
}
- hack_section_baton *baton =
- apr_pcalloc(cmd->pool, sizeof(hack_section_baton));
+ baton = apr_pcalloc(cmd->pool, sizeof(hack_section_baton));
baton->name = name;
baton->spec = spec;