ngx_int_t ngx_http_lua_filter_set_by_lua_inline(ngx_http_request_t *r, ngx_str_t *val, ngx_http_variable_value_t *v, void *data) { lua_State *L; ngx_int_t rc; ngx_http_lua_main_conf_t *lmcf; char *err = NULL; lmcf = ngx_http_get_module_main_conf(r, ngx_http_lua_module); L = lmcf->lua; /* load Lua inline script (w/ cache) sp = 1 */ rc = ngx_http_lua_cache_loadbuffer(L, v[0].data, v[0].len, "set_by_lua_inline", &err); if (rc != NGX_OK) { if (err == NULL) { err = "unknown error"; } ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "Failed to load Lua inlined code: %s", err); return NGX_ERROR; } rc = ngx_http_lua_set_by_chunk(L, r, val, v, (size_t) data); if (rc != NGX_OK) { return NGX_ERROR; } return NGX_OK; }
ngx_int_t ngx_http_lua_filter_set_by_lua_inline(ngx_http_request_t *r, ngx_str_t *val, ngx_http_variable_value_t *v, void *data) { lua_State *L; ngx_int_t rc; ngx_http_lua_set_var_data_t *filter_data = data; if (ngx_http_lua_set_by_lua_init(r) != NGX_OK) { return NGX_ERROR; } L = ngx_http_lua_get_lua_vm(r, NULL); /* load Lua inline script (w/ cache) sp = 1 */ rc = ngx_http_lua_cache_loadbuffer(r, L, filter_data->script.data, filter_data->script.len, filter_data->key, "=set_by_lua"); if (rc != NGX_OK) { return NGX_ERROR; } rc = ngx_http_lua_set_by_chunk(L, r, val, v, filter_data->size, &filter_data->script); if (rc != NGX_OK) { return NGX_ERROR; } return NGX_OK; }
ngx_int_t ngx_http_lua_filter_set_by_lua_file(ngx_http_request_t *r, ngx_str_t *val, ngx_http_variable_value_t *v, void *data) { lua_State *L; ngx_int_t rc; u_char *script_path; ngx_http_lua_main_conf_t *lmcf; ngx_http_lua_loc_conf_t *llcf; char *err; size_t nargs; ngx_http_lua_set_var_data_t *filter_data = data; dd("set by lua file"); filter_data->script.data = v[0].data; filter_data->script.len = v[0].len; /* skip the lua file path argument */ v++; nargs = filter_data->size - 1; dd("script: %.*s", (int) filter_data->script.len, filter_data->script.data); dd("nargs: %d", (int) nargs); script_path = ngx_http_lua_rebase_path(r->pool, filter_data->script.data, filter_data->script.len); if (script_path == NULL) { return NGX_ERROR; } lmcf = ngx_http_get_module_main_conf(r, ngx_http_lua_module); L = lmcf->lua; llcf = ngx_http_get_module_loc_conf(r, ngx_http_lua_module); /* load Lua script file (w/ cache) sp = 1 */ rc = ngx_http_lua_cache_loadfile(L, script_path, filter_data->key, &err, llcf->enable_code_cache ? 1 : 0); if (rc != NGX_OK) { if (err == NULL) { err = "unknown error"; } ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "failed to load Lua file: %s", err); return NGX_ERROR; } rc = ngx_http_lua_set_by_chunk(L, r, val, v, nargs, &filter_data->script); if (rc != NGX_OK) { return NGX_ERROR; } return NGX_OK; }
ngx_int_t ngx_http_lua_filter_set_by_lua_file(ngx_http_request_t *r, ngx_str_t *val, ngx_http_variable_value_t *v, void *data) { lua_State *L; ngx_int_t rc; u_char *script_path; size_t nargs; ngx_http_lua_set_var_data_t *filter_data = data; dd("set by lua file"); if (ngx_http_lua_set_by_lua_init(r) != NGX_OK) { return NGX_ERROR; } filter_data->script.data = v[0].data; filter_data->script.len = v[0].len; /* skip the lua file path argument */ v++; nargs = filter_data->size - 1; dd("script: %.*s", (int) filter_data->script.len, filter_data->script.data); dd("nargs: %d", (int) nargs); script_path = ngx_http_lua_rebase_path(r->pool, filter_data->script.data, filter_data->script.len); if (script_path == NULL) { return NGX_ERROR; } L = ngx_http_lua_get_lua_vm(r, NULL); /* load Lua script file (w/ cache) sp = 1 */ rc = ngx_http_lua_cache_loadfile(r->connection->log, L, script_path, filter_data->key); if (rc != NGX_OK) { return NGX_ERROR; } rc = ngx_http_lua_set_by_chunk(L, r, val, v, nargs, &filter_data->script); if (rc != NGX_OK) { return NGX_ERROR; } return NGX_OK; }
ngx_int_t ngx_http_lua_filter_set_by_lua_file(ngx_http_request_t *r, ngx_str_t *val, ngx_http_variable_value_t *v, void *data) { lua_State *L; ngx_int_t rc; u_char *script_path; ngx_http_lua_main_conf_t *lmcf; ngx_http_lua_loc_conf_t *llcf; char *err; ngx_http_lua_set_var_data_t *filter_data = data; script_path = ngx_http_lua_rebase_path(r->pool, v[0].data, v[0].len); if (script_path == NULL) { return NGX_ERROR; } lmcf = ngx_http_get_module_main_conf(r, ngx_http_lua_module); L = lmcf->lua; llcf = ngx_http_get_module_loc_conf(r, ngx_http_lua_module); /* load Lua script file (w/ cache) sp = 1 */ rc = ngx_http_lua_cache_loadfile(L, script_path, filter_data->key, &err, llcf->enable_code_cache); if (rc != NGX_OK) { if (err == NULL) { err = "unknown error"; } ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "Failed to load Lua file: %s", err); return NGX_ERROR; } rc = ngx_http_lua_set_by_chunk(L, r, val, v, filter_data->size); if (rc != NGX_OK) { return NGX_ERROR; } return NGX_OK; }
ngx_int_t ngx_http_lua_filter_set_by_lua_file(ngx_http_request_t *r, ngx_str_t *val, ngx_http_variable_value_t *v, void *data) { lua_State *L; ngx_int_t rc; u_char *script_path; ngx_http_lua_main_conf_t *lmcf; char *err; script_path = ngx_http_lua_rebase_path(r->pool, v[0].data, v[0].len); if (script_path == NULL) { ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "Failed to allocate memory to store absolute path: raw path='%v'", &v[0]); return NGX_ERROR; } lmcf = ngx_http_get_module_main_conf(r, ngx_http_lua_module); L = lmcf->lua; /* load Lua script file (w/ cache) sp = 1 */ rc = ngx_http_lua_cache_loadfile(L, (char *)script_path, &err); if (rc != NGX_OK) { if (err == NULL) { err = "unknown error"; } ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "Failed to load Lua file: %s", err); return NGX_ERROR; } rc = ngx_http_lua_set_by_chunk(L, r, val, v, (size_t) data); if (rc != NGX_OK) { return NGX_ERROR; } return NGX_OK; }
ngx_int_t ngx_http_lua_filter_set_by_lua_inline(ngx_http_request_t *r, ngx_str_t *val, ngx_http_variable_value_t *v, void *data) { lua_State *L; ngx_int_t rc; ngx_http_lua_main_conf_t *lmcf; ngx_http_lua_loc_conf_t *llcf; char *err = NULL; ngx_http_lua_set_var_data_t *filter_data = data; lmcf = ngx_http_get_module_main_conf(r, ngx_http_lua_module); L = lmcf->lua; llcf = ngx_http_get_module_loc_conf(r, ngx_http_lua_module); /* load Lua inline script (w/ cache) sp = 1 */ rc = ngx_http_lua_cache_loadbuffer(L, filter_data->script.data, filter_data->script.len, filter_data->key, "set_by_lua", &err, llcf->enable_code_cache ? 1 : 0); if (rc != NGX_OK) { if (err == NULL) { err = "unknown error"; } ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "failed to load Lua inlined code: %s", err); return NGX_ERROR; } rc = ngx_http_lua_set_by_chunk(L, r, val, v, filter_data->size, &filter_data->script); if (rc != NGX_OK) { return NGX_ERROR; } return NGX_OK; }